The WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. development team builds WordPress! Follow this site for general updates, status reports, and the occasional code debate. There’s lots of ways to contribute:
Found a bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority.?Create a ticket in the bug tracker.
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This latest release comes packed with improvements and bugfixes, including an enhancementenhancementEnhancements are simple improvements to WordPress, such as the addition of a hook, a new feature, or an improvement to an existing feature. to the List View in the post editor, introducing a horizontal scrollbar for heavily nested list views, a fix for the Cover BlockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. on Safari on iPad, addressing an issue where images with a “Fixed background” were zoomed in excessively, and more!
Table of Contents
PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party-inserted blocks.
Captured toolbars.
Changelog.
Block hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same., formerly known as Auto-inserted blocks
On activation, plugins are now equipped with the capability to auto-insert blocks, enhancing the integration and automation between plugins and the Gutenberg editor. Early versions of this experiment were called Auto-inserted blocks, but after some discussion, they have now been dubbed Block hooks. (#52969, #54029, #54024, #54147)
Captured toolbars for an easier editing experience
Toolbars for child blocks are now seamlessly attached to their parent blocks, offering a more intuitive and organized editing experience. This feature is currently supported for Navigation, List, and Quote blocks. (#53699, #53697)
Other Notable Highlights:
Make mid size parameter settable for Query Pagination block. (#51216)
Add keyboard shortcut for duplicating blocks. (#53559)
Add toggle list view command in site editor. (53983)
Changelog
Features
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Popover: Update @floating-ui to latest version, remove custom fix for iframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. positioning and scaling. (46845)
AlignmentMatrixControl: Replace act() with userEvent. (53703)
ProgressBar: Add transition to determinate indicator. (53877)
Block Library
Blocks: Move bootstrapped block types to Redux state. (53807)
Router with region-based client-side navigation. (53733)
Bug Fixes
Add missing aria roles for block locking toolbar and menu buttons. (53734)
Block Editor: Fix cleanup in the ‘useNavModeExit’ hook. (53795)
Command Palette: Fix crash on block-related commands. (53923)
Date: Add relative time translations for moment.js. (53931)
Date: Update translationtranslationThe process (or result) of changing text, words, and display formatting to support another language. Also see localization, internationalization. domains for strings to be translatable. (53995)
getInsertionPoint: Fix type check for the state value. (53793)
npm Packages
Workflow: Run Learn directly from GitHubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ action when publishing to npm targeting WP core. (53762)
Workflows: Fix issues with the npm publishing workflow when using locally. (53565)
Themes
Command Palette: Proper handling of page/post links in all themes. (53718)
Fix query loopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. bugs by correctly relying on the main query and removing problematic workaround. (49904)
Block Editor
Fix: Indicator style when block moving mode. (53972)
Icons
Fix invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. namespaces. (53955)
Patterns
Disable the preview option button when editing. (53913)
Global Styles
Gallery: Re-enable block spacing at block level while still hiding in global styles. (53900)
Layout
BlockList: Ensure element styles (and svg) are always appended at the end of the document. (53859)
Interactivity API
Add “supports.interactivity” to Image block. (53850)
Style Variations
Block Styles: Fix misplaced preview popover on RTL site. (53726)
List View
Recalculate window list when expanded state changes (fix logic for long nested lists). (53716)
Widgets Editor
Block WidgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user.: Fix content cutoff in the keyboard shortcut modal. (53638)
AccessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)
Edit site: Add missing label to post status password protected input field. (52885)
[a11yAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility)] Fix: Aria-haspop, aria-expanded attributes on the link format button. (53691)
Site Editor
Add missing aria roles to the ‘Create template part’ menu item. (53754)
Unify the delete button style in the dropdown menu with red. (52597)
Block Library
Add missing aria roles to the ‘Replace template part’ menu item. (53755)
Patterns
Add missing aria roles to the ‘Create pattern’ menu item. (53739)
List View
[a11y] Fix: Aria-haspop and aria-expanded attributes on list view button. (53693)
Block Editor
[a11y] Fix: Aria-haspop and aria-expanded attributes on the inserter button. (53692)
Performance
Revert “Switch performance tests to Playwright (#52022)”. (53741)
StartPageOptions: Load and parse patterns only after establishing the need for them. (53673)
Switch performance tests to Playwright: Take 2. (53768)
Adds explanatory text to view.js template. (53870)
Clarification for parent and ancestor hierarchical relationships. (53855)
Docs: Extend the information about using render with block.json. (53973)
Docs: Remove duplicate sections from FAQ page. (53830)
Document the naming convention for block-libraryPHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher functions. (53777)
Fix ‘lerna’ links in the release documentation. (53770)
Fix typo in code sample for Interactivity API. (53916)
Edit Site: Rename CanvasSpinner to CanvasLoader. (53728)
Enforce valid function names in the packages/block-library/src//.php files. (53438)
Fonts Library: Update properties name from snake case to camel case to match the rest of the properties. (53746)
Block API
Auto-inserting blocks: Remove obsolete TODO, fix REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/. field description. (54208)
Post Editor
Editor: Fix the ‘useSelect’ warning in the ‘useIsDirty’ hook. (53759)
Fix browser console error when changing device preview mode. (53969)
Refactor latest content selectors in ‘CopyContentMenuItem’ components. (53676)
Update Jest to latest version, and use optimized JSDOM. (53736)
Plugin
BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. themes is_block_theme collection param from core. (53846)
First time contributors
The following PRs were merged by first time contributors:
@JEverhart383: Fix typo in code sample for Interactivity API. (53916)
@krokodok: Make mid size parameter settable for Query Pagination block. (51216)
@mklute101: Update local instructions on the dev env documentation. (53924)
Contributors
The following contributors merged PRs in this release:
Many thanks to @jameskoster for the release assets, @annezazu and @priethorfor the general support and help collecting highlights, and @jeffikus for the copy check!
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
This version is packed with enhancements and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, many focused on enriching the Command Palette and enabling further customization of blocks. It features contributions from 63 contributors across 219 pull requests, including five new contributors! 🥳
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg.
16.4 introduces some exciting new features, including both a new experimental feature and a new component, alongside many enhancements and bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes. Bug fix highlights include many improvements to the recently added Footnotes blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. and enhancements to Patterns.
This release consists of 184 pull requests authored by 60 contributors, including two new contributors! 🥳
Auto-Inserting Blocks (BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process.)
Activating the new “Auto-inserting blocks” feature on the Gutenberg > Experiments page enables blocks to specify a location in which they will be automatically inserted. This applies both to the frontend and to the Site Editor (via the REST APIREST APIThe REST API is an acronym for the RESTful Application Program Interface (API) that uses HTTP requests to GET, PUT, POST and DELETE data. It is how the front end of an application (think “phone app” or “website”) can communicate with the data store (think “database” or “file system”) https://developer.wordpress.org/rest-api/.), allowing for further user customization.
See an example in the video below of a “Like button” block that has been auto-inserted after each Comment Template block. You can also see how this block can be re-positioned using the existing block editor tools.
To try this new experimental feature, you can add an __experimentalAutoInsert field to the block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. file of a dynamic block of your liking. You have to specify the “anchor” block and the relative position (before, after, firstChild, or lastChild) for auto-insertion:
Note that the block will only be auto-inserted as long as the containing template or template part doesn’t have any modifications by the user. (This is by design, in order not to override a user’s choice to discard an auto-inserted block in the editor.)
This feature aims to improve the extensibility of block themes through plugins and continues to be actively developed.
For more details please see the tracking issue and the testing instructions in this PR. It would be great to hear your feedback! (#51449)
New Progress Bar Component
A new, horizontal ProgressBar component that can be used in various places. Whilst this new component has been merged with this release, it has not yet been applied in the Site Editor. It will likely replace the Spinner component that is currently used in the Site Editor loading experience. There is another PR for this work in #53032, aiming to introduce an indeterminate progress bar for the Site Editor, and further experimentation in #53399 to change it to a determinate progress bar. In the meantime, this component can be tested in Storybook. (#53030)
New Commands in the Command Palette
There are three new commands available in the command palette:
Show/hide block breadcrumbs
Enable/disable pre-publish checklist
Preview in a new tab
As well as expanding the functionality available in the new command palette, this effort starts to establish user experience patterns around commands, such as “show/hide” vs. “toggle”, and using snackbar notices more prominently. (#53073)
New Block Supports for Footnotes Block
The Footnotes block now includes support for updating the block’s link color, background color, and text color, as well as controls for typography, dimensions, and borders. The link and text color controls are expanded by default, as they will likely be used more frequently; the other new controls are collapsed by default. (#52897 & #53044)
Minimum Supported PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher Version Bumped to 7.0
The Gutenberg pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party’s minimum PHP version has been bumped from 5.6 to 7.0, to maintain parity with WordPress CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.. (#52982)
Link Control: Persist advanced settings toggle state to preferences if available. (52799)
Block Library
Behaviors: Extend Global Styles APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. to read/write behaviors config. (52370)
Enhancements
Site Editor
Add context to the “Reset template” “Delete template” and “Edit template” commands. (52989)
Add xhuge breakpoint (1920px) and update pattern grid. (52942)
Display keyboard shortcut for command palette in site view. (52841)
Make sure only one Site updated notice displays at a time. (53087)
Template Descriptions: Tidy up all abbreviations of ‘example’ to be e.g. (52848)
Try adding further details to template part panel. (52476)
Update the ConfirmDialog that appears when applying a style revision over unsaved changes. (52972)
Update: Improve titles of author templates in query title block. (52732)
Post Editor
Add common commands (breadcrumbs, live preview, pre-publish checklist). (53073)
Use hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. instead of HoCs for:
Site editor: Conditionally render global styles revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. footer in sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.. (53204)
Block Editor
Remove duplicated display URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org in LinkControl. (53167)
Synced Patterns
Remove extraneous “Detach” ToolbarButton for synced patterns. (53121)
Icons
Add keyboard icon and use in relative commands. (53083)
Plugin
Bump plugin minimum supported PHP version to 7.0. (52982)
Data Layer
Promisify action creator return type for WP data dispatch. (52530)
Bug Fixes
Block Library
AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name.: Fix global border styles generation. (53007)
Check if object exists before accessing its properties. (52870)
Image block: Fix image size at wide and full width. (53184)
Navigation Sidebar: Fetch the blocks from the content when trying to load navigations. (52899)
Navigation: Load the raw property on the navigation fallback. (52758)
Remove block tools back compatback compatBackward compatibility - a desire to ensure that plugins and themes do not break under new releases - is a driving philosophy of WordPress. While it is a commonly accepted software development practice to break compatibility in major releases, WordPress strives to avoid this at all costs. Any backward incompatible change is carefully considered by the entire core development team and announced, with affected plugins often contacted. It should be noted that external libraries, such as jQuery, do have backward incompatible changes between major releases, which is often going to be a greater concern for developers. component schedule for deprecated in 6.3. (53115)
Add id to pattern inserted notice to stop multiple notices stacking. (52746)
Allow orphaned template parts to appear in “general” categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging.. (52961)
Correctly color code unsynced patterns titles in Site Editor. (52958)
Fix auto-size patterns triggering scrollbar flickering on certain size. (52921)
Fix color and behavior of unsynced patterns in block inserter when searching for reusable. (53205)
Fix editor crashing on certain search filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. combinations. (52956)
Fix empty general template parts in Patterns. (52747)
Patterns Browse Screen: Fix back button when switching between categories. (52964)
Reset current page when search filters change. (52933)
Site Editor: Fix site link accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) issues. (52744)
Site Editor: Use the correct icon for Patterns in sidebar card. (52931)
Post Editor
Allow styles to be changed dynamically through editor settings. (52767)
Distraction Free: Fix conflictconflictA conflict occurs when a patch changes code that was modified after the patch was created. These patches are considered stale, and will require a refresh of the changes before it can be applied, or the conflicts will need to be resolved. with showListViewByDefault preference. (52914)
Editor: Set default parameter for ‘__unstableSaveForPreview’. (53079)
Fix toolbar when previewing devices in post editor. (52770)
I18Ni18nInternationalization, or the act of writing and preparing code to be fully translatable into other languages. Also see localization. Often written with a lowercase i so it is not confused with a lowercase L or the numeral 1. Often an acquired skill.: Add missing Gettext wrapper on strings in Edit Post overview sidebar. (52971)
shimAttributeSource: Don’t run outside the registerBlockType filter. (53015)
Global Styles
Global styles revisions: Display text if no revisions are found. (52865)
Spacing presets: Fix bug with select control adding undefined preset values. (53005)
Style Engine: Switch off optimize by default. (53085)
Distraction Free Keyboard Shortcut: Fix notices in Site Editor. (52867)
Layout
Prevent the Dimensions UIUIUser interface from being displayed when the block does not support Dimensions. (53092)
List View
Ensure onBlockDrop does not fire if there is no target. (52959)
Template Editor
Site Editor: Don’t navigate to the patterns in Template Parts mode. (52884)
Navigation Menus
Navigation: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch. Core changes for the navigation fallback. (52878)
REST API
Global styles revisions: Update private methods to protected. (52748)
Block API
Parser / Site Editor: Ensure autop is not run when freeform block is set to core/htmlHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.. (52716)
Accessibility
Fix regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. with Edit site Navigate regions. (52940)
Update to work with consolidated a11yAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) labels. (52896)
Use the correct label to filter Mobile app PRs. (53024)
Patterns: Reinstate template parts mode spec. (52780)
Route to published post instead of homepage on navigation end-to-end tests. (52802)
Temporarily skip widgetWidgetA WordPress Widget is a small block that performs a specific function. You can add these widgets in sidebars also known as widget-ready areas on your web page. WordPress widgets were originally created to provide a simple and easy-to-use way of giving design and structure control of the WordPress theme to the user. import end-to-end test. (53226)
Update end-to-end tests that use code editor. (52788)
Props to @joen and @richtabor for the visual assets; @bernhard-reiter, @tyxla, @priethor, @mburridge, and @matveb for peer review; @bernhard-reiter, @youknowriad, and @dmsnell for helping get the release published to WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/; and @karmatosed and @siobhyb for riding along during the release process.
Following on from this conversation, let’s look at how this process can be run more smoothly!
The Problem
Updating coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. with the latest features from the GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/pluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party almost always causes problems and delays at release time. Historically, it has been done in a large batch just before BetaBetaA pre-release of software that is given out to a large group of users to trial under real conditions. Beta versions have gone through alpha testing in-house and are generally fairly close in look, feel and function to the final product; however, design changes often occur as part of the process. 1, and the volume of changes means there is a high probability of something going wrong in the process.
A brief look through the “retrospective“ tag shows this has been a major releasemajor releaseA release, identified by the first two numbers (3.6), which is the focus of a full release cycle and feature development. WordPress uses decimaling count for major release versions, so 2.8, 2.9, 3.0, and 3.1 are sequential and comparable in scope. pain point for a while.
The idea of syncing Gutenberg code to core earlier in the release cycle has often been mentioned as a way to fix or at least ease the pain of this process: by merging new features into core as they are developed, it’s possible to fix any bugs identified during the process as they are caught, the new features get a little extra testing in trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision., and most importantly, the risk of things going wrong on the eve of major release milestones is substantially reduced, with much less stress for all involved.
So, let’s get doing this! But… why has this idea been recurrently mentioned as a good solution, and still not implemented?
The answer lies mostly in the Gutenberg development process, and its differences from the rest of core.
Iterative code
Developing features in Gutenberg often starts as a quick, messy experimental process, before stabilising into mature, tested, shippable code. And there are multiple features simultaneously in development, which means that at any given point, there is some amount of unstable code in the plugin, which is undesirable to have in core.
The good news is that there are mechanisms already available to avoid merging unstable code into core: using the IS_GUTENBERG_PLUGIN flag means that code won’t run in core. The historical __unstable and __experimental prefixes previously used in functions are being replaced with a private APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways. system that makes experimental code inaccessible to extenders.
These mechanisms are not uniformly enforced during development though, and this is where there is some room for improvement. Whereas it’s possible to measure things like code coverage, there is no good way to automate checking whether code is otherwise stable or not, so implementation is largely up to individual contributors. Here is where documentation of expectations for the development process might be useful, so folks are aware that these rules exist and why.
Package ecosystem problems
Given that core largely consumes Gutenberg code in the shape of npm packages, there are occasional hiccups due to breaking changes in dependencies that are only noticed in core. This is because the package install process pulls the latest versions of all nested dependencies that might have not yet been updated in Gutenberg. This is the sort of problem that would hugely benefit from being detected early on, so that Gutenberg code can be updated to support the breaking changes.
One thing that could help here is regenerating the package-lock file in Gutenberg and committing it back to the repo when packages are published, so that any updated dependencies can be tested as part of the plugin release process.
Fixing dependency-related breakage also needs to be prioritised, and often during the Alpha part of the cycle developers are busy building out features so it’s easy for these bugs to slip between the cracks.
One thing that could mitigate this issue is nominating the release team (or at least the editor tech part of the team) for the next release before the current release ships. The overlap would allow for handover, so the new team is aware of any pending issues that didn’t get solved during the previous cycle, and able to coordinate fixing them, or at least not be tripped up by unexpected bugs. This means there will always be someone with ownership of the process to follow up with these issues.
Release cycle timing
Another point to consider is that the core workflow of committing changes to trunk before backporting them to the release branchbranchA directory in Subversion. WordPress uses branches to store the latest development code for each major release (3.9, 4.0, etc.). Branches are then updated with code for any minor releases of that branch. Sometimes, a major version of WordPress and its minor versions are collectively referred to as a "branch", such as "the 4.0 branch"., is an impediment to updating packages in trunk with the latest changes from Gutenberg until after the stable release ships. This is because the package updates for the release during Beta/RCrelease candidateOne of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see alpha (beta). will be committed to trunk, and those package versions have only the bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes necessary for the release.
This may not be a huge problem though, as starting the sync process only after the stable release still leaves plenty of time for testing and solving any issues.
To summarise: what needs to be done in order to successfully start syncing core and Gutenberg earlier in the release cycle?
On the Gutenberg side, make sure all experimental/unstable code is made private and/or put behind a feature flag;
On the release organisation side, have some overlap between release teams so handover is easier and ownership of ongoing issues isn’t dropped.
Further suggestions, problems, feedback and ideas are very welcome!
“What’s new in GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/…” posts (labeled with the #gutenberg-new tag) are posted following every Gutenberg release on a biweekly basis, showcasing new features included in each release. As a reminder, here’s an overview of different ways to keep up with Gutenberg and the Site Editor project (formerly called Full Site Editing).
16.3 is largely a maintenance release. This means that lots of bugs have been fixed behind the scenes, though this release does see some enhancements to patterns in addition to plenty of other minor improvements. Read on to find out how working with patterns has been improved.
This release consists of 180 pull requests authored by 54 contributors, including three new contributors! 🎉
When editing template parts in the Site Editor the interface is in ‘focus mode’. However ‘focus mode’ was not previously available when working with patterns. This release enables ‘focus mode’ editing for patterns. (52427)
Sticky headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes. bar on Patterns page
Previously on the Patterns page the header bar containing the search box scrolled out of view when you scrolled down the page. Other pages, such as the Templates page, did not have this problem and the header bar remained in view while scrolling the page. Gutenberg 16.3 fixes this and the header bar now remains firmly fixed to the top of the screen when you scroll the Patterns page. (52663)
Rename, duplicate, and delete patterns
Patterns now have a drop-down menu, accessed via the three dots, that allows you to rename, duplicate, and even delete patterns easily. Performing these operations has now been made much easier than it previously was.. (52270)
Changelog
Enhancements
Site Editor
Add delay and fade-in animation to loading spinner. (51902)
Make “My patterns” categoryCategoryThe 'category' taxonomy lets you group posts / content together that share a common bond. Categories are pre-defined and broad ranging. permanently visible. (52531)
Remove “Theme patterns” heading in Pattern library. (52570)
Remove sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme. group descriptions. (52453)
Show warning on removal of Post Template blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. in the site editor. (52666)
Update navigation menuNavigation MenuA theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. title size & weight in detail panels. (52477)
Sticky header and pagination on Patterns page. (52663)
Update manage pattern links to go to site editor if available. (52403)
Separate sync status into a filterFilterFilters are one of the two types of Hooks https://codex.wordpress.org/Plugin_API/Hooks. They provide a way for functions to modify data of other functions. They are the counterpart to Actions. Unlike Actions, filters are meant to work in an isolated manner, and should never have side effects such as affecting global variables and output. control. (52303)
Components
Adding support for defined IDs in TextControl component. (52028)
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Add filter to turn off Interactivity API for a block. (52579)
Add runtime support for the wp-style directive. (52645)
Block Library
Add back old Navigation and File blocks JavaScriptJavaScriptJavaScript or JS is an object-oriented computer programming language commonly used to create interactive effects within web browsers. WordPress makes extensive use of JS for a better user experience. While PHP is executed on the server, JS executes within a user’s browser. https://www.javascript.com/. implementation when Gutenberg is not installed. (52553)
Use next40pxDefaultSize on RangeControl components. (52257)
Block Editor
Add maxLength to LinkControl search item URLs. (52523)
Make the tab labels of ColorGradientSettingsDropdown component translatable. (52669)
Add support for arrays to setImmutably util. (52280)
Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)
NUX
Restore wordpress/nux to trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (52455)
Bug Fixes
Patterns
Alternative grid layout to improve keyboard accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility). (52357)
Add handling of sync status to the wp-adminadmin(and super admin) patterns list page. (52346)
Add missing decoding entities processing in Patterns and Template/Parts pages. (52449)
Add option to set sync status when adding from wp-admin patterns list. (52352)
Avoid copying global style presets via the styles compatibility hook. (52640)
Command Palette: Update label and icon for Patterns. (52742)
Ensure that the unsaved title is not persisted when reopening the modal. (52473)
Fix bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. with Create Patterns menu not showing in site editor page editing. (52671)
Fix renaming in Site View sidebar rename saves all edits for Template Parts and Navigation Menus. (52373)
Remove synced blocks from lastBlockInserted. (52558)
Rich Text/Footnotes: Fix getRichTextValues for useInnerBlocksProps.save. (52682)
Search block: Enqueue view script through block.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML.. (52552)
Use _get_block_template_file function and set $area variable. (52708)
Cover Block: Fix block deprecation when fixed background is enabled. (51612)
Image: Use the correct method for caption class in recent deprecation. (52853)
Accessibility
Change Delete page menu item to Move to trashTrashTrash in WordPress is like the Recycle Bin on your PC or Trash in your Macintosh computer. Users with the proper permission level (administrators and editors) have the ability to delete a post, page, and/or comments. When you delete the item, it is moved to the trash folder where it will remain for 30 days.. (52641)
Change password input to type text so contents are visible. (52622)
Do not autofocus page title field in the ‘Draft a new page’ modal dialog. (52603)
Post Content link color should not be applied to placeholder component links. (52367)
Fix highlight change when using transform menu. (52752)
Fix: Apply text color selection to link color. (52379)
Components
Block Editor: Display variation icon in the ‘BlockDraggable’ component. (52502)
Copy tweak for the reusable block rename hint. (52581)
Fix reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces. https://reactjs.org/.-dropdown-menu version to avoid breaking change from one of …. (52356)
FormTokenField: Fix token overflow when moving cursor left or right. (52662)
Site Editor: Make sidebar back button go back instead of up if possible. (52456)
Top Toolbar: Move the preferences selection into the main useSelect. (52332)
Post Editor
Remove a block select button from the multi-entity saving flow. (52753)
Fix Site editor page when JSJSJavaScript, a web scripting language typically executed in the browser. Often used for advanced user interfaces and behaviors. support is disabled. (52376)
DimensionsPanel: Fix unexpected value decoding/encoding. (52661)
Global font sizes: Ensure sizes are unique. (52483)
Spacing Sizes: Fix zero size typo and to be output directly. (52711)
Themes
Fix admin_url() for preview link of block themes. (52399)
Fonts API
Deprecate and make Fonts API non-functional. (52485)
Fix font printing regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. when metaboxMetaboxA post metabox is a draggable box shown on the post editing screen. Its purpose is to allow the user to select or enter information in addition to the main post content. This information should be related to the post in some way. exists. (52343)
Extensibility
Page Content Focus: Ignore page content within a Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop. block. (52351)
Performance
Post Editor
Fix performance regression for isEditedPostEmpty selector. (52759)
Patterns
Add client side pagination to patterns list. (52538)
Site Editor
Fix entity cache misses for single posts due to string as recordKey. (52338)
Block Library
Experimental: Disable TinyMCE compat with classic editor. (52325)
Experiments
Interactivity API
Prevent scripts from loading if behaviors are not used. (52140)
Fonts API
Font Face: To generate and print font-face styles for theme.json fonts. (51770)
Documentation
Document the new process for releasing point releases for old release branches. (49968)
Update layout architecture documentation after stabilisation. (52316)
Code Quality
Block Editor
Add missing @emotion/react dep to block-editor. (52475)
Lodash: Remove remaining _.get() from block editor and deprecate. (52561)
Make use of accessing private APIs from thunks directly. (52214)
Block Library
Footnotes: BackportbackportA port is when code from one branch (or trunk) is merged into another branch or trunk. Some changes in WordPress point releases are the result of backporting code from trunk to the release branch.coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. changes to excerptExcerptAn excerpt is the description of the blog post or page that will by default show on the blog archive page, in search results (SERPs), and on social media. With an SEO plugin, the excerpt may also be in that plugin’s metabox. trim. (52709)
Navigation: Simplify the useSelect for useNavigationMenus. (51977)
Query Pagination: Set ‘clientId’ as useSelect dependency. (52358)
SiteHub: Combine site data selector hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same.. (52567)
Core Data: Fix ESLint warning for ‘useEntityProp’ hook. (52757)
Tools
Testing
IframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser.: Silence style compat warnings when in a BlockPreview. (52627)
GithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ workflow: Add a PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higher backport changes action. (52096)
First time contributors
The following PRs were merged by first time contributors:
@andrewhayward: Adding support for defined IDs in TextControl component. (52028)
@ghorivipul97: Post Content link color should not be applied to placeholder component links. (52367)
@sethrubenstein: Stabilize defaultBlock, directInsert API’s and getDirectInsertBlock selector. (52083)
Contributors
The following contributors merged PRs in this release:
Props to @jjameskoster for the visual assets, @greenshady for peer review, and @cbravobernal for helping to get the release published to WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/.
GutenbergGutenbergThe Gutenberg project is the new Editor Interface for WordPress. The editor improves the process and experience of creating new content, making writing rich content much simpler. It uses ‘blocks’ to add richness rather than shortcodes, custom HTML etc. https://wordpress.org/gutenberg/ 16.1 is now available to download.
16.1 is loaded with exciting features, bugbugA bug is an error or unexpected result. Performance improvements, code optimization, and are considered enhancements, not defects. After feature freeze, only bugs are dealt with, with regressions (adverse changes from the previous version) being the highest priority. fixes, accessibilityAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) improvements and enhancements. Patterns, whose changes are synched across your site? Check. Automated footnotes for text blocks? You got it!
This release consists of 247 pull requests, authored by 72 contributors, including three new contributors. What’s more, many of 16.1’s highlights will be included in the upcoming WordPress 6.3 release.
You can now create and sync design patterns across your entire site, and access them in the Pattern Library. (PR #51078)
“Reusable blocks” have been renamed to “Patterns”, and come with the option to synchronize.
Changes you make to a synchronized pattern will update all instances of that pattern no matter where it appears on your site.
Unsynchronized patterns, on the other hand, can be edited independently after being inserted.
All your existing Reusable blocks, custom template parts, and patterns are displayed and are searchable in the Pattern Library. They’re also available in the blockBlockBlock is the abstract term used to describe units of markup that, composed together, form the content or layout of a webpage using the WordPress editor. The idea combines concepts of what in the past may have achieved with shortcodes, custom HTML, and embed discovery into a single consistent API and user experience. inserter.
Create your site without distraction
Gutenberg 16.1 introducees a Distraction Free mode to the site editor; the same feature available for writing posts users love since Gutenberg 14.4 can now help you build your site, too. (PR #51173)
Once activated, this new mode removes all controls and menus, offering an environment for focused work while allowing you to edit a 1:1 preview of your site.
The Distraction Free setting is accessible via a keyboard shortcut Shift+Cmd+\ in Mac (Shift+Ctrl+\ in Windows) or in the top right options menu. “Calm, blue ocean” productivity is just a click away.
Text blocks: now with footnotes
Gone are the days of creating and constantly re-sorting dozens of anchor links. After a great deal of exploration and testing, automated footnote functionality comes to the Block Editor. (PR #51201)
Footnotes are available in text blocks including paragraph, heading and lists, and can be added from the block context menu.
The Footnotes block will remove and reorder your footnotes as you edit your text, which means less time managing links and lists and more time for writing.
Achieve more with the Site editor sidebarSidebarA sidebar in WordPress is referred to a widget-ready area used by WordPress themes to display information that is not a part of the main content. It is not always a vertical column on the side. It can be a horizontal rectangle below or above the content area, footer, header, or any where in the theme.
When viewing Home page templates, you’ll now see more template settings and configuration details in the sidebar. (PR #51223) Quickly access the home template’s headerHeaderThe header of your site is typically the first thing people will experience. The masthead or header art located across the top of your page is part of the look and feel of your website. It can influence a visitor’s opinion about your content and you/ your organization’s brand. It may also look different on different screen sizes., footer and other template areas and control blogblog(versus network, site) options such as posts per page and allowing comments.
When browsing a template part that contains one or more navigation menus, for example the Header template part, you will see those menus displayed in the sidebar. From here you can conveniently view and edit all the menu items featured in that template part. (PR #51492)
Furthermore, in 16.1, live theme previewing in the Site editor (introduced in 15.8) has been moved from beyond the experimental curtain, and is available for installed blocks themes under Appearance > Themes. (PR #50983)
Worthy mentions
Take control over the dimensions of Image blocks with new aspect-ratio tools. (PR #51545)
The Link Control UIUIUser interface has also seen a major revamp in this release, streamlining the editing process further. (PR #50890)
#51831 makes it easier to shuffle your Button blocks to and fro and up and down by providing direction-based arrows in the context toolbar.
Changelog
Features
Navigation MenuNavigation MenuA theme feature introduced with Version 3.0. WordPress includes an easy to use mechanism for giving various control options to get users to click from one place to another on a site. Sidebar
Page Details View: Show featured imageFeatured imageA featured image is the main image used on your blog archive page and is pulled when the post or page is shared on social media. The image can be used to display in widget areas on your site or in a summary list of posts. only if there is one. (51649)
Page Details View: Show parent only if there is one. (51648)
Site editor sidebar: Home template details. (51223)
Navigation on Browse Mode: Move the action to the leaf menu. (50843)
Remove TaxonomyTaxonomyA taxonomy is a way to group things together. In WordPress, some common taxonomies are category, link, tag, or post format. https://codex.wordpress.org/Taxonomies#Default_Taxonomies. as an option in the add template flow. (51586)
Force disable suggestions until URLURLA specific web address of a website or web page on the Internet, such as a website’s URL www.wordpress.org field is dirty in Link Control. (51354)
Top toolbar: Refine the icons on the right. (51735)
Autocomplete: Announce results to screen readers when first becoming visible. (51018)
List View: A11YAccessibilityAccessibility (commonly shortened to a11y) refers to the design of products, devices, services, or environments for people with disabilities. The concept of accessible design ensures both “direct access” (i.e. unassisted) and “indirect access” meaning compatibility with a person’s assistive technology (for example, computer screen readers). (https://en.wikipedia.org/wiki/Accessibility) focus enhancements for edit-site based on modifications to edit-post. (51404)
Add a description key to theme.jsonJSONJSON, or JavaScript Object Notation, is a minimal, readable format for structuring data. It is used primarily to transmit data between a server and web application, as an alternative to XML. style variations. (45242)
BlockLockModal: restore focus on fallback toolbar button when original button is not rendered (51666)
Site Editor Sidebar: improvements to buttons (51762)
Interactivity APIAPIAn API or Application Programming Interface is a software intermediary that allows programs to interact with each other and share data in limited, clearly defined ways.
Image block: Add animation toggle to lightbox behavior. (51357)
Global Styles
Accept transforms in gutenberg_get_global_styles context params. (50484)
Split styles menus in revisionsRevisionsThe WordPress revisions system stores a record of each saved draft or published update. The revision system allows you to see what changes were made in each revision by dragging a slider (or using the Next/Previous buttons). The display indicates what has changed in each revision. and everything else. (51318)
Clarify error message if duotone color values is incorrect. (51397)
List all the font families and font sizes from all the theme.json origins in the font picker. (51488)
Post Editor
Adjust the name of the custom fieldCustom FieldCustom Field, also referred to as post meta, is a feature in WordPress. It allows users to add additional information when writing a post, eg contributors’ names, auth. WordPress stores this information as metadata. Users can display this meta data by using template tags in their WordPress themes. button labels. (47407)
Block manager: Display a ‘Reset’ button when blocks are hidden to quickly enable all. (51200)
Fix site editor rendering of Categories block. (51329)
Gallery block – Add default value for innerBlockImages. (51443)
Latest posts: Make more link consistent between frontend and editor. (51190)
Navigation: Don’t interfere with pointer events. (51378)
Post editor: Make the Post Content block available as a child of the Query block. (51405)
Search Block: Fix problem with buttons not outputting primary status. (51529)
Try providing a non-zero value for client width in image editor. (51285)
Query LoopLoopThe Loop is PHP code used by WordPress to display posts. Using The Loop, WordPress processes each post to be displayed on the current page, and formats it according to how it matches specified criteria within The Loop tags. Any HTML or PHP code in the Loop will be processed on each post. https://codex.wordpress.org/The_Loop.: Properly initialize and update perPage when we inherit from global query. (51641)
AvatarAvatarAn avatar is an image or illustration that specifically refers to a character that represents an online user. It’s usually a square box that appears next to the user’s name. block: Fix not 1:1 between the editor and the front-end. (49963)
Spacer block: Fix invalidinvalidA resolution on the bug tracker (and generally common in software development, sometimes also notabug) that indicates the ticket is not a bug, is a support request, or is generally invalid. markup when set to fill. (51317)
Buttons Block: add support for orientation-based block movers (51831)
Rename navigation fallback classes from WP_ to Gutenberg_ (51959)
Commands
Show pages with any status in the command center. (51324)
Increase space between page metaMetaMeta is a term that refers to the inside workings of a group. For us, this is the team that works on internal WordPress sites like WordCamp Central and Make WordPress. and details section 51858
Fix missing MenuGroup segment in Site Editor header more menu 51860
Restore sidebar in focus mode on Pattern click through in Browse Mode Library 51897
Accessibility
Distraction Free: Avoid focus loss when enabling/disabling distraction free mode via the more menu. (51627)
Library: Add an explicit label to the search control. (51781)
Site editor: Add a navigable region for content area of Library and Template views. (51782)
Fix shift+tab behavior to move to toolbar when the preceding block has a form element. (51548)
Global Styles
Color Panel: Fix rendering of tabs with no color. (51498)
Remove custom padding on style revisions button. (51269)
Components
MediaPlaceholder: Fix position of URLPopover. (51363)
Popover: Allow legitimate 0 positions to update popover position. (51320)
Button: Remove unnecessary margin from dashicon. (51395)
Keep framer-motion from updating minor version 51894
ConfirmDialog: Fix affirmative action being triggered an extra time when selecting a button via keyboard 51730
Tweak more icons for high-resolution devices 51768
ZStack: fix component bounding box to match children 51836
Patterns
Library: Reinstate sidebar navigation menu editing for template parts. (51825)
Interactivity API
Image block: Remove Lightbox markup if it is set as disabled. (51692)
Block Locking
Fix regressionregressionA software bug that breaks or degrades something that previously worked. Regressions are often treated as critical bugs or blockers. Recent regressions may be given higher priorities. A "3.6 regression" would be a bug in 3.6 that worked as intended in 3.5. in selectors. (51541)
Typography
Fluid typography: Custom font-sizes should use max viewport width. (51516)
Fix grammar in the Create a Block > WordPress PluginPluginA plugin is a piece of software containing a group of functions that can be added to a WordPress website. They can extend functionality or add new features to your WordPress websites. WordPress plugins are written in the PHP programming language and integrate seamlessly with WordPress. These can be free in the WordPress.org Plugin Directory https://wordpress.org/plugins/ or can be cost-based plugin from a third-party page. (51663)
Fix grammar on the Create a Block tutorial page. (51662)
Fix flaky ‘Keep styles on block transforms’ end-to-end test. (51593)
Fix flaky ‘Push to Global Styles’ end-to-end test. (51636)
Fix flaky ‘Switch to Draft’ action in preview end-to-end tests. (51564)
Fix flaky ‘hooksHooksIn WordPress theme and development, hooks are functions that can be applied to an action or a Filter in WordPress. Actions are functions performed when a certain event occurs in WordPress. Filters allow you to modify certain functions. Arguments used to hook both filters and actions look the same. API’ end-to-end test. (51592)
Update E2E test sharding on CI, make Playwright tests faster, Puppeteer tests slower. (50362)
Update the ‘IframeiframeiFrame is an acronym for an inline frame. An iFrame is used inside a webpage to load another HTML document and render it. This HTML document may also contain JavaScript and/or CSS which is loaded at the time when iframe tag is parsed by the user’s browser. block’ test and fix flakiness. (51631)
Migrate Navigable toolbar test to Playwright. (51514)
Mobile unit tests: Remove custom waitFor implementation. (46735)
Set fixedToolbar to false after each top toolbar test to ensure proper cleanup. (51600)
Fix performance test failure on trunktrunkA directory in Subversion containing the latest development code in preparation for the next major release cycle. If you are running "trunk", then you are on the latest revision.. (51407)
Performance tests: Make theme versions consistent cross-env. (50905)
Performance tests: Update base point to compare. (51381)
Build Tooling
Babel config: Enable useSpread option for JSX transform to reduce transpilation. (51574)
Lodash: Remove from lint staged type check. (51698)
Performance Tests: Update the base point to compare against. (51689)
wp-env: Try to fix failing PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 5.6.20 or higherGithubGitHubGitHub is a website that offers online implementation of git repositories that can easily be shared, copied and modified by other developers. Public repositories are free to host, private repositories require a paid subscription. GitHub introduced the concept of the ‘pull request’ where code changes done in branches by contributors can be reviewed and discussed before being merged be the repository owner. https://github.com/ actions. (51513)
npm lockfile: Hoist reakit and date-fns packages to the top. (51500)
Plugin
Add script to compile usage of experimental APIs. (51341)
Remove Details block setting field from the experiments page. (51372)
Contributors
First time contributors merged the following PRs for 16.1 🎉:
Mega props to @jameskoster and @joen for the visual assets, @priethor for peer review, and @isabel_brison for helping get the release published to WordPress.orgWordPress.orgThe community site where WordPress code is created and shared by the users. This is where you can download the source code for WordPress core, plugins and themes as well as the central location for community conversations and organization. https://wordpress.org/.
Thank you to everyone who was involved. And to those reading this post 😀