Skip to content

Update wordpress monorepo - abandoned - #50982

Closed
matticbot wants to merge 2 commits into
trunkfrom
renovate/wordpress-monorepo
Closed

matticbot wants to merge 2 commits into
trunkfrom
renovate/wordpress-monorepo

Conversation

@matticbot

@matticbot matticbot commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence
@wordpress/api-fetch (source) 7.51.0 → 7.54.0 age confidence
@wordpress/babel-plugin-import-jsx-pragma (source) 5.51.0 → 5.54.0 age confidence
@wordpress/base-styles (source) 11.0.0 → 13.0.0 age confidence
@wordpress/blob (source) 4.51.0 → 4.54.0 age confidence
@wordpress/block-editor (source) 16.0.0 → 17.0.0 age confidence
@wordpress/block-library (source) 10.2.0 → 10.5.0 age confidence
@wordpress/block-serialization-default-parser (source) 5.51.0 → 5.54.0 age confidence
@wordpress/blocks (source) 15.24.0 → 15.27.0 age confidence
@wordpress/browserslist-config (source) 6.51.0 → 6.54.0 age confidence
@wordpress/commands (source) 1.51.0 → 1.54.0 age confidence
@wordpress/components (source) 37.0.0 → 40.0.0 age confidence
@wordpress/core-data (source) 7.51.0 → 7.54.0 age confidence
@wordpress/data-controls (source) 4.51.0 → 4.54.0 age confidence
@wordpress/date (source) 5.51.0 → 5.54.0 age confidence
@wordpress/dependency-extraction-webpack-plugin (source) 6.53.0 → 6.54.0 age confidence
@wordpress/dom (source) 4.51.0 → 4.54.0 age confidence
@wordpress/dom-ready (source) 4.51.0 → 4.54.0 age confidence
@wordpress/e2e-test-utils-playwright (source) 1.51.0 → 1.54.0 age confidence
@wordpress/edit-post (source) 8.51.0 → 8.54.0 age confidence
@wordpress/editor (source) 14.51.0 → 14.54.0 age confidence
@wordpress/element (source) 8.3.0 → 8.6.0 age confidence
@wordpress/element (source) 8.2.0 → 8.6.0 age confidence
@wordpress/escape-html (source) 3.51.0 → 3.54.0 age confidence
@wordpress/eslint-plugin (source) 25.7.0 → 25.10.0 age confidence
@wordpress/format-library (source) 5.51.0 → 5.54.0 age confidence
@wordpress/hooks (source) 4.51.0 → 4.54.0 age confidence
@wordpress/html-entities (source) 4.51.0 → 4.54.0 age confidence
@wordpress/i18n (source) 6.24.0 → 6.27.0 age confidence
@wordpress/interactivity (source) 6.51.0 → 6.54.0 age confidence
@wordpress/jest-console (source) 8.51.0 → 9.2.0 age confidence
@wordpress/keycodes (source) 4.51.0 → 4.54.0 age confidence
@wordpress/lazy-editor (source) 1.17.0 → 1.20.0 age confidence
@wordpress/media-utils (source) 5.51.0 → 5.54.0 age confidence
@wordpress/plugins (source) 7.51.0 → 7.54.0 age confidence
@wordpress/preferences (source) 4.51.0 → 4.54.0 age confidence
@wordpress/primitives (source) 4.51.0 → 4.54.0 age confidence
@wordpress/router (source) 1.53.0 → 1.54.0 age confidence
@wordpress/server-side-render (source) 6.27.0 → 6.30.0 age confidence
@wordpress/stylelint-config (source) 24.0.0 → 24.3.0 age confidence
@wordpress/sync (source) 1.51.0 → 1.54.0 age confidence
@wordpress/token-list (source) 3.51.0 → 3.54.0 age confidence
@wordpress/url (source) 4.51.0 → 4.54.0 age confidence
@wordpress/viewport (source) 6.51.0 → 6.54.0 age confidence
@wordpress/widgets (source) 4.51.0 → 4.54.0 age confidence
@wordpress/wordcount (source) 4.51.0 → 4.54.0 age confidence

Release Notes

WordPress/gutenberg (@​wordpress/api-fetch)

v7.54.0

Compare Source

Internal
  • Split tsconfig into a build project and a default dev project so dev files are type checked without publishing their declarations. (#​81514)

v7.53.0

Compare Source

v7.52.0

Compare Source

WordPress/gutenberg (@​wordpress/babel-plugin-import-jsx-pragma)

v5.54.0

Compare Source

v5.53.0

Compare Source

v5.52.0

Compare Source

WordPress/gutenberg (@​wordpress/base-styles)

v13.0.0

Compare Source

Breaking Changes
  • Remove the input-style__focus mixin. Use outset-ring__focus instead (#​81357).
Enhancements
  • input-control: Use outset-ring__focus for focus styling, WPDS tokens for border styling, and a hover border treatment aligned with @wordpress/ui. If you also define custom :focus box-shadow styles on the same selector, remove them to avoid duplicate focus rings (#​81357).
  • outset-ring__focus: Use a --focus-color fallback in the outline instead of declaring the custom property locally, so ancestor overrides apply correctly (#​81242).

v12.1.0

Compare Source

v12.0.0

Compare Source

Breaking Changes
  • Remove the $accent-color parameter from input-control and input-style__focus. Focus styling now uses --wp-admin-theme-color internally (#​80595).
Enhancements
  • outset-ring__focus: Allow overriding the focus ring color via the --focus-color custom property (#​80587).
Bug Fixes
  • Lower the editor z-index of left/right aligned blocks below sticky and fixed position blocks, so floated blocks no longer cover stuck blocks while scrolling (#​80749).
Internal
  • Update exports to use subpath patterns instead of deprecated trailing / folder mappings (#​80270).
WordPress/gutenberg (@​wordpress/blob)

v4.54.0

Compare Source

Internal
  • Split tsconfig into a build project and a default dev project so test files are type checked without shipping their declarations. (#​81509)

v4.53.0

Compare Source

v4.52.0

Compare Source

WordPress/gutenberg (@​wordpress/block-editor)

v17.0.0

Compare Source

Breaking Changes
  • Remove src/default-editor-styles.scss. Consumers importing it should supply their own (#​81793).
New Features
  • Register and handle the keyboard shortcuts that blocks declare on their variations and transforms, so that any block can contribute a shortcut without the editor knowing about it. Shortcuts apply to the selected block, and are listed under "Block shortcuts" in the keyboard shortcuts help modal (#​81588).
Enhancements
  • BlockStyles: Use Button from @wordpress/ui, truncate long labels after three lines, and navigate the variations as a radio group (#​40331).
  • Patterns explorer: Refactor the category sidebar to use Tabs (#​81807).
  • PublishDateTimePicker: Add a showPopoverHeader prop so the picker can be rendered inline, without the popover title and close button. Rename the header's reset action from "Now" to "Reset", which reads as an action rather than a status (#​81806).
  • Show separate horizontal and vertical block spacing controls in the block inspector only for Flex and Grid layouts, while retaining axial gap support in Global Styles. Responsive Grid column calculations use the horizontal gap, while Flow and Constrained layouts use the vertical gap when receiving an axial value (#​81476).
Bug Fixes
  • Hide the Layout panel when a block has layout editing enabled but all controls for its layout type are disabled (#​81968).
  • DuotoneControl: Keep the picked preset's identity when applying a duotone to a block. Two presets can hold the same pair of colors, and the applied preset was resolved by matching colors, so the first of any duplicate pair was saved and both appeared selected (#​81605).
  • InnerBlocks: Resolve the default of a block's layout support before providing it to inner blocks. A block that declared its layout only as a support default, such as the Gallery, previously handed its children the raw support config, which has no type, so the children resolved to the flow layout instead. As a result an Image nested in a Gallery offered left/center/right alignment, which the flex layout does not permit (#​81606).
  • Never apply Spotlight mode in a preview canvas, which cannot be edited and so rendered most of its content faded (#​81615).
  • Grid: Keep child layout changes made with the resizer scoped to the selected viewport.
  • DimensionsTool: Reflect aspect ratio and scale values that are updated from outside the component, such as by undo or updateBlockAttributes. The scale control no longer displays a stale value, and an aspect ratio that is written differently to its preset, e.g. 1/1 rather than 1, is displayed as that preset instead of as "Original" (#​80747).
  • ListView: Only move focus into the list when the new focusOnMount prop is set, so that a list mounted as a side effect of a selection no longer pulls focus out of the editor canvas (#​81659).
  • RichText: Handle Enter using the current record, so pressing it right after moving the caret splits at the caret's new position instead of the previous one (#​81696).
  • useInnerBlocksProps: Resolve the manual grid placement check that disables the standard drop zone against a layout passed through the options, when provided, instead of always using the block edit context layout (#​81120).
  • useInsertionPoint: Leave the insertion cue alone when it belongs to the in-between inserter. The cue is shared state and the in-between inserter mounts inside its popover, so the sidebar inserter hiding it tore down the inline inserter that had just been opened (#​76241).
  • BorderPanel: Match a chosen drop shadow against the presets from every origin rather than the first origin that defines any, so theme and default presets keep being stored as var:preset|shadow|<slug> once a custom preset exists (#​81346).
  • InserterMenu: Cancel the animation frame that focuses the active tab when the menu unmounts before it runs, so an unmount right after mount no longer throws #​81918.
Internal
  • Split tsconfig into a build project and a default dev project so dev files are type checked without publishing their declarations. (#​81516)
  • Expose isElementVisible via private APIs so @wordpress/editor's collaboration overlay can detect content hidden by a collapsed container (e.g. a closed core/details panel) without duplicating the visibility check (#​81322).

v16.2.0

Compare Source

Internal
  • Use the new @wordpress/kebab-case package instead of unlocking the kebabCase utility from the @wordpress/components private APIs (#​81294).
Enhancements
  • Allow Global Styles to supply additional element color controls to the shared Colors panel (#​80852).
  • Creating a new block next to a sibling of the same type now inherits the sibling's attributes consistently, whether it is created by the appender, the inserter, or Enter at the edge of the text. Everything except the sibling's content (attributes with the content role) and its metadata is copied. The attributesToCopy list of a default block is removed: the copied attributes derive from the block's attribute roles.
Enhancements
  • Add support for the blockStatesEditingEnabled editor setting, which hides state controls for blocks when set to false (#​80956, #​81058).
Performance
  • hasSelectedInnerBlock: Answer the deep check from a set of the selection's ancestors, built once per selection, instead of walking the parents of every selected block on each call. BlockListBlock asks once per rendered block, so the old cost was the block count multiplied by the selection size (#​81210).
  • BlockListBlock: Skip that deep check behind isSelectionWithinCurrentSection when the block is not within a section block, where it was passed an undefined client ID that never matches. Together the two changes take selecting all blocks on a 1000 paragraph post from 16.8s to 0.4s (#​81210).
  • ListView: Drop the useBlockDisplayInformation and useBlockLock calls from the row, select button and branch components, reading the few fields they were used for from the useSelect each component already has. Store subscriptions go from seven to four per rendered row, and from two to one per branch (#​81136).
  • ListView: Collapse the placeholder rows that stand in for blocks outside of the render window into a single spacer row per run, instead of rendering a <tr>/<td> pair for every block. On a post with 1000 top-level blocks this removes ~1900 elements (about 60% of the List View's DOM and nearly half of the document's elements), which cuts the style recalculation and layout work done when the List View opens (#​80953).
  • hasSelectedInnerBlock: Return false up front when called without a client ID, instead of reading the selection and walking it for a check that can never match. The root client ID ('') is covered by the same bail out, so the shallow check no longer reports true when a top level block is selected, matching the deep check (#​81315).
Internal
  • ListView: Reimplement the Firefox description-recomputation workaround in AriaReferencedText by keying the element on its text, so React replaces it instead of updating the existing text node in place (#​80929.
Bug Fixes
  • MediaPlaceholder: Stop the drop zone activating for canvas block-reorder drags. Dragging an inner block within a block that renders a media placeholder (e.g. reordering a Playlist Track) no longer shows a media drop zone and blocks the reorder.
  • isBlockSelected: Return false when called without a client ID, instead of matching the undefined client ID of an empty selection (#​81212).
  • URLInput: Collapse a text selection reaching the start of the field before letting an up arrow press through to the editor, so selecting to the start and pressing up no longer navigates out of the field instead of collapsing the caret (#​80780).
  • URLInput: Leave Shift-modified arrow keys to the browser, so extending a selection with Shift+Up or Shift+Down no longer collapses it to the start or end of the field (#​80780).
  • RichText: Skip the block input transforms in fields that are not passed an onReplace (#​80978).
  • RichText: Ignore pasted files, which carry no text to paste inline (#​81010).
  • Background block support: Fix gradients not being applied to a block when a theme opts out of settings.background.gradient in theme.json (#​81056).
  • LinkControl: Restore the preview title underline by slightly increasing the title's line height, which was too tight for the underline to be visible (#​81083).
  • URLInput: Skip link search requests while an IME composition is in progress; the search now fires once with the confirmed value on compositionend (#​80602).
  • SpacingSizesControl: Give the control's visible label its own translation context instead of sharing an entry with the side input's aria label, which feeds the same placeholders in the opposite order — a single shared translation could not be correct for both (#​81240).

v16.1.0

Compare Source

Enhancements
  • Inspector controls in the standard block-supports panels (Typography, Dimensions, Border, Color, Background, Filters) now reflect the value a block inherits from Global Styles when no local override is set. Inherited controls show that value at rest (as a placeholder, preselected option, or resolved value) and mark the label with a dotted underline; setting a local override reveals a reset affordance that clears the override back to the inherited value (#​77894).
  • Inherited Global Styles now resolve per-level heading element styles for the heading-family blocks (core/heading, core/site-title, core/post-title, core/query-title, core/comments-title, core/term-name, core/site-tagline, core/accordion-heading), so inspector controls reflect values set on a specific heading level (styles.elements.h1–h6) in addition to the shared heading element. A block rendered at level 0 (a paragraph) folds no heading element styles; core/accordion-heading has no level-0 state and takes its level from the parent Accordion's block context (#​80495).
  • Inherited Global Styles now resolve the link element (styles.elements.link) for whole-block link blocks — those that render as a link — so their inspector controls reflect inherited link styles, mirroring the button element treatment for core/button. Covers core/read-more, core/loginout, core/post-navigation-link, core/query-pagination-next, core/query-pagination-previous, core/query-pagination-numbers, core/comments-pagination-next, core/comments-pagination-previous, core/comments-pagination-numbers, core/comment-edit-link, core/comment-reply-link, and core/post-comments-link #​80607).
Internal
  • Gate the inherited Global Styles treatment in the block inspector on the gutenberg-global-styles-inheritance-ui Gutenberg experiment, so useResolvedStyle resolves nothing and the block-supports panels render without the inheritance affordances until the experiment is turned on (#​80555, #​80815).
  • URLInput: Convert the class component to a function component with hooks, replacing the compose( withSafeTimeout, withSpokenMessages, withInstanceId, withSelect ) wrapper. The unused setTimeout prop injected by withSafeTimeout is dropped, and the block editor settings are now read on demand rather than subscribed to (#​80721).
Bug Fixes
  • Gate the HEIC canvas conversion fallback on window.__clientSideMediaProcessing instead of the redundant window.__heicUploadSupport flag, fixing client-side HEIC conversion in Safari on core WordPress installs (#​80452).
  • URLInput: Request suggestions for a value the field is mounted with, instead of waiting for the input to be focused, and stop requesting initial suggestions on mount when disableSuggestions is set (#​80721).
  • The multi-selection inspector card and the spoken selection announcement now disclose the total number of blocks a selection contains when the selected blocks have nested content, e.g. "2 blocks selected, 4 including nested blocks." (#​80745).
WordPress/gutenberg (@​wordpress/block-library)

v10.5.0

Compare Source

Enhancements
  • List: Add wide and full alignment support (#​68002).
Internal
  • Heading: Declare the heading level and paragraph keyboard shortcuts on the block's variations and transforms, rather than in a BlockKeyboardShortcuts component that every editor had to render. The BlockKeyboardShortcuts private export has been removed (#​81588).
  • Math: Use ValidatedTextareaControl from @wordpress/ui in the LaTeX popover instead of unlocking ValidatedTextareaControl from the @wordpress/components private APIs (#​81984).
Enhancements
  • Columns: Add transforms between Columns and the Row variation that preserve column widths through flex child sizing controls.
Bug Fixes
  • Cover: Use the new toggle-button presentation for the placeholder overlay color palette (#​82023).
  • Columns: Preserve individual Column attributes supported by Group, including styles and layouts, when transforming to Row or Grid.
  • Gallery: Don't offer the Image and Grid transforms while the block is in dynamic mode, where it has no inner blocks to convert (#​82009).
  • Icon: Apply only padding to the inner SVG in the editor, so margin is no longer applied twice compared to the front end (#​81292).
  • Playlist: Attach the inner block drop zone to the track list, so Playlist Track blocks show insertion markers while being reordered.
  • Playlist Track: Hide the Title and Replace audio controls when multiple tracks are selected.
  • Playlist Track: Mark track media fields as content so toolbar inserters add an empty track instead of duplicating the selected track.
  • Tabs: Number the generated tab IDs from 1 and keep them sequential, so IDs generated by other blocks on the page no longer shift the numbering (#​81781).
  • Playlist: Stop sharing the parent "Add track" toolbar control with selected Playlist Track child blocks (#​81432).
  • Tabs: Hide inactive tab panels with until-found so the browser's find-in-page can reach their content, and activate the matching tab when the browser reveals a panel. Panels are also taken out of the tab sequence while hidden, since a panel hidden with until-found keeps a layout box (#​81712).
  • Term Description: Apply the term description display filters when rendering with term context inside a Terms Query loop, so multi-paragraph descriptions keep their paragraphs and match the taxonomy archive rendering (#​81290).
  • Accordion: Resolve the URL fragment with the :target pseudo-class instead of decoding window.location.hash, so a hash containing malformed percent-encoding no longer throws a URIError when a panel is opened (#​81780).
  • Post Template: Pass an explicit default layout to the inner blocks of the Post Template and Term Template blocks, so the movers, inserters, and child controls of the template's blocks no longer follow the grid used to arrange the post/term items (#​81120).
  • Accordion Heading: Declare the spacing selector in the block's selectors map, so padding set in theme.json or Global Styles applies to the toggle button the block writes its own padding to, rather than to the heading wrapper where it could not lower the default (#​81976).

v10.4.0

Compare Source

Internal
  • Embed: Use the new @wordpress/kebab-case package instead of unlocking the kebabCase utility from the @wordpress/components private APIs (#​81294).
Enhancements
  • Group: Support separate horizontal and vertical block spacing values (#​81476).
  • Playlist Track: Use a dedicated icon for the block toolbar. (#​80959)
  • Playlist: Expose the parent "Add track" toolbar control to selected Playlist Track child blocks via block toolbar sharing (#​80368).
  • Playlist: Allow selecting audio tracks individually in the Media Library without holding Shift or Command, transform multiple Audio blocks into a Playlist, and transform a one-track Playlist into Audio. (#​80926)
  • Page List: Rename the "Edit" action to "Detach", and confirm it in a dialog explaining that the list will keep its current pages but stop adding new ones automatically, matching the Gallery block (#​80847).
  • Tabs: Start new tabs with an empty label showing a "Tab title" placeholder instead of a generic "Tab" (#​81009).
  • Tab Panel: Show the tab's title in the Document Overview instead of the generic block title, so tabs can be told apart (#​81427).
Bug Fixes
  • Footnotes: Treat unreadable footnotes post meta as no footnotes instead of throwing, so the block shows its placeholder rather than the block crash warning (#​81201).
  • Playlist Track: Show the upload loading indicator inline with the track row.
  • Playlist: Improve handling of declarative waveform player configuration (#​81342).
  • Playlist: Update @arraypress/waveform-player to ^1.26.0, disable automatic initialization, and prevent custom SVG icons from being configured through HTML data attributes.
  • Cover: Pass 'full' instead of null as the featured image size for parallax and repeated backgrounds, so a null array offset is no longer reached on PHP 8.5 (#​81444).
Internal
  • Details: Import withIgnoreIMEEvents from @wordpress/keycodes instead of unlocking it from @wordpress/components (#​81343).

v10.3.0

Compare Source

Enhancements
  • Playlist: Shorten the track toolbar button label from "Add track" to "Add".
  • Gallery: Rename the dynamic variation's "Convert to images" action to "Detach", and confirm it in a dialog explaining that the gallery will keep its current images but stop updating automatically (#​80727).
Bug Fixes
  • Table of Contents: Continue rendering saved legacy content until the post is edited and resaved.
  • Navigation Overlay Close: Inherit typography and color from the overlay, so the button follows the theme font instead of the browser default button styles (#​80751).
  • Playlist: Update @arraypress/waveform-player to ^1.23.0, which no longer sets crossorigin="anonymous" on its audio element, fixing playback of tracks served without CORS headers such as media offloaded to a CDN (#​80533).
  • Post Content: Restrict the wrapper tag to the supported values offered in the editor.
  • Post Date: Escape date values and link URLs before rendering the block.
Internal
  • Update memize to 2.1.1 (#​80764).
  • Image: Check only window.__clientSideMediaProcessing for sideloading status, following the removal of the redundant window.__heicUploadSupport flag (#​80452).
WordPress/gutenberg (@​wordpress/block-serialization-default-parser)

v5.54.0

Compare Source

v5.53.0

Compare Source

v5.52.0

Compare Source

WordPress/gutenberg (@​wordpress/blocks)

v15.27.0

Compare Source

New Features
  • Block variations and block type block transforms accept a shortcut property, declaring a keyboard shortcut that applies the variation or transform to the selected block.

Configuration

📅 Schedule: Branch creation - Between 12:00 AM and 02:59 AM, on day 1 of the month ( * 0-2 1 * * ) in timezone UTC, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Renovate Bot.

@matticbot
matticbot requested a review from a team August 1, 2026 01:31
@matticbot
matticbot requested review from a team as code owners August 1, 2026 01:31
@matticbot matticbot added [Status] Needs Review This PR is ready for review. Task labels Aug 1, 2026
@github-actions

github-actions Bot commented Aug 1, 2026 •

Copy link
Copy Markdown
Contributor

Are you an Automattician? Please test your changes on all WordPress.com environments to help mitigate accidental explosions.

  • To test on WoA, go to the Plugins menu on a WoA dev site. Click on the "Upload" button and follow the upgrade flow to be able to upload, install, and activate the Jetpack Beta plugin. Once the plugin is active, go to Jetpack > Jetpack Beta, select your plugin (Jetpack or WordPress.com Site Helper), and enable the renovate/wordpress-monorepo branch.
  • To test on Simple, run the following command on your sandbox:
bin/jetpack-downloader test jetpack renovate/wordpress-monorepo
bin/jetpack-downloader test jetpack-mu-wpcom-plugin renovate/wordpress-monorepo

Interested in more tips and information?

  • In your local development environment, use the jetpack rsync command to sync your changes to a WoA dev blog.
  • Read more about our development workflow here: PCYsg-eg0-p2
  • Figure out when your changes will be shipped to customers here: PCYsg-eg5-p2

@github-actions github-actions Bot added [Package] Seo [Package] VideoPress [Package] Wp Build Polyfills [Package] Yoast Promo [Plugin] Automattic For Agencies Client [Plugin] Boost A feature to speed up the site and improve performance. [Plugin] Classic Theme Helper Plugin [Plugin] Inspect [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/ [Plugin] Paypal Payment Buttons [Plugin] Protect A plugin with features to protect a site: brute force protection, security scanning, and a WAF. [Plugin] Starter Plugin [Plugin] VideoPress A standalone plugin to add high-quality VideoPress videos to your site. E2E Tests RNA labels Aug 1, 2026
@jp-launch-control

jp-launch-control Bot commented Aug 1, 2026 •

Copy link
Copy Markdown

Code Coverage Summary

Cannot generate coverage summary while tests are failing. 🤐

Please fix the tests, or re-run the Code coverage job if it was something being flaky.

Full summary · PHP report

@matticbot
matticbot force-pushed the renovate/wordpress-monorepo branch from bf8c823 to f4f32a7 Compare August 3, 2026 06:50
@chihsuan

chihsuan commented Aug 3, 2026

Copy link
Copy Markdown
Member

Dug into failing CI jobs, every failing suite dies at import time with Cannot unlock an object that was not locked before.

The cause is @wordpress/private-apis ending up as two copies. @wordpress/components@38.0.0 wants ^1.52.0, but premium-analytics, charts and wp-build-polyfills pin 1.51.0, so pnpm installs both and the lock/unlock no longer lines up.

Two things I tried:

  • Bumping the three private-apis pins to 1.52.0 — doesn't work. rich-text@7.51.0 (^1.51.0) and a few others keep 1.51.0 in the tree, so the error just moves to rich-text's module-scope unlock.
  • A pnpm override (overrides: "@wordpress/private-apis": "1.52.0" in pnpm-workspace.yaml) — this does work, but I think it's just a workaround.

#50509 actually fixes this for free, since it moves private-apis to 1.52.0 anyway.

@anomiex

anomiex commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Looks like this now needs the same pnpmfile hack fix as is in #51303.

@anomiex

anomiex commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

Typescript seems unhappy now, and Storybook has errors about "Cannot unlock an object that was not locked before" from @wordpress/private-apis.

@manzoorwanijk

Copy link
Copy Markdown
Member

Typescript seems unhappy now

We pin @wordpress/data to 10.51.0 while @wordpress/core-data@7.54.0 pulls in 10.54.0.

@manzoorwanijk

Copy link
Copy Markdown
Member

Now the build fails

[packages/assets] 
  [packages/assets] Oops! Something went wrong! :(
  [packages/assets] 
  [packages/assets] ESLint: 10.8.1
  [packages/assets] 
  [packages/assets] Error: Cannot find module 'brace-expansion'
  [packages/assets] Require stack:
  [packages/assets] - /home/runner/work/jetpack/jetpack/node_modules/.pnpm/minimatch@10.2.6/node_modules/minimatch/dist/commonjs/index.js
  [packages/assets] - /home/runner/work/jetpack/jetpack/node_modules/.pnpm/eslint@10.8.1/node_modules/eslint/lib/eslint/eslint-helpers.js

@matticbot

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

@retrofox

Copy link
Copy Markdown
Contributor

This round and the bundled @wordpress/* round (#51701) block each other, so I'm folding this one into #51701 rather than landing them separately.

The failures here are all one split: the bundled group is still on its .53 train in trunk, so @wordpress/private-apis resolves to both 1.53 and 1.54 (Cannot unlock an object that was not locked before in Storybook and jest) and @wordpress/notices to both 5.51 and 5.54 (the TS2349 errors and the null dispatch() in Publicize).

Bumping @wordpress/data alone can't close that gap, because notices and private-apis move with the bundled group. Same shape as the two earlier rounds traced above by @chihsuan and @anomiex.

#51701 has the mirror problem (its private-apis 1.54 rejects the dataviews 17.3 that the .51 train still pulls in), which is why it now carries these 43 bumps too, on one lockfile regenerated from that branch.

The combined tree is green locally: typecheck, Storybook, and jest for premium-analytics, forms, publicize, and seo.

One thing worth knowing for the lockfile here, @manzoorwanijk: the brace-expansion failure is pnpm 11.5.2 dropping snapshot edges on a regenerate (minimatch@10.2.6: {} in this lock, pnpm#12456).

Regenerating with corepack pnpm@11.5.1 keeps them; that's what #51701 uses.

@anomiex

anomiex commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

This round and the bundled @wordpress/* round (#51701) block each other, so I'm folding this one into #51701 rather than landing them separately.

Gutenberg seems to be adding more and more cross-dependencies between its packages, making #50868 seem more and more attractive.

@matticbot

Copy link
Copy Markdown
Contributor Author

Autoclosing Skipped

This PR has been flagged for autoclosing. However, it is being skipped due to the branch being already modified. Please close/delete it manually or report a bug if you think this is in error.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

E2E Tests [Feature] Contact Form [Feature] Masterbar WordPress.com Toolbar and Dashboard customizations [Feature] Publicize Now Jetpack Social, auto-sharing [Feature] Theme Tools [JS Package] AI Client [JS Package] API [JS Package] Base Styles [JS Package] Boost Score Api [JS Package] Charts [JS Package] Components [JS Package] Connection [JS Package] Eslint Config Target Es [JS Package] I18n Loader Webpack Plugin [JS Package] IDC [JS Package] Jetpack Shared Stores [JS Package] Licensing [JS Package] Partner Coupon [JS Package] Scan [JS Package] Shared Extension Utils [JS Package] Social Previews [JS Package] Storybook [JS Package] Webpack Config [Package] Activity Log [Package] Admin Ui [Package] Agents Manager [Package] Assets [Package] Backup [Package] Blaze [Package] Classic Theme Helper [Package] Comments [Package] Connection [Package] Cookie Consent [Package] Explat [Package] External Connections [Package] External Media [Package] Forms [Package] Jetpack mu wpcom WordPress.com Features [Package] Jitm [Package] Masterbar [Package] My Jetpack [Package] Newsletter [Package] Paypal Payments [Package] Podcast [Package] Post List [Package] Premium Analytics [Package] Publicize [Package] Rtc [Package] Scan [Package] Search Contains core Search functionality for Jetpack and Search plugins [Package] Seo [Package] VideoPress [Package] Wp Build Polyfills [Package] Yoast Promo [Plugin] Automattic For Agencies Client [Plugin] Boost A feature to speed up the site and improve performance. [Plugin] Classic Theme Helper Plugin [Plugin] Inspect [Plugin] Jetpack Issues about the Jetpack plugin. https://wordpress.org/plugins/jetpack/ [Plugin] Paypal Payment Buttons [Plugin] Protect A plugin with features to protect a site: brute force protection, security scanning, and a WAF. [Plugin] Starter Plugin [Plugin] VideoPress A standalone plugin to add high-quality VideoPress videos to your site. RNA Task

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants