The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in our bug tracker.
We use Slack for real-time communication. Contributors live all over the world, so there are discussions happening at all hours of the day.
Our core development meetings are every Wednesday at 05:00 UTC and 20:00 UTC in the #core channel on Slack. Anyone can join and participate or listen in!
These are the weekly notes for the WP Auto-updates team meeting that happened on Tuesday May 4, 2020. You can read the full transcript on the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
However, @azaozz and other people raised some issues, especially with JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors./AJAX implementation. Our top priority is to fix them before sending a full patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. on TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress..
Version 0.7 scope: core merge prerequisites
Version 0.7.0 will be focused on core merge prerequisites.
@pbiron is currently working on cleaning the AJAX part of the pluginPluginA 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 reference, see PR #103 on GitHub. This is one of the major blockers before core merge and that’s why we absolutely need a new release before the core merge. @azaozz added that this pull request is almost ready to be merged.
While @pbiron is working on cleaning the existing AJAX code, @audrasjb will focus on other minor issues, like internationalization issues raised by @PascalC.
Once PR #103 is merged, the team will release version 0.7.0 and give it around one week to be tested before sending the patch proposal on Trac.
@azaozz pointed out issue #95 which raises some user interface issues. The setting that the users can change (enable|disable auto-updates) is actually the default setting. It can be changed at the moment of updating by plugins and by core. He thinks it should be reflected in the UIUIUser interface to avoid giving wrong expectations to users. It can be addressed by changing the wording and/or the name of the functions, for example by replacing the existing functions with something like maybe_auto_update_plugins or default_auto_update_plugins. Concerning the interface wording, @audrasjb noted it could be addressed by changing the column heading: Enable/disable auto-updates or Toggle auto-updates so users could understand we’ll be able to disable it later. By the way, the team agreed this concern is not a blockerblockerA bug which is so severe that it blocks a release. for the merge.
After few discussions, it was also decided to remove the feature’s constants. Indeed, constants are used in WordPress core for specific cases:
Very early use, before WP is loaded
For use mostly by hosting companies/low level settings
Mostly for things that are really “constant” (never change)
@audrasjb will remove the existing constants once PR #103 is merged.
@azaozz also noted few small bugs on the AJAX action links. It kind of “jumps” when you click on the link, then “flashes” different text (when the networknetwork(versus site, blog) is fast) and the user cannot see/read the changed text, then it changes it again. These bugs are not a blocker for core merge and can be fixed in WordPress core after the merge. @pbiron noted that some of these bugs will be fixed in PR #103. @azaozz added that adding some delay (so text changes are readable) would be nice, or alternatively not changing the text while AJAX is running is another thing. (so there is only one text change instead of two).
The team also discussed the idea to add some filters for plugin authors to override what is outputted in the UI, for example to show something like “Updates enabled by [plugin/theme name]”.
After making the auto-updates project a feature plugin, the #core-auto-updates team is excited to announce that the plugins and themes auto-updates feature is ready for a coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. merge.
Here are the main features that have been developed:
The ability for website administrators to opt-in to automatic updates for plugins and themes.
Ability to enable/disable auto-updates on a pluginPluginA 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-by-plugin and theme-by-theme basis.
MultisitemultisiteUsed to describe a WordPress installation with a network of multiple blogs, grouped by sites. This installation type has shared users tables, and creates separate database tables for each blog (wp_posts becomes wp_0_posts). See also network, blog, site support for both themes and plugins auto-updates.
Email notifications to send auto-update summaries to website administrators.
HooksHooksIn 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. and constants to help developers programmatically define auto-updates settings.
To be clear, plugin and theme auto-updates already exist in WordPress core, but these new features add a fully-featured user interface to allow administrators to opt-in to these features.The feature was developed on WordPress GitHub repository and tested for a few months as a feature plugin available on WordPress repository.
@audrasjb and @pbiron hosted weekly meetings on #core-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel, and those meetings allowed the feature to be developed at a good pace. While there are still some details currently discussed on GitHub, the feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. has been a great success, with more than 700 active installations. The plugins and themes auto-updates team is now excited to bring this feature to WordPress users and ship this feature in WordPress 5.5.
Site security is integral for modern website hosting, and bringing auto-updates to plugins and themes is a much-awaited feature in WordPress. This will allow website owners to more easily keep their site up-to-date and more secure. The core plugin team has also added a number of hooks that can be used by plugin authors and WordPress developers to customize the feature, including email notifications.
These are the weekly notes for the WP Auto-updates team meeting that happened on Tuesday April 28, 2020. You can read the full transcript on the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
@whyisjake previously started a document to draft the merge announcement, and it should be ready be the end of the week.
Concerning the core merge itself, there are already two existing TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets (#48850 and #49199), but the team agreed that closing those tickets and opening a new one is the best option. We’ll ensure that the new ticketticketCreated for both bug reports and feature development on the bug tracker. has a quick recap of what has been done in the feature plugin, and properly references the previous Trac tickets.
Feature plugin: next releases
While working on the Core merge patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing., @pbiron noticed a few minor differences in the behavior of how some things in the feature plugin work compared to how similar things in the plugins/themes list tables work in core (specifically concerning bulk edits). They aren’t really bugs or enhancements, but it would make things more consistent. For example, WP_Plugins_List_Table doesn’t add the Activate bulk action to the dropdown if the current view is Active plugins, and we are currently always adding Enable Auto-updates even when on the Auto-updates enabled view. Those small changes can also be directly addressed in the Trac ticket.
@pbiron also raised this issue, which aims to discuss how plugins that have auto-updates enabled could be visually identified in WordPress adminadmin(and super admin). @apedog suggested to implement auto-updates action links into pluginPluginA 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 row actions section. @audrasjb answered it was previously discussed, and the conclusion was that it is not the best choice, given that “Activate” (plugin) and “Enable” (plugin auto-update) links would introduce confusion, especially on Locales that don’t have any difference between those two terms.
@pbiron raised an issue in the Plugins screens using small viewports, but it appeared it was related to another plugin.
These are the weekly notes for the WP Auto-updates team meeting that happened on Tuesday April 21, 2020. You can read the full transcript on the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
Last minute edit: WP Auto-updates 0.6 was released earlier today 💥
Next step: Core merge proposal
The idea is to start to work on the core merge proposal once version 0.6 is released.
Concerning the core merge itself, @audrasjb two approaches:
Merging the feature in a single TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.ticketticketCreated for both bug reports and feature development on the bug tracker.
Pros: Easier testing of the overall scope.
Cons: A single ticket could be a potential rabbit hole, with endless discussions on the overall feature, so it could be more efficient to manage small and self contained tickets.
Merging the feature step by step, with several tickets
Pros: It’s more efficient to ship the feature step by step so the steps that are potential blockers could land later, in other releases, if they deserves more discussion. This is the process we used for the development of the feature plugin so it won’t be so difficult to reproduce those steps in several Trac tickets.
Cons: It’s a way more difficult to test the overall feature when there are several tickets to test.
Please feel free to comment this post to share your thoughts!
As noted by @whyisjake and @sergeybiryukov, both approaches makes sense. @pbiron noted that Lazy-loading Feature was done in one commit. However, the feature doesn’t bring any UIUIUser interface change.
For @whyisjake, WP Auto-updates is pretty light as well and could fit with the single patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing. option.
For @afragen, if the merge tickets can be made in logical, non-dependent code blocks, then it would probably be good to do it this way. Otherwise as a single patch.
@whyisjake pointed out that even if the feature is a goal for 2020, it will necessarily need an approval from @matt / @chanthaboune, first.
As it’s a mandatory first step, @whyisjake proposed his help on the Core merge proposal post and started a collaborative Google Doc.
The idea is to publish this post next week, to fit with WordPress 5.5 Alpha development planning.
@pbiron added that once our work is merged into core, we should all be prepared for some things to be reverted/changed after the first “real world” betaBetaA 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. tests.
Open floor
@ronalfy asked if there is any plan to handle translations auto-updates, like email notifications. @sergeybiryukov answered that when language packs were added to core, the idea was that they should always update automatically in the background and do not need a specific UI or notifications.
These are the weekly notes for the WP Auto-updates team meeting that happened on Tuesday April 14th, 2020. You can read the full transcript on the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
The team focused on making decisions concerning design and wording changes in WP Auto-updates version 0.5:
Remove “cycle” dashicons from the interface
The team agreed the current use of dashicons is not strictly necessary. It appears on every row and it can be too much. Also, the current update system (known as “shiny updates”) doesn’t use any dashicon except for notification messages of available updates.
The decision is to remove it from the user interface to keep it pure text + text links.
In the previous versions of WP Auto-updates, red color were used for “Disable” action links, and green color were used for “Auto-updates enabled” information texts. Last week the team agreed to replace it with standard blue links (as red is used for destructive actions) and black text.
Previously, the feature plugin was displaying the following messages after enabling auto-update for a theme or a pluginPluginA 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:
“The selected plugins will now update automatically.”
“The selected plugins won’t automatically update anymore.”
The team agreed to simplify confirmation messages, and to replace them with:
“Selected plugins will be auto-updated.”
“Selected plugins will no longer be auto-updated.”
This change brings consistency with plugins and themes existing activation message.
A pull request is going to be opened on GitHubGitHubGitHub is a website that offers online implementation of git repositories that can can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ to handle the related changes.
Provide information about themes with auto-updates enabled on single-site Themes screen
On a single-site Themes screen (Appearance > Themes), there is currently no way to quickly know what themes have auto-updates enabled. The user needs to open the theme’s modal, and this is a poor user experience.
During the meeting, two solutions were discussed:
Use an icon on the upper-right corner of each theme in the list. It does the job, but there is a question for when the theme have an update available (there is a notification message on the top of the theme screenshot, and it may conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with the auto-update icon).
Problem: what to do when there is an update notice?
Add auto-update information (or even an enable/disable auto-updates action link) at the bottom of the theme screenshot and put all the action links on a second row.
Quick workaround: all action buttons are placed on a second row.
Remove auto-updates UIUIUser interface from Networknetwork(versus site, blog)Adminadmin(and super admin) > Sites > Edit > Themes
@pbiron pointed out that as a general rule, auto-updates content should not appear on any screen where updates can not be performed.
Everyone agreed and Paul will add a pull request to handle this issue (#69) and remove auto-updates user interface from Network Admin > Sites > Edit > Themes.
PluginPluginA 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 Conflicts (#146) We reached the conclusion that such conflicts are actually a non-issue. Plugins are expected to override the default sitemap functionality. For consistency reasons, we keep the wp- prefix.
Last modified date (#145) There is one open question on the PR to keep lastmod for object types that support it out of the box (i.e. posts). Current status: needs reviews.
Rewrite Rules (#147) A change was proposed to improve the way rewrite rules are registered for sitemaps. This would avoid having to flush rewrite rules when custom providers are added. Current status: needs contributors / reviews.
Roadmap WordPress 5.5 is ought to be released in August. We settled on the following roadmap for sitemaps:
Fix remaining big issues – April
Refactor code to be closer to WP coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. standards, add safeguards so nothing breaks after merge – April
Publish Merge proposal – May
Extensibility It was suggested to add a filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. for the <urlset> element’s attributes so that plugins could easily add namespaced elements to a sitemap (e.g. for image sitemaps).
Want to add anything to the above? Please leave a comment here or reach out on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..
These are the weekly notes for the WP Auto-updates team meeting that happened on Tuesday April 7th, 2020, based on this agenda. You can read the full transcript on the coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-auto-updatesSlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/. channel.
As a reminder, version 0.4 was released one week ago and contains all the core functionalities of the project. The team opened a call for testers on Make/Tests.
The main goal of version 0.5 is to iterate on design and wording. There is a bunch of design focused issues, but the idea is to iterate on links colors and wording first.
All the attendees think all the links should be blue and text should be black. Indeed, red links are used for destructive actions in WordPress core, and it’s not relevant for auto-updates disabling. So let’s get rid of red links and green “Auto-updates enabled”. Let’s just use blue for links and black for text. This change will be part of 0.5.
About wording, @audrasjb wanted to point out that “auto-update” (don’t forget the hyphen) is the official wording for the feature in WordPress as it has been validated ahead of the Feature Plugin with WP project leads.
@pbiron pointed out his concerns about removing any filters on the plugins screens, especially the “Auto-update disabled” filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output., as it’s really useful to see what plugins are not auto-updated. The team agreed that this filter is not going to be removed.
How to avoid conflicts with third party plugins?
@ronalfy pointed out, from a third-party standpoint, that if a pluginPluginA 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 uses a custom option for storing updates, it’d be nice to be able to sync the two through actions and filters. So if WordPress enables an auto-update, the plugin can hook into that action and update their own list accordingly. The same would be useful for filters when retrieving options so the plugin could theoretically merge the two. Ideally third-parties could just use WordPress options, but there’s backwards compatibility issues there.
@timothyblynjacobs added that being able to add bits to the auto update column itself would be useful as well.
Next steps:
Add an action hook on auto-update enabling and disabling for each theme/plugin.
Add a hook to filter the auto-update column content itself.
Discussion/decision concerning AJAX handling in the Feature Plugin
While this is not a top priority, it’s a nice to have. The team agreed to target version 0.6 for this enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature..
Discussion about the labels used for enabling/disabling auto-updates
There is a proposal to change the current action links labels.
@pbiron and @audrasjb pointed out that on/off and “plain” Enable/Disable (without “auto-updates”) could be too easily confused with Activate/Deactivate (even with them being in the Automatic Updates column).
There is definitely a need for a cross-team discussion about the best wording for those links.
Meeting time and Daylight Saving Time
The team agreed to move the meeting time from 18:00 UTC to 17:00 to follow Daylight Saving Time.
Things that have been discussed in the last two meetings:
PluginPluginA 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 Conflicts (#146) We discussed the rewrite rules conflicts that might currently happen with certain plugins. A consensus hasn’t been reached so far, but it could actually be declared a non-issue: if plugin A overrides the default sitemap functionality, that might be intended behavior. Current status: needs decision.
Rewrite Rules (#147) A change was proposed to improve the way rewrite rules are registered for sitemaps. This would avoid having to flush rewrite rules when custom providers are added. Current status: needs contributors.
Last modified date (#145) The PR to remove all traces of lastmod has been updated to include documentation. Current status: needs reviews.
Filterable query args #137 has been closed in anticipation of an improved solution to filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. query arguments. Current status: needs PR.
Private sites (#138) Current status: PR needs some work
Roadmap WordPress 5.5 is ought to be released in August. We need to continue working on the feature pluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins. so we have something merge-able in May or June. The tentative roadmap would be:
Fix remaining big issues – April
Refactor code to be closer to WP coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. standards, add safeguards so nothing breaks after merge – April
Want to add anything to the above? Please leave a comment here or reach out on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..
Homework: @pbiron asked attendees to think about how can we avoid conflicts with third party plugins
Discussion/decision concerning AJAX handling in the Feature PluginFeature PluginA plugin that was created with the intention of eventually being proposed for inclusion in WordPress Core. See Features as Plugins.
Discussion about the labels used for enabling/disabling auto-updates
Daylight Saving Time: should we move the meeting time?
In case you were looking for an blogblog(versus network, site) post about the XML Sitemaps feature project last week, worry no more. Work on the pluginPluginA 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 is progressing smoothly and steadily, we just didn’t publish an agenda post last week. That means it is time for a double update today!
Meeting Recap: March 10th & 17th
For reference, check my previous blog post from March 10th:
A lot has happened since then. Here’s the summary, not necessarily in the right order:
SimpleXML dependency We received great feedback from a variety of big hosting providers, all saying that this PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher extension is widely available and we can rely on it safely. Current status: no action needed.
Rewrite rule conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with plugins As we realized that the new /wp-sitemap.xmlURLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org format clashes with big existing plugins, we decided to look into alternate names for both the rewrite rules as well as the query params. See GitHub issue for details. Current status: needs contributors.
Rewrite rule issues with custom providers It was reported that adding custom sitemap providers might require flushing rewrite rules. Ideally, that shouldn’t be needed. Current status: needs decision.
Last modified date (lastmod) We decided to continue with the proposed PR to remove lastmod from sitemaps (at least for now), but need to make sure there is appropriate documentation. It’s something that can always be added back if needed. Current status: has PR, needs documentation.
Query Filters Valuable feedback emerged from testing, which led to the decision to close the existing PR to make query instances filterable in favor of a simpler approach. In its place, we should make the query arguments filterable, and also add filters to short-circuit queries. Current status: needs contributors.
Please let me know in the comments if I got something wrong in this summary!
Want to add anything to the above? Please leave a comment here or reach out on SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/..