Canonical Plugins Revisited

The pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party directory is great, but many plugins are controlled by a single dev or company, and often end up going a direction of a premium or pro version, sometimes even removing functionality that used to be in a plugin and pushing it into the pro version. This can also create an incentive to put something into a SaaS service that is easily done in a more distributed fashion locally to the site. Even accepting donations can create some weird incentives for how to divide those among a number of contributors.

WordPress itself thrives because it’s a collaborative effort of many people with many varied interests, but coming together to create something that is explicitly open sourceOpen Source Open Source denotes software for which the original source code is made freely available and may be redistributed and modified. Open Source **must be** delivered via a licensing model, see GPL., free, and available to all. We need to evolve the plugin directory to make it easier to accept code and documentation contributions. (We’re pretty good with translationtranslation The process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. contributions already.) Also I think we should build on the successful history of canonical plugins like MP6, GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/, and REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. to have more community-developed plugins, called canonical because they will be the official first-choice recommendation by coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress. and w.org for an area, that share in the ethos and approach of WordPress itself but to a more niche area that might not be right for core.

We are reaching a point where core needs to be more editorial and say “no” to features coming in as ad hoc as they sometimes do, and my hope is that more Make teams use this as an opportunity to influence the future of WordPress through a plugin-first approach that gives them the luxury of faster development and release cycles (instead of three times per year), less review overhead, and and path to come into core if the plugin becomes a runaway success. I am very conscious that when people are aiming to have something in core, a “no” or “not now” can be frustrating and sometimes create artificial pressure to put something in before it’s ready, as I believe happened with the REST API in WP 4.4.

Canonical plugin ideas for each make team:

Design: More adminadmin (and super admin) themes.
Mobile: (not sure)
AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility): An alternative APIAPI An API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.-based admin designed for accessibility and simplicity.
Polyglots: Inline translation submissions for core and plugins and themes.
Support: Related threads or documentation pages dynamically loaded from w.org for the “help” dropdowns on every page.
Documentation: Experiment with adding more inline documentation to wp-admin interfaces. Gather opt-in stats on what is actually read and used, which links to .org get clicked on.
Themes: Better previews of theme customizations, activation workflows that allow customization of colors / images / typography.
Plugins: Inline rating and feedback for plugins, crash and compatibility data reporting back.
Community: Experiment with the dashboard widgetWidget A WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. that promotes events to call to action for organizing when there’s not a local meetupMeetup All local/regional gatherings that are officially a part of the WordPress world but are not WordCamps are organized through https://www.meetup.com/. A meetup is typically a chance for local WordPress users to get together and share new ideas and seek help from one another. Searching for ‘WordPress’ on meetup.com will help you find options in your area., and better incorporates online events including workshops and cohort classes.
MetaMeta Meta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress.: Login with .org login account. Dashboard with all of your linked WPs on w.org. Monitor versions, install plugins with one-click, etc.
Training: Courses or training in every help dropdown.
Test: Opt-in JSJS JavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. or PHPPHP The web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher error catching that reports back to a tracking server.
TV: Integration with help dropdowns, inline tutorial videos.
Marketing: Widgets and blocks for people to link back to W.org, like super-charged “powered by”, and promote their liked or favorite plugins and themes.
CLICLI Command Line Interface. Terminal (Bash) in Mac, Command Prompt in Windows, or WP-CLI for WordPress.: N/A.
Hosting: Experiment with standard hooksHooks In WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same., icons, and menu items for hosts to link or embed things like email, domains, contacting support.
Tide: Show the data more places in wp-admin.
Openverse: Should actually just come into core more, but perhaps plugin would be a good place to experiment with submitting something to openverse and CC licensing any media upload. Community and collaborative tagging of uploads and openverse items.
Photos: Similar to openverse, make it possible to submit uploads and search directory.
Core performance: WebP conversions for new uploads and batch processing to convert old images. Show before-after space usage and page performance. (Previous post on WebP in 6.1 that inspired this.)

This is not meant to be an exhaustive list, and I’m sure the teams themselves could come up with much better ideas and options, but I hope it sparks discussion at contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. and beyond on how we can utilize plugins better to increase the speed of evolution for WordPress, keep core light, fast, and opinionated, and do so while saying “yes” to more ideas and experimentation.

WebP in Core for 6.1

I’ve been reading through all the conversation and issues here. I am interested in supporting new formats and improving performance, but I think this change being pushed by default to users when they upgrade to 6.1 is a lot for right now, including with some of the clunky interactions OSes still have around webp (and HEIC!) files.

I’m happy for support for working for webp and HEIC files to stay in coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., as we should be liberal in what we accept and work with, but not with the change to convert everything to webp when JPEGs are uploaded.

This is excellent territory for a canonical pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, a concept I think every Make team should be exploring a lot more as a place to experiment and push functionality, much like we have with MP6 and GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ in the past. I think the plugin directory needs more collaborative, community-developed, and non-commercial or no-upgrade plugins that do something well, and make teams are the perfect groups to develop and maintain those. It’s the ethos and process of core applied to plugins, that then we can officially recommend and feature in the plugin directory, and also allows us to keep core light or give more time for the ecosystem around something (like WebP) to mature.

Will do a second post on canonical plugins.

Ahead of WordCamp US last…

Ahead of WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US last year, I held office hours that were open to the community which gave both me and the folks I met with (via video conference) an opportunity to connect directly. It was an enriching experience and I’d like to do the same at WordCamp Europe this year but this time in person.

I’ll hold these office hours between 11:00 am – 1:00 pm on Thursday and 9:00 am – 11:00 am on Friday and Saturday. In the spirit of speaking to as many people as possible, each time slot will be 15 minutes long with 5 minutes between each.

You can sign up using this link: https://calendly.com/mmullenweg/wceuofficehours

I’ll probably be joined by a colleague who will note any action items and/or follow-ups and who will also help to manage the meeting flow.

I’m excited to participate in WCEU again and am very much looking forward to these conversations, and of course looking forward to meeting as many folks as possible in the hallway, at the sessions, and of course at the always-fantastic WordCamp Europe social events.

9 Projects for 2019

As mentioned in this year’s State of the Word, these are the nine priorities that we should focus on in 2019, in order to make the biggest impact for WordPress users:

  1. Creating a blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. for navigation menus.
  2. Porting all existing widgets to blocks.
  3. Upgrading the widgets-editing areas in wp-admin/widgets.php and the CustomizerCustomizer Tool built into WordPress core that hooks into most modern themes. You can use it to preview and modify many of your site’s appearance settings. to support blocks.
  4. Providing a way for themes to visually register content areas, and exposing that in GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/.
  5. Merging the site health check plugin into CoreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress., to assist with debugging and encouraging good software hygiene.
  6. Providing a way for users to opt-in to automatic pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party and theme updates.
  7. Providing a way for users to opt-in to automatic updates of major Core releases.
  8. Building a WordPress.orgWordPress.org The community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/ directory for discovering blocks, and a way to seamlessly install them.
  9. Forming a Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors. team to tackle our 6,500 open issues on Trac.

New 5.0 Target Date

Based on the stability, testing, and reports on the release candidates for WordPress 5.0 so far, we are now targeting Thursday December 6th for public release and announcement. 5.0.1 will open for commits soon, and will be an area people can choose to focus on at the contributor dayContributor Day Contributor Days are standalone days, frequently held before or after WordCamps but they can also happen at any time. They are events where people get together to work on various areas of https://make.wordpress.org/ There are many teams that people can participate in, each with a different focus. https://2017.us.wordcamp.org/contributor-day/ https://make.wordpress.org/support/handbook/getting-started/getting-started-at-a-contributor-day/. at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US in Nashville this Sunday.

As before, if new information arises that indicates the software is not stable, we will adjust or remove the target date.

What if I don’t want to update on that date, or I’m not ready?

That’s totally okay, there’s nothing that says you must update the moment there’s a new version released. You can push the button whenever you’re ready.

What if I want to upgrade but I’m not ready for GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/?

No problem, install the Classic Editor plugin and 5.0 will be indistinguishable from 4.9.8 for your posting and editing experience, and you’ll still get the other improvements and fixes that have gone into 5.0. Classic Editor is supported until 2022, and now allows you to switch between Classic and Gutenberg on a per-user or per-post level.

Over 1.3 million .org sites have already opted in to either the Gutenberg or Classic Editor pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, which is more than run any single version of WP prior to 4.7! Those sites will notice nothing change besides a version number.

Gutenberg & 5.0 Listening Office Hours

A number of folks have requested an opportunity to connect more directly on where we’re at in the 5.0 process, or share their point of view on where we’re going. In the spirit of getting as many inputs as possible, I’ve opened up 24 office hours slots Thursday through Sunday. You can sign up using this link:

https://calendly.com/mmullenweg/officehourswithmatt

The sessions will be 15 minutes (even though it says 20 on the calendar) so I get a chance to connect with as many people as possible. I’m looking forward to it!

5.0 / Gutenberg Status Update – Nov 16

Current open PRs for review: 45 in 4.5 Milestone (+5)
Current open issues milestoned RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta).: 62 (-45) — (This has been heavily triaged today).
Current open issues milestoned 5.0.0: 13 (+3)
Current open issues milestoned 5.0.1: 8 (+4)
Current open issues milestoned 5.0.x (fast follow): 67 (+30)
Current betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.: Beta 5, released yesterday.
Current pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party: 4.4, released yesterday.
Next release: 5.0 RC, planned for Monday.

Note: this is a daily update on progress towards WordPress 5.0, as outlined in this post. This status update is also shared in the #core-editor channel in SlackSlack Slack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..

#core-editor, #editor, #gutenberg

Gutenberg Phase 2 Leads

Phase 1 of GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ has been about upgrading the writing and editing experience of WordPress, across posts, pages, and the delightful things people do with post types. The blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. framework will allow us to drastically simplify the various concepts and user interfaces across WordPress, including widgets, TinyMCE magic sections, and shortcodes.

Phase 2 is about thinking outside the box, namely the post and page box, to allow Gutenberg to handle entire-site layouts. We will replace widgets with blocks, so any block will be able to be used in any registered “sidebarSidebar A sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.” for legacy themes, and we will upgrade “menus” to a navigation block.

Phase 2 will be led by @alexislloyd on the design and product side, and @youknowriad on the technical side. Please join me in welcoming these two and sharing your thoughts on Phase 2.

I’ll propose and discuss Phases 3 and 4 of Gutenberg at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. US in December.

A Plan for 5.0

Usually during major releases of WordPress, the dedicated release leadRelease Lead The community member ultimately responsible for the Release. chooses a few folks to help them through the time-consuming work of managing an excellent release cycle. We are blessed with such a wide and talented team working on this release in the form of GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ (and 4.9.x) for so long I’m going to expand the team for this cycle.

The adoption of the Gutenberg pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party, at 490 thousand active sites and counting, far exceeds pre-release testing of anything that has ever come into coreCore Core is the set of software required to run WordPress. The Core Development Team builds WordPress.. If we keep the 5.0 release to strictly 4.9.8 + Gutenberg, we will have a release that is both major and a non-event in terms of new code. It’s all battle-tested. In some ways 5.0 is already de facto out in the wild, with some forward-looking hosts already installing and activating Gutenberg for new installs.

I have asked several members of the WordPress community to help lead the critical focuses required for a smooth and successful release.

Triagetriage The act of evaluating and sorting bug reports, in order to decide priority, severity, and other factors.: @matveb has the most context, history, and technical acumen in the entire Gutenberg project and is best suited to help triage open and remaining issues.

Design: While the majority of the design work in the blockBlock Block is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. editor is already complete, there will be many aspects of the merge that will require design decisions. @karmatosed will continue her role as the design lead of the Gutenberg project.

Default Themes: From Twenty Ten through to Twenty Seventeen, @laurelfulford will lead updating all of the default themes to work seamlessly with Gutenberg.

Twenty Nineteen: @allancole has already been involved with a number of beautiful Gutenberg themes and will be responsible for adapting the one we’ll dub Twenty Nineteen.

AccessibilityAccessibility Accessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility): @lonelyvegan is a member of the Gutenberg core team and has worked on many of the accessibility improvements in the Gutenberg plugin. (We’ve gotten feedback it’s already surpassed the classic editor in many ways.) 

JavaScriptJavaScript JavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. Packages: @omarreiss will be responsible for integrating the packages published on NPM, a new approach Gutenberg has taken that ties us much more to the wider Javascript community and has even inspired other CMSes such as Drupal to explore Gutenberg integration.

Media: @antpb will shift from 4.9.9 to focusing on all elements of the media component, including backwards compatibility.

Merge: @pento, known for his care and discretion in making changes and a long history with core, will generally shepherd the merge.

Project Management: @chanthaboune has been a close collaborator on the WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. and Foundation side and will be lending those talents here.

REST APIREST API The REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.: @danielbachhuber returns to a starring role with the REST API improvements we learned from building Gutenberg, and didn’t get into a 4.9.x release already, into core.

Upgrade Process: @mcsf will lead the user experience of how the core upgrade will interact with the Gutenberg and Classic Editor plugins that will have over a million active sites by the time of release.

With known knowns and known unknowns, I believe we will be at RCrelease candidate One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). in about a month. However, I’ll be keeping a close eye on feedback during the betaBeta A pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. process and adjust as needed and keep the community fully up-to-date with our best estimate.

This post was written using Gutenberg, natch, and it was such a pleasure. I can’t wait for this to be in the hands of a wider audience of users and developers.

See also: Technical Oversight of the Gutenberg Integration.

#5-0

4.9 and Gutenberg

I am really happy with the 4.8 release: the potential impact on new users and community event attendance is big, and the entire community really pulled together to make it a success.

I’m sure many people are curious and anxious about the GutenbergGutenberg The Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ editor. You can of course follow along and participate on GitHub, and we’re hoping that a pluginPlugin A plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party for easy install and usage will be available soon.

I’d like to give Gutenberg some extra gestation time as a plugin, ideally getting it to 100k active sites over the next month or two, before we merge. It’ll be easier (and safer) to get people to install and auto-update a plugin than switch their sites to trunktrunk A directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. We could even put a promo for it in 4.8.1.

In the meantime I think we can do another user-focused 4.9 release with the theme of editing code and managing plugins and themes, doing v2s and polishing some features we brought into WP last year. Weston and Mel already have some good ideas there, and we can start to discuss and brainstorm at the Dev chat next week. This will also allow the Gutenberg-driven release to be 5.0, which is a nice-to-have but not the primary driver of this decision.

Hopefully I will see some of y’all at WordCampWordCamp WordCamps are casual, locally-organized conferences covering everything related to WordPress. They're one of the places where the WordPress community comes together to teach one another what they’ve learned throughout the year and share the joy. Learn more. EU, and regardless be sure to tune in to my session tomorrow which you can livestream from the WordCamp Europe homepage.