Repository navigation
My Jetpack: retire the wp-build flag and the legacy dashboard bundle - #52446
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! Jetpack plugin: The Jetpack plugin has different release cadences depending on the platform:
If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Backup plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Boost plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Search plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Social plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Protect plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Videopress plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. Stats Data plugin: No scheduled milestone found for this plugin. If you have any questions about the release process, please ask in the #jetpack-releases channel on Slack. |
Code Coverage SummaryCoverage changed in 1 file.
1 file is newly checked for coverage.
Full summary · PHP report · JS report If appropriate, add one of these labels to override the failing coverage check:
Covered by non-unit tests
|
LiamSarsfield
left a comment
There was a problem hiding this comment.
I checked this from Boost's side and it looks good to me. On the Boost settings page, legacy and modern (standalone and with Jetpack), myJetpackInitialState, myJetpackRest and the connection state still print before jetpack-boost-admin. The upgrade interstitial loads products and opens as before. #/add-license and #/add-boost work on direct load and with back/forward from Boost. I also ran the released Boost 4.7.1 zip against this My Jetpack, and its my_jetpack_main_app dependency resolves to the script-less handle with no errors. Boost's pages match trunk apart from the font stack and the #wpwrap colour, neither of which is visible here, and notices stay hidden.
One small thing for the description: Boost's page also stops loading build/index.js and jetpack-shared-stores.js, and the legacy Boost page no longer prints the wp-build admin-frame style/script. None of that is visible, and dropping the ~2.4 MB bundle is a nice win for Boost 🚀
The dashboard now always renders through wp-build. The webpack build keeps two entries: the onboarding takeover, which hides all wp-admin chrome and stays on its own bundle, and the async notification bubble. The React state stays on the `my_jetpack_main_app` handle, now script-less. Boost depends on that name from its own admin page, so released Boost versions keep resolving it without downloading the dashboard bundle. The Features tab flag no longer requires the retired wp-build flag. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
d105a02
d5389ac to
d105a02
Compare
The dashboard now always renders through wp-build. The `search-wp-build` flag, its registration in Initializer::init(), and every branch on it are removed, along with the legacy webpack entry (`src/dashboard/index.jsx`) and its config, so the dashboard no longer ships twice. `src/dashboard/scss/admin-layout.scss` goes too: since #52507 the route imports `route.scss`, so only the legacy entry used it. The initial state keeps riding the script-less data handle the wp-build path already used. No other plugin depends on the retired `jp-search-dashboard` handle. Where the package was never built, the page now renders nothing, as My Jetpack's does since #52446. Nothing else in the package uses automattic/jetpack-feature-flags, so the requirement is dropped; the Jetpack and Search plugin locks lose only that edge, since My Jetpack still requires the package. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
My Jetpack renders inside boot's layout since #52446 retired the wp-build flag, and boot's Root already mounts a SnackbarNotices. A second list subscribes to the same store, so every toast appears twice. Drop the mount and its placement rule, as this branch already does for Scan. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
) * Search: retire the wp-build flag and the legacy dashboard bundle The dashboard now always renders through wp-build. The `search-wp-build` flag, its registration in Initializer::init(), and every branch on it are removed, along with the legacy webpack entry (`src/dashboard/index.jsx`) and its config, so the dashboard no longer ships twice. `src/dashboard/scss/admin-layout.scss` goes too: since #52507 the route imports `route.scss`, so only the legacy entry used it. The initial state keeps riding the script-less data handle the wp-build path already used. No other plugin depends on the retired `jp-search-dashboard` handle. Where the package was never built, the page now renders nothing, as My Jetpack's does since #52446. Nothing else in the package uses automattic/jetpack-feature-flags, so the requirement is dropped; the Jetpack and Search plugin locks lose only that edge, since My Jetpack still requires the package. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Changelog Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> * Changelog: drop the flag-era tail from the package entry Nothing released described the dashboard without the frame, so "on every site" pointed at a state no reader saw. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Proposed changes
Retires the
my-jetpack-wp-buildfeature flag added by the pilot in #52204. The My Jetpack dashboard now always renders through wp-build, inside its rounded frame, and the legacy dashboard bundle is gone.Initializer::is_modernized(), and every branch on it are removed.?step=onboardinghides all wp-admin chrome, so there is no frame to port; My Jetpack: port the dashboard to wp-build behind a default-off flag (pilot) #52204 left it on the legacy path on purpose._inc/admin.jsxbecomes_inc/onboarding.jsx, an entry that renders only the onboarding screen (~300 KB unminified, versus ~10 MB for the old dashboard bundle). Webpack also still buildsasync-notification-bubble.my_jetpack_main_appkeeps its name, as a script-less data handle. Boost's settings page callsInitializer::enqueue_scripts()and depends on that handle by name (Boost: Load my-jetpack script before Boost #42742), only to readmyJetpackInitialState. Keeping the name means already-released Boost versions still resolve their dependency, and none of them downloads the dashboard bundle anymore.register_wp_build_polyfills()is removed. It existed only for the legacy bundle'swp-theme/wp-private-apis/wp-noticesdependencies (My Jetpack: register wp-build-polyfills so the app (and Boost) loads without Gutenberg on WP < 7.0 #50291). Neither the onboarding bundle nor Boost's scripts depend on those handles, and the dashboard registers the full set inload_wp_build().routes/dashboard/route.scssalready includesjetpack-admin-page-layout-wp-build. The duplicatejetpack-admin-page-layoutinclude in_inc/style.module.scssis gone, and with it the order dependency between the two copies. The#my-jetpack-containerdeprecation-notice rules are also removed:useDeprecateFeatureNoticeis not imported anywhere, so they never matched.is_features_tab_enabled()now checks onlymy-jetpack-features-tab. The stale flag filters are dropped fromScript_Data_Testand the Jetpack plugin'sAkismet_Admin_Chrome_Test.Effects outside My Jetpack
#wpwrapbackground: no visible point on the page showed it.#wpbody-content > .notice:admin-ui'shide_core_admin_notices()already hides core notices there.bodyfont stack: Boost now uses wp-admin's font stack, like Protect and VideoPress. The glyphs are identical on macOS and Windows and differ only where the two stacks resolve to different fonts (for example Linux).wp companion feature-flag reset my-jetpack-wp-build. Nothing reads it anymore.Verification already done
Computed styles and geometry for every visible element were diffed between trunk (flag on, or the legacy bundle where the flag never applied) and this branch, in the same tab at the same viewport:
#/add-backupinterstitial#/connection?step=onboarding#wpwrapbackground only, as described abovePost-rebase smoke check: with only
my-jetpack-features-tabon, the tabs read Overview / Features / Help andJetpackScriptData.myJetpack.productsSectionis set.Related product discussion/links
Does this pull request change what data or activity we track or use?
No.
Testing instructions
Dashboard
#/add-backup), then use Back and Forward. Reload directly onadmin.php?page=my-jetpack#/add-backup.jetpack-my-jetpack/build/index.jsorbuild/index.css.add_filter( 'jetpack_feature_flag_enabled_my-jetpack-features-tab', '__return_true' );. The Products tab becomes Features, without any other flag.Onboarding
step=onboardingand shows the full-screen "Start with Jetpack for free" screen, with no admin bar or menu.build/onboarding.jsandbuild/onboarding.css.admin.php?page=my-jetpack&step=onboardingstill redirects back to the dashboard.Boost
window.myJetpackInitialStateis still defined.add_filter( 'rsm_jetpack_ui_modernization_boost', '__return_true' );.🤖 Generated with Claude Code