Repository navigation
Conversation
Contributor
| Are you an Automattician? The PR will need to be tested on WordPress.com. This comment will be updated with testing instructions as soon the build is complete. |
Code Coverage SummaryCannot generate coverage summary while tests are failing. 🤐 Please fix the tests, or re-run the Code coverage job if it was something being flaky. |
This was referenced Sep 14, 2026
Contributor
|
Superseded by #52187, which folds this round in ( Closing. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
7.54.0→7.55.05.54.0→5.55.013.0.0→13.1.04.54.0→4.55.017.0.0→17.1.010.5.0→11.0.05.54.0→5.55.015.27.0→16.0.06.54.0→6.55.01.54.0→1.55.040.0.0→40.1.07.54.0→8.0.04.54.0→4.55.05.54.0→5.55.06.54.0→6.55.04.54.0→4.55.04.54.0→4.55.01.54.0→2.0.08.54.0→8.55.014.54.0→15.0.08.6.0→8.7.03.54.0→3.55.025.10.0→26.0.05.54.0→5.55.04.54.0→4.55.04.54.0→4.55.06.27.0→6.28.06.54.0→6.55.09.2.0→9.3.04.54.0→4.55.01.20.0→1.21.05.54.0→5.55.07.54.0→7.55.04.54.0→4.55.04.54.0→4.55.01.54.0→1.55.06.30.0→6.31.024.3.0→25.0.01.54.0→1.55.03.54.0→3.55.04.54.0→4.55.06.54.0→6.55.04.54.0→4.55.04.54.0→4.55.0Release Notes
WordPress/gutenberg (@wordpress/api-fetch)
v7.55.0Compare Source
New Features
apiFetch.unregisterto remove a registered middleware, and exposeapiFetch.httpV1Middlewareso theX-HTTP-Method-Overridebehavior can be opted out of (#82408).apiFetch.defaultFetchHandlerso the default fetch handler can be restored aftersetFetchHandleroverrides it (#82553)Bug Fixes
nullfor a200response with an empty body instead of throwing aninvalid_jsonerror (#79325).WordPress/gutenberg (@wordpress/babel-plugin-import-jsx-pragma)
v5.55.0Compare Source
WordPress/gutenberg (@wordpress/base-styles)
v13.1.0Compare Source
Internal
Enhancements
$block-bg-paddingvariable that resolves the default background padding through the--wp--style--block-background-paddingcustom property, keeping the existing values as its fallback (#82024).WordPress/gutenberg (@wordpress/blob)
v4.55.0Compare Source
WordPress/gutenberg (@wordpress/block-editor)
v17.1.0Compare Source
New Features
BackgroundImageControl: Support setting the background image from a URL, through the URL field in the media replace popover (#82230).Enhancements
ListView: Updated to useoutset-ring__focus()mixin for focus outline wherever applicable instead of the previous box-shadow implementation. (#82129)Deprecations
__unstableSetEditorMode: Deprecate the action. It only wrote theeditorToolpreference that backed the removed Write/Design tool, and nothing has read that preference since #72193. It now dispatches nothing and logs a deprecation notice (#82677).Internal
BlockPreview: Stop applying the privateDisabledcomponent class name to block previews (#82651).Textfrom@wordpress/uiinstead of__experimentalTextfrom@wordpress/components(#77492).Textfrom@wordpress/uiinstead of__experimentalTextfrom@wordpress/components(#78119).Textfrom@wordpress/uiinstead of__experimentalTextfrom@wordpress/componentsfor the bindings hint (#77366).Textfrom@wordpress/uiinstead of__experimentalHeadingand__experimentalTextfrom@wordpress/components(#77449).@wordpress/escape-html,@wordpress/wordcountanddeepmerge(#82103).Bug Fixes
NavigableToolbar: Preserve toolbar semantics while it is hidden, so asynchronous control changes do not remount custom block toolbars (#82574).ListView: Drop the block icon's variation colors while the row is selected, so the icon keeps contrast against the selection background (#82498).flex-direction: rowwhen a viewport override switches a vertical layout to horizontal, so the baseflex-direction: columnno longer keeps applying on that viewport (#82364).BlockManager: Color library block icons withcolorwhile retaining afillfallback for custom icons that do not usecurrentColor. (#78812)visibility-to-opacitymigration left behind (#77852).clientId, so the editor orders them by block position instead of registration order. A parent's link color re-registered after a child's (e.g. by resetting and re-picking it) no longer overrides the child's own link color in the canvas (#77833).BlockVariationPicker: Set icon colors withcolorso stroke-based variation icons retain their intended unfilled appearance, while keeping a non-importantfillfallback for third-party icons that do not usecurrentColor. (#78808)BlockIcon, List View: Remove the obsoletefill: CanvasTextoverride for forced colors mode. (#82481)Internal
.jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/block-library)
v11.0.0Compare Source
Breaking Changes
Enhancements
interactivity.clientNavigationsupport. The block's front end output is static markup, and without the declaration a Math block inside a Query block forced full page reloads on pagination (#82248).--wp--style--block-background-paddingcustom property, so themes can change or remove it (#82024).Bug Fixes
fn-so they always start with a letter. A bare UUID often starts with a digit, and an ID that does is not a valid CSS identifier, soquerySelector( '#' + id )threw and#idstyle rules never matched. Existing footnotes keep their IDs (#82398).flex-growon the menu container in the editor, where the visually hidden menu description breaks the:only-childselector the front end relies on, so the "Space between" and other justification settings apply in the canvas as they do on the front end (#78447).height: autois no longer emitted for images inside a cropped gallery, so the gallery's own cropping CSS applies (#82318).excludeCurrent: nullinto thequeryattribute of blocks that never had the key. The mount effect that clears a stale exclusion treated the absent key as stale, changing the serialized markup of every pre-existing Query block as soon as the editor opened it (#82147).queryattribute that omitspostTypeas querying posts, matchingbuild_query_vars_from_query_block()(#82465).Internal
@wordpress/iconsso it matches the PHP renderer and existing themefillstyles. (#82338)@wordpress/keyboard-shortcuts,@wordpress/reusable-blocksand@wordpress/viewport(#82103)..jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/block-serialization-default-parser)
v5.55.0Compare Source
WordPress/gutenberg (@wordpress/blocks)
v16.0.0Compare Source
Breaking Changes
BlockTransformis now a discriminated union over itstype, so that each kind of transform declares its own fields:shortcodetransforms accepttagandattributeswithshortcodematchers,entertransformsregExp,prefixtransformsprefix, andrawtransformsselectorandschema.blocks,variationNameandshortcutsnow belong toblocktransforms only, andblocksis required there. This fixes type errors when registering blocks with documented shortcode transforms, but reading a variant field off aBlockTransformthat has not been narrowed on itstypeno longer compiles — including the result offindTransform(#81811).transforms.supportedMobileTransformsblock type property, along with thesupportedMobileTransformsandusingMobileTransformationsproperties of a block transform. They were only meaningful to the React Native implementation, removed in #78747, and nothing reads them any more. Note that the filter they drove was not platform-gated: a block type still declaringsupportedMobileTransformshad its transforms filtered everywhere, andgetBlockTransformsno longer filters them at all (#81831).Bug Fixes
getBlockAttributesno longer breaks when a block has no content to parse, such as a self-closing shortcode: missing content is treated as empty markup instead of reaching the attribute matchers (#81831).WordPress/gutenberg (@wordpress/browserslist-config)
v6.55.0Compare Source
WordPress/gutenberg (@wordpress/commands)
v1.55.0Compare Source
Internal
@wordpress/warning(#82103)..jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/components)
v40.1.0Compare Source
Enhancements
ToggleGroupControl: Honor the rootdisabledprop so the whole control is unselectable (#82259).--wpds-color-stroke-interactive-errorfor the invalid-state focus ring and border (#82410).Popover: Widenoffsetto also accept an object with separate main and cross axis offsets. The same applies toBorderBoxControl'spopoverOffsetprop (#82060).ToolsPanelItem: AdddefaultShownto show an optional item that has no value, and anonShownChangecallback that fires only when the user toggles the item in the panel's menu (#78010).BorderBoxControl: render the linked/unlinked toggle in a row alongside the label when a visible label is present, so it lines up with the equivalent toggle on sibling controls. Without a visible label the toggle stays beside the inputs, as before. The visible label is now aBaseControl.VisualLabel, so it renders as aspanrather than alabelelement; it was never associated with an input in either form (#82163).TabPanel: Updated to show outline via design system's mixin for focus ring instead of legacy box-shadow implementation (#82421).Bug Fixes
FormTokenField: Wrap to the last suggestion when pressing the up arrow with no suggestion selected, instead of leaving the selection on an invalid index (#82646).Disabled: Keep theclassNamepassed by the consumer on the wrapper whenisDisabledisfalse. Onlycomponents-disabledand the disabled styling are conditional now, so the wrapper stays styleable and targetable in both states (#82648).ProgressBar: Remove determinate transitions and use a slower, stepped indeterminate animation when reduced motion is preferred. (#82490)ColorPalette: Apply the computed contrast color to the selected checkmark now that the icon is stroke-based. (#78812)CheckboxControl: Color the checked and indeterminate icons withcolorrather thanfill, so they stay visible now that those icons are stroke-based. (#78812)BorderBoxControl: Give the group of border controls an accessible name from thelabelprop, by rendering the wrapper as arole="group"associated with the label througharia-labelledby. A consumer-suppliedaria-labelledbyoraria-labeltakes precedence overlabeland names the group instead; the wrapper is only given thegrouprole when one of the three provides a name. A hidden label (hideLabelFromVision) now renders as aspanrather than alabelelement, matching the visible one (#82279).Snackbar: Restart the auto-dismiss timer when a notice is recreated with the same ID during removal (#81764).ToolsPanel: Stop a panel item whosepanelIddoesn't match the panel from writing its value into that panel's menu, which could leave an orphaned entry in the dropdown (#82127).Icon: Merge a consumer-suppliedstyleprop with the icon's intrinsic styles instead of replacing them, so styles likefill: noneon stroke-based icons survive unless the consumer overrides the same property explicitly. (#78808)ItemGroup: Drop the blanketpath { fill: currentColor }rule that was overriding stroke-based icons' intended fill via inheritance bypass. Paths without an explicit fill still inheritcurrentColorfrom the surrounding SVG. Custom paths that specify a fill now retain it instead of being overridden by ItemGroup. (#78808)Tip: Preserve the intended yellow color after its icon became stroke-based. (#78808)Button,Placeholder: Remove the obsoletefill: CanvasTextoverride for forced colors mode. (#82481)InputControl,SelectControl,TextareaControl: Match the@wordpress/uidisabled styles, so the disabled state is distinguishable again. The border and text now use the design system's disabled tokens, and the background no longer changes (#82454).Documentation
Internal
FormToggle: Use the standardinertstate instead of theDisabledcomponent's class name for inherited disabled styles (#82651)..jsxextension for JavaScript source files that contain JSX (#80990).ToolsPanel: Cut the render cascade panel items set off when the selected block changes, and keep a default control resettable whenReset allleaves its value in place (#82180).WordPress/gutenberg (@wordpress/core-data)
v8.0.0Compare Source
Breaking Changes
kindandnamearguments with aconsttype parameter. TypeScript consumers now require TypeScript 5 or newer. (#81863)PostandPagenow match the REST schema:content.is_protectedis replaced bycontent.protected, andcontent.block_versionis typed as anumberrather than astring. Rename any read ofcontent.is_protected, and drop annotations or casts that treatedblock_versionas a string. (#81863)getGlobalStylesandsaveGlobalStylesshortcuts now useGlobalStylesinstead of the unrelatedGlobalStylesRevisionrecord.saveGlobalStylesrequires the record ID and accepts a plain string title, matching the REST API update route and schema. (#81863)RenderedTextomitsrawoutside the edit context instead of typing it asnever, so a record requested withcontext: 'view'orcontext: 'embed'no longer exposestitle.raworcontent.raw. Readrenderedin those contexts, or request the record withcontext: 'edit'. (#81863)Bug Fixes
totalItemsin sync when records are removed from it, so the page count is correct after a deletion instead of only after the next fetch (#82244).EntityProvider: arevisionIdnow only affects the entity it is set on. Other entities rendered inside it, such as the posts in a Query Loop, keep showing their own data (#82517).getEntityRecordandgetRevisionreturn the same record for queries that request the same_fields, instead of a new object on every call, which madeuseSelectwarn underSCRIPT_DEBUG(#82552).Enhancements
getEntityRecordandgetEntityRecordsnow infer verified post, page, media, block, navigation, global styles, icon, and icon collection records from theirkindandnamearguments and resolve their context from the query, sogetEntityRecord( 'postType', 'post', id ).titletype checks without namingPostby hand, and acontext: 'view'request is not typed with the edit-context fields. Pairs the map does not cover still resolve to the previous union, and a plugin opts in by merging intoEntityRecordTypesor a per-kind interface. A call that names no context resolves the one its entity is registered to be fetched in, declared inEntityContextDefaultsand extended the same way; a pair that declares none resolves to every context. AddsBlock,Navigation,GlobalStyles, andIconCollectionrecords, and drops assertions only from mapped call sites; one assertion was hiding a nullable draft date. (#81863)class_listfield to inferred posts, pages, and media, and add mediafilenameandfilesizefields. Embed records omit these view/edit-only fields. (#81863)_fieldsinfer a recursively partial entity record, so TypeScript requires callers to account for omitted top-level and nested object fields. (#81863)Attachment.caption.renderedavailable in view and embed contexts while limitingcaption.rawto edit responses, matching the REST schema. (#81863)ContextualFieldso plugins can describe context-sensitive fields when extending the entity record map. (#81863)PostStatusaccepts statuses registered by WordPress or plugins while preserving autocomplete for the built-in values. (#81863)page_for_privacy_policyto theSettingsentity type, exposed by the Gutenberg plugin from thewp_page_for_privacy_policyoption (#82422).Internal
active_templates) experiment: drop theregisteredTemplateentity and the experiment-onlywp_templateendpoint rewrites and query params (#82241).@wordpress/is-shallow-equal(#82103)..jsxextension for JavaScript source files that contain JSX (#80990).WordPress/gutenberg (@wordpress/data-controls)
v4.55.0Compare Source
WordPress/gutenberg (@wordpress/date)
v5.55.0Compare Source
WordPress/gutenberg (@wordpress/dependency-extraction-webpack-plugin)
v6.55.0Compare Source
WordPress/gutenberg (@wordpress/dom)
v4.55.0Compare Source
Bug Fixes
focusable.find: Exclude elements hidden by CSSvisibilityorcontent-visibilitywhile preserving explicitly visible descendants (#82574).WordPress/gutenberg (@wordpress/dom-ready)
v4.55.0Compare Source
WordPress/gutenberg (@wordpress/e2e-test-utils-playwright)
v2.0.0Compare Source
Breaking Changes
lighthousedependency is now^13.4.1, which requires it. Learn more about Node.js releases (#81916).Editor.switchEditorTool(): Remove the helper. It clicked the Write/Design "Tools" toolbar button, which the editor no longer renders since #72193 (#82677).New Features
Admin.visitSiteEditor(): When theGUTENBERG_E2E_SITE_EDITOR_V2environment variable is set, visit the extensible site editor (admin.php?page=site-editor-v2) instead ofsite-editor.php, translating the classic query args to the equivalent v2 route, and wait for the lazily loaded editor to finish initializing on edit routes.RequestUtils.setGutenbergExperiments()keeps thegutenberg-extensible-site-editorexperiment enabled in that mode so specs that reset experiments do not turn the v2 editor off mid-run.Enhancements
@types/nodepeer dependency to>=20, so consumers on Node 22 or 24 type definitions no longer hit a peer resolution conflict (#82616).Bug Fixes
Metrics.initWebVitals(): Resolveweb-vitalsfrom the installed dependency so published consumers can load it outside the Gutenberg moConfiguration
📅 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.
This PR has been generated by Renovate Bot.