[wp-meta] [Making WordPress.org] #8009: Phased releases and roll-outs of plugins
Making WordPress.org
noreply at wordpress.org
Thu Jul 10 07:09:42 UTC 2025
#8009: Phased releases and roll-outs of plugins
------------------------------+---------------------
Reporter: matt | Owner: (none)
Type: enhancement | Status: new
Priority: normal | Milestone:
Component: Plugin Directory | Resolution:
Keywords: has-patch |
------------------------------+---------------------
Comment (by dd32):
> @tw2113: If a plugin has opted into phased releases, would sites that
haven't been actively touched in say 1 year+ be potentially first in line,
leaving the available update in limbo?
> or would sites that are at least relatively actively maintained be
considered first?
Unfortunately WordPress.org has no idea about any given WordPress install
- We don't know if it's been logged into, if it's a spam site, if it's
updated a plugin, etc.
While we could look at the version of WordPress it's using, or the
previous version of the plugin it's using (ie. Is it using a 1month old
version of the plugin / last stable, or is it 5 years out of date) that's
going to significantly complicate calculations and processing speed (The
update-check API for example receives 10's of thousands of requests a
minute, even 10ms adds up)
> @nerrad: I wonder if we could add some additional functionality to the
WP Fatal Error Handler:
I'd love to see this, and it would greatly help plugin authors and the
stability of WordPress sites long-term.
This probably should happen regardless, and should be implemented on it's
own merits, rather than attached to this feature.
I know some people will have concerns about privacy (even if it's opt-in)
and access to the raw data though. Performing anything significant in a
PHP fatal error handler has also been problematic in the past from a PHP
perspective.
> @joshuaflow: Rollback - When something more critical is discovered, we
need a way to quickly revert those changes. Leaving sites affected with a
critical issue for a length of time is not acceptable.
Updating the WordPress plugin updates system to allow a forced downgrade
''would'' be useful in certain circumstances, however we are limited in
what we can do here IMHO.
When you're controlling the hosting environment you can rollback very
easily.
When it's WordPress.org, we have to rely upon the fact that the WordPress
site will check for new updates in 12 hours time for another update, and
if we tell it something then, it'll (maybe) install that update anywhere
from 5minutes to 12hours later.
In other words; there's no choice in it, the site WILL be running the
aborted version for likely at least 12 hours, and potentially up to 24hrs
before it performs a follow-up action.
For many plugin authors, they'd be able to release a patched version in
that time instead. So much so that I suspect many authors would not abort
a release until they knew what was wrong (ie. to prevent one persons
plugin conflict stopping the release that works for a million others).
> @namithjawahar: A new dimension to the downloads graph can be a quick
solution to reporting showing downloads vs errors, if its crosses a
threshold
The problem is what is "an error"? If we're talking PHP Fatal errors
that's one thing, but we can't exactly detect Javascript errors, plugin
conflicts, or other similar broken functionality.
If plugins could have a "health check" (similar to docker containers) that
indicated they're operating correctly that might help here, but still
often a plugin doesn't know it's operating badly - and that's the entire
reason the bad plugin releases exist.
> @azaozz In that terms think there is no need of buckets or storing any
site identifiers. Only thing that needs to be stored is how many sites
were actually updated.
The main reason I have against the counting method, is that while we can
count based on ZIP downloads, or post-update pings, if we were limiting to
say 5k sites to start with, that doesn't help that we've returned update
responses to 10k other sites already that will perform their updates in
the next 5 hours time.
In other words: WordPress does not apply plugin updates when it finds out
about an update being available.
3rd-party tooling (Such as Managed WordPress hosts) however likely DO
update as soon a plugin release is made, but I'm basing my thoughts on
core WordPress, as these may change over time.
The counting could of course be at the update-check serving level "OK,
I've told 50k sites to update, let's put the brakes on for an hour" but
there's no guarantee that they'll update - that 50k might see 5k or 45k
updates. I think this is what you might be getting at.
We're a little hamstrung by how to store that data, Memcache doesn't
guarantee that the data will remain (and we sometimes have to reset it),
and database writes are expensive. Memcache would be "good enough" for
most people even if it reset, but would be frustrating to users and
authors when 50% of the way through an update it reset back to starting
over again.
Definitely solvable problem, but I personally prefer statistics, and it's
what we've used on WordPress.orgs APIs for this type of bucketing for a
long time in the core updates.
> @azaozz: Seems this will be true for plugins with less active installs.
Plugins with lots of installs (>1m) will probably get a lot of manual
updates too so the rollout will be quite fast.
I don't have any data on the manual-vs-auto update information for
plugins, but I don't think user-initiated updates within the first day or
so are likely to be significant enough.
While they 100% occur, based on the data I'm looking at, I expect in the
order of 99% of updates that would be affected by this would be automated
in one way or another. The downloads-per-minute graphs are just too
consistent to be anything else.
One thought is that we could hold back auto-updates for the first 24hrs
and just let manual updates occur, users that update plugins are more
likely to report issues and to actually be using the site. The problem
with this suggestion is that we have no way of preventing a site
performing an auto-update or signaling to it at present. We could add this
to WordPress 6.9+ but again, what do you do about existing and yesterdays
WordPress's.
> @azaozz: Thinking that monitoring the forums after a new release is a
fairly standard practice. Right, there can be better ways, but they all
require the plugin's users to act.
That's my point :) Support forums ARE a good way to gauge things, but it
is not foolproof AND we're talking about a very small percentage of users
who actually create threads verses the number of installs a plugin has.
> @azaozz: Maybe having a "Report a problem" button on each plugin row in
the Plugins list table would help somewhat.
Originally that's kind of what I was thinking for with the Ratings/reviews
from the plugins dashboard, being able to say "Nah this has broken my
site, sad-face 1 star." but you're right, ratings aren't necessarily the
important thing here, being able to report an issue and get it resolved
is.
It might need to be considered whether `Create a support thread` is
appropriate for the purpose though. It might be that `Report a problem`
which feeds into anonymous aggregated plugin feedback would be better..
but at that point, you might as well collect positive feedback too and
just call it Reviews...
--
Ticket URL: <https://meta.trac.wordpress.org/ticket/8009#comment:21>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org
More information about the wp-meta
mailing list