Plugin Rollout: Phased Releases

Through #8009-meta we’ve started work on adding Phased / Staged 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 releases to plugins utilising Release Confirmation.

What is phased releases? In short, this allows for your plugin update to be released to a smaller subset of sites prior to full release to all sites.

Why would you want to use it? Sometimes plugin updates can inadvertently break user workflows or run into conflicts with other plugins. Often these issues are not known until after a plugin update is released, and lots of users have already installed the update, this allows for a short timeframe where hopefully engaged users will report issues to you sooner.

How? Initially this has been limited to plugins using Release confirmations. This means a plugin has to explicitly opt-in to using this feature at the time of the plugin’s update release.
To start with, only one strategy is offered, Delay Auto-updates for 24 hours – This disables the WordPress plugin automatic updates for the first 24 hours of a plugin release. Site Administrators can still click on “Update” to install the latest version, as it’s hoped that these users would spot any issues that result from using the updated version.

Release Confirmation showing a rollout strategy selection.
Example of the Rollout Strategy selection included in Release Confirmations.

Technical Limitations

  1. To ease the potential of user confusion, this has been initially launched focusing on disabling automatic updates, rather than disabling the update entirely for a WordPress site.
  2. Currently 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/ can only instruct WordPress 6.6+ sites not to automatically update the plugin.
  3. Currently WordPress.org can track the number of plugin updates (Through the Active installs / Active versions statistics), but can’t differentiate between a user-initiated/manual update and an automatic update.
  4. It’s up to 3rd-party update tooling to respect the WordPress 6.6+ flag to disable automatic updates, it’s unknown whether any of these tools respect it. Anything that runs the WordPress Automatic updater should support it.

What will future iterations bring?

What functionality is offered here will heavily depend upon author feedback in using the feature, or what would encourage them to do so. Examples of what this could be include..

  • Strategies that rollout updates to a percentage of sites. For example, 1% per hour, or gradually increasing to 20% over 3 days and the final 80% on day 4.
  • Improvements to find out if there’s been any issues reported in the update. For example:
    • Are plugin reviews overly negative?
    • Have any PHPPHP PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. https://www.php.net/manual/en/preface.php. Warnings/Fatal errors been reported automatically (not implemented)
    • Have WordPress updates been rolling back to their previous version (in the cases of fatal errors)
  • Statistics of how many sites have updated to the new version. Could be a rounded number (like the existing Active Installs) or simply a percentage (like the Active Versions chart). Eg: Plugin: 100k Active installs; Latest version: 80k+ or 80%.

Questions for Plugin Authors

  • Do you plan to use this feature? If not, What would convince you to?
  • What improvements would you like to see?
    For example: What strategies? What additional information? What would tell you your plugin update is a success?
  • Would you like to see manual/user-initiated update availability also disabled?

Thank you to the handful of plugin authors who have already made use of this feature.

Edits: An image of the UIUI UI is an acronym for User Interface - the layout of the page the user interacts with. Think ‘how are they doing that’ and less about what they are doing. added a few hours later.