WP Build Polyfills: bump @wordpress/theme to 0.17.0 to fix blank Forms/VideoPress dashboards on WP 6.9 - #50515
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: 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. |
dhasilva
left a comment
There was a problem hiding this comment.
LGTM, tested locally on WP 6.9.1 without Gutenberg.
|
@enejb most of the file changes in that #49272 were due to the Theme version bump and breaking changes within it. UI, Admin UI packages and much of the code in Jetpack now expect theme variables that are not present in the latest wp-theme. I think a full PR cherry-pick would have actually been better and safer. That's exactly why everything was updated in one go in a single PR instead of separately. :-) Did you check if everything in the UIs built by WP-Build is working across Jetpack? Fortunately, Jetpack uses a lot of manual theme token fallbacks in previous versions, which protects a lot from missing tokens. |
Proposed changes
Fixes the blank "Something went wrong!" wp-build admin dashboards on Jetpack 16.0 / WordPress 6.9 — reported for Forms, and reproduced identically on VideoPress.
Bumps
@wordpress/themefrom^0.15.0to^0.17.0inwp-build-polyfills. That's the whole fix.Root cause: boot and theme are a mismatched pair on 16.0
wp-build-polyfillsonbranch-16.0resolves:@wordpress/boot@wordpress/themeThe polyfill's boot module renders
ThemeProvideras a public export ofwp.theme:But
@wordpress/theme0.15.1 only exportsprivateApis. You can see it in the script 16.0 actually serves —ThemeProvideris compiled in, but never exported:So boot reads
undefined, React throws #130 (type is invalid ... got: undefined), the error boundary catches it, and the page renders "Something went wrong!".@wordpress/themeadded the public export in 0.17.0:Every wp-build (script-module) dashboard boots through that module, which is why one dependency skew breaks multiple products at once. This was never a Forms bug.
Why this doesn't affect trunk
Trunk bumped theme to 0.17.0 as part of the
@wordpress/*monorepo update (#49272), re-pairing boot and theme. That PR is ~281 files, so it isn't a sane cherry-pick for a point release — hence this minimal, targeted bump instead.Blast radius
Rebuilding the package with only this bump changes exactly one built artifact —
build/scripts/theme/index.js(+ its.asset.php). Every other polyfill asset (boot, route, a11y, notices, private-apis, views) is byte-identical to what 16.0 ships.@wordpress/uidoes not need to move; theme alone is sufficient.Testing instructions
Verified on a Jurassic Ninja site running WordPress 6.9.4 + Jetpack 16.0 (Gutenberg not installed), driven with Playwright.
Before —
Jetpack → FormsandJetpack → VideoPressboth render "Something went wrong!", console showsMinified React error #130originating injetpack-wp-build-polyfills/build/modules/boot/index.js.After (production build of this branch rsynced to the same site):
wp-themeon 16.0).React error #130is gone from the console.To reproduce:
admin.php?page=jetpack-forms-responses-wp-admin→ blank error page on stock 16.0.wp-build-polyfills, and reload → dashboard renders.Does this pull request change what data or activity we track or use?
No.