[DO NOT MERGE] Expiry notices: stop the rollout (prepared revert, do not merge) - #51475
[DO NOT MERGE] Expiry notices: stop the rollout (prepared revert, do not merge)#51475Copons wants to merge 1 commit into
Conversation
|
Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.
Interested in more tips and information?
|
|
Thank you for your PR! When contributing to Jetpack, we have a few suggestions that can help us test and review your patch:
This comment will be updated as you work on your PR and make changes. If you think that some of those checks are not needed for your PR, please explain why you think so. Thanks for cooperation 🤖 Follow this PR Review Process:
If you have questions about anything, reach out in #jetpack-developers for guidance! Wpcomsh plugin:
If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. |
75b85e2 to
3eea706
Compare
Code Coverage SummaryCoverage changed in 1 file.
Full summary · PHP report · JS report Coverage check overridden by
Covered by non-unit tests
|
3eea706 to
149e911
Compare
Prepared ahead of the ramp so stopping it is a merge, not a code-writing exercise. Do not merge unless the new notices are actually causing trouble. Takes the share to 0%, and moves that check ahead of the per-site override so zero means zero: a site carrying `wpcom_expiry_notices_enabled` from before the stop does not stay on the new notices. That ordering is the difference between stopping the rollout and stopping most of it. Both halves of the swap read the same predicate, so this one change also brings the previous notices back -- wpcomsh's Atomic banner and, on the WordPress.com side, the legacy plan-renew prompt. No site is left without a notice, and none gets two. The `wpcom_expiry_notices_enabled` filter still runs last and can still force a single site back in, which is how you check a fix without restarting the ramp. Restarting is putting the share back to whatever the ramp had reached. The tests describe the stopped contract rather than the running one, so they move with it. Rebuilt on trunk after the 20% widening landed; the previous version of this branch was written against 10%.
149e911 to
4423ab5
Compare
Related to DOTCOM-16615
Proposed changes
wpcom_expiry_notices_enabled = 1from before the stop does not stay on the new notices. Without that ordering this would stop most of the rollout, not the rollout.Both halves of the swap read the same predicate, so this single change also brings the previous notices back — wpcomsh's Atomic banner here, and the legacy plan-renew prompt on the WordPress.com side. No site ends up with no notice, and none gets two.
The
wpcom_expiry_notices_enabledfilter still runs last, so a single site can be forced back in to verify a fix without restarting the ramp.Related product discussion/links
Does this pull request change what data or activity we track or use?
No. It stops the new notices rendering, so their Tracks events stop firing too. Nothing is added.
Testing instructions
Sequencing matters. The gate lives in jetpack-mu-wpcom, which reaches production on a package release — slower than a WordPress.com deploy. If you need to stop the notices now, the WordPress.com-side stop is the fast lever; it forces the same predicate false and takes effect in minutes. This PR is the durable stop, and the only one that reaches Atomic sites.
wp option update wpcom_expiry_notices_enabled 1, confirm it is also out. That option no longer pulls a site in.add_filter( 'wpcom_expiry_notices_enabled', '__return_true' );puts that one site back on the new notices.Unit tests describe the stopped contract rather than the running one, so they move with the change: 1038 pass in
packages/jetpack-mu-wpcom.To restart the rollout, put
wpcom_expiry_notices_rollout_percentage()back to10(or higher) and restore the override-before-zero ordering if you want hand-picked sites to work while the share is 0 again.