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.
WordPress 7.1 is set to be released on August 19th, 2026. This release advances how people work together in WordPress and opens up new functionality for all to benefit from. New Notes features, including suggestion mode and emoji reactions, make asynchronous feedback richer and more interactive. Meanwhile, real-time collaboration remains an exciting focus area with a few strategic decisions remaining to shape exactly how it’ll show up in the WordPress experience. New options for responsive styling and pseudo-state styling, two longstanding areas of feedback, expand what you can do directly in the Site Editor without needing to use CSSCSSCascading Style Sheets.. A new Guidelines feature adds a persistent, structured way to encode editorial rules into WordPress, helping you keep your voice and preferences when collaborating with AI. Several new options make it easier to find your way around: see when a 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. inherits its styling from a global setting, set key details about your site in a new Identity section in the Site Editor, find what you need faster with recently used commands and suggestions shown in the command palette, and enjoy the familiarity of the adminadmin(and super admin) bar inside any of the editors. The experience of uploading and using media gets numerous updates, including a new free-form image cropper to get your images just right and client-side media improvements that support more image formats and add resiliency throughout. For those building on top of WordPress, numerous APIs are slated for more features and fixes. Expanded Unicode support is in the works so email addresses, usernames, and slugs can better reflect WordPress’ global audience. Finally, to round out the release are a slew of smaller yet important delights like a new “On This Day” dashboard 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., new blocks, and various writing flow improvements.
As always, what’s shared here is being actively pursued, but doesn’t necessarily mean each will make it into the final release of WordPress 7.1.
For those who want to be involved in the release in a different, more hands on way, there’s a new dedicated outreach effort for WordPress 7.1 to ensure collaborative editing gets the collaborative testing it needs. Learn more here.
AI
AI Client iteration
The AI Client is the foundational piece for running AI programmatically inside WordPress, and for 7.1 the focus stays on empowering 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. authors. Two notable capabilitiescapabilityA capability is permission to perform one or more types of task. Checking if a user has a capability is performed by the current_user_can function. Each user of a WordPress site might have some permissions but not others, depending on their role. For example, users who have the Author role usually have permission to edit their own posts (the “edit_posts” capability), but not permission to edit other users’ posts (the “edit_others_posts” capability). are planned: generation streaming, introduced first in the PHP AI Client as an initial effort to unlock full usage in a future release, and embeddings, which represent content as vectors to enable meaning-based search across a site. These arrive alongside minor fixes that keep improving the reliability of the AI Client.
After landing a new framework for registering and managing connections to external services in 7.0, work is underway for connectors to gain more ways to authenticate beyond 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. keys. The plan is to start simple with adding username/application password support similar to the existing API key flow and then explore more general, declaratively-defined connection forms (URLs, a default-models dropdown, and more) in PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher, advancing the DataForm API in the process.
After shipping early as an experiment 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/ to gather feedback, a new Guidelines feature lets you define writing and content guidelines that tie into AI tooling, with the ability to import/export guidelines between sites. This brings a persistent, structured system for encoding editorial rules, brand voice, and content standards directly into WordPress for humans and AI alike. As more collaboration happens directly in WordPress, this brings consistency and personalization to that collaboration.
The command palette now groups results into clear sections for recent, suggested, and matching commands. The recently used list is saved to your preferences so they persist across sessions. The design was also updated to make the list of resulting commands easier to scan and understand.
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. and overall shell now follow the set WordPress admin color scheme instead of always using a fixed dark background. This ensures broader consistency across all parts of the WordPress experience when personalizing the admin with a color scheme of your choosing.
Work is underway to migrate DataViews onto the new Design System primitives for a more consistent look and feel, and to consolidate Quick Edit with the editor inspector so editing a post’s details feels the same wherever you do it. The DataForm API itself is growing more capable, including support for disabling individual controls. The Site Editor’s Pages, Templates, and Patterns screens are also becoming more extensibleExtensibleThis is the ability to add additional functionality to the code. Plugins extend the WordPress core software., with a new server-side REST endpoint that lets plugin authors register their own view and form configuration.
A dedicated Design → Identity screen brings the essentials of your site’s identity into one place, with an inline media editor for your logo and favicon and quick editing of your site title and tagline. The aim is to make these foundational settings simple to find and easy to update without digging into templates or needing to go searching in Settings.
Work continues on the shared component library in wordpress/ui and the underlying theming system that powers it. A highlight of this cycle is graduating ThemeProvider from experimental to a stable, public API, alongside finalizing the public token names (background, foreground, and stroke renames), and adding new theme-customization tokens for corner radius and element sizing. In parallel, key parts of the editor UIUIUser interface begin adopting improved components, with flyout menus extending to transforms, style variations, and the block ellipsis and transform menus.
The dashboard is getting a new “On This Day” widget that resurfaces past content, a popular feature across many different platforms. Get motivated by looking back on what you’ve written and write more content today for future reminders.
Followthis pull request introducing the “On This Day” widget for more information.
Persistent admin bar across editors (aka omnibar)
The admin bar is getting some nice polish ahead of being easily accessible in the Site Editor and Block Editor. Having landed as an experiment in Gutenberg first, this work brings the toolbar into the editing experience so the admin bar is with you wherever you are. The design update removes the “Howdy” greeting, replaces the home icon with the site icon, makes the profile 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. a circle rather than a square, and updates the legacy Dashicons icon font with wordpress/icons SVGs throughout the admin bar.
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. iterations
After landing visual revisions in 7.0, this release focuses on making them even easier to read and navigate between. Planned improvements include a spark line view in the scrubbing toolbar to better visualize the history of changes, persistent URLs to allow sharing a link to a particular revision, and more.
The Abilities API gives developers and AI tooling a structured, queryable way to expose what a WordPress site can do. This cycle advances querying and filtering of abilities and implements a curated set of coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. abilities (including site settings, current-user info management, and general site awareness).
The post editor has been moving toward always running inside an 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., which isolates the editing canvas from the admin’s styles and lets viewport-relative units and media queries work against the canvas instead of the browser window. Today the editor still drops back to a non-iframed mode whenever a block using Block API version 2 or lower is present. To make the rollout gradual, the current plan is to enforce iframing for block-based themes in this release, then extend it to all themes in a future release. In both cases, blocks need to be on Block API version 3 to work in the iframed editor, and a migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. guide is available to help extenders get there.
Extended Unicode support in email addresses, usernames, and slugs
This release is looking to broaden Unicode support so email addresses, usernames, and slugs better reflect WordPress’ global audience. This work centers around allowing storing Unicode email addresses (Core-31992) so functions like is_email(), sanitize_email() and antispambot() can be extended to support non-ASCII addresses.
ReactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org 19 Upgrade
WordPress is upgrading from React 18 to React 19. This update will first be merged into the Gutenberg plugin ahead of an eventual pathway to Core. In this upgrade, there are several new APIs, major updates to TypeScript types, changed behaviors and more. Plugin and theme developers, please help test and review what’s coming as early and as much as possible. To help with testing, install and activate the latest version of Gutenberg, head to the experiments page, and turn on the “React 19” experiment.
After WordPress 7.0 introduced the foundations of the SVG Icon API (the icon registry, a REST endpoint, and the core Icon block), 7.1’s iteration centers on opening the API up to third parties with new public functions like register_icon() and unregister_icon(), core-icons theme support, SVG sanitization and namespace validation, and collection support (similar to the Font Library) so agencies and product makers can ship their own branded icon sets. The work also explores a reusable icon picker modal for any block, Icon block enhancements like flip and rotate, and making the hardcoded icons in blocks such as Navigation, Breadcrumbs, and Details selectable through the Icon API. Alongside the API work, the core icon set itself is getting a visual refresh, with prominent icons redrawn as stroke-based designs for a more consistent, modern look.
Deprecating the Classic block As a first step towards making the Classic block and TinyMCE opt-in, the Classic block is planned for deprecation in 7.1, and will no longer appear in the block inserter. The related work improves migration and conversion paths and prepares the next step for making the Classic block and TinyMCE opt-in, so sites that don’t rely on the classic experience would get a lighter, faster editor.
Every new block added to Core means new possibilities for all, without needing to rely on third party blocks. 7.1 has a few new Core blocks slated for inclusion:
Playlist block, with additional waveform audio visualization.
Table of Contents block, automatically generating navigable links to the headings in your content.
New block support for the HTML block, making it possible to have editable blocks inside of a custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. block. This is especially useful with AI generated sites, since LLMs often create custom HTML.
“Mark as decorative” toggle for the Image block to hide decorative images from screen readers for an improved experience.
An shortcode transform was added to the Embed block, so converting or pasting shortcodes now creates a proper Embed block instead of leaving raw shortcodeShortcodeA shortcode is a placeholder used within a WordPress post, page, or widget to insert a form or function generated by a plugin in a specific location on your site. text behind.
The Group block added support for background gradients through a new background.gradient block support, allowing gradients and background images to work together without conflicts. While limited to the Group block for now, block authors can adopt this new support using a simple register block type 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. before it comes to more Core blocks.
This is a great area to contribute to the release. If interested, please help with the Dialog block for transcripts and conversations and the Marquee block for scrolling, animated content as these both are on the list of blocks to add but don’t have a champion.
Writing flow and drag-and-drop improvements
To ensure writing and arranging content continues to get smoother, a dedicated focus is on chipping away at everyday pain points in the writing experience. This includes a wide range of focuses from improving drag and drop to ensuring multi-selection works on touch devices.
Notes have a range of planned improvements that include notes on specific content within a block and across multiple blocks, rich text in notes, notifications for replies and follows, emoji reactions, a minified notes experience, and an “apply suggestions” feature. All of these help provide a richer, more interactive experience of collaborating with others directly in the editor.
Imagine a world with no post lock screen and with collaborators of all kinds (human and AI) working together to share content with the world through WordPress. After a monumental effort ahead of the last release, real-time collaboration marches ahead with that vision in mind and with big, open strategy questions around:
These decisions, along with the readiness of the feature, are the key aspects to get right for all of WordPress and to align with project leadership on. They impact who gets access to the feature and what the experience will be like. To help aid the decision making and reliability of the feature, there’s a new dedicated outreach effort for WordPress 7.1 to ensure collaborative editing gets the collaborative testing it needs. Please consider getting involved and learn more here.
When you’re styling a block, it isn’t always clear which styles are coming from the theme, a parent, or global styles. This work explores surfacing inherited styles clearly in the sidebar so you can understand where a block’s styles are coming from and edit at the right layer of styling, whether that’s a global or local change.
A standardized way to style interactive states is taking shape. Support for pseudo-state styling such as hover, focus, and active has landed for both Global Styles and individual block instances, building on the broader “states” effort. Further work, including custom states like styling the current menu item, continues beyond 7.1. All of this work means you can begin to style how blocks respond to interaction, like buttons changing color on hover, all without writing a line of CSS.
With WordPress 7.0, the experience of using patterns shifted to be more like editing a single block with a focus on content changes than exposing every tool available for every block in a pattern. For this cycle, work will focus on UXUXUser experience improvements based on feedback around this change, 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, and general maintenance.
Responsive styling for blocks has been a long requested feature and 7.1 aims to be a big step towards more support. Building on the same style states mechanism that powers the interactive states styling for blocks, this work lets you define how a block looks at different screen sizes. This means you can apply responsive styles, like a font size at a certain viewport, directly in the editor without writing custom CSS. The feature will be available both for global styles that apply across every instance of a block, and for individual block instances. The aim is to make responsive design a built-in, first-class part of the editing experience.
After adding the ability to hide or show blocks based on viewport, theme-configurable breakpoints defined in 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. are being added to provide more flexible, customizable responsive styling.
After being punted from 7.0, client-side media processing keeps getting more capable and resilient ahead of this release. The work spans HEIC image support, Ultra HDR support, GIF-to-video conversion, more resilient uploads that retry on failure and resume after a crash or going offline, video transcoding to web-safe formats, optimization of previously uploaded media, and local poster generation during video upload so pages can render before a video finishes loading.
The Media editor modal replaces the existing inline cropping tool in the Block Editor. The modal keeps the familiar Crop button as the entry point, and brings freeform and aspect-ratio cropping, flip, fine-grained and snap rotation, and metadata editing into one dedicated workflow.
Galleries are becoming more dynamic and easier to build, with better handling of the legacy gallery shortcode on conversion, dynamic galleries that can sort or pull media attached to a post, and a quicker path in the inserter’s media tab to images attached to the current post with thumbnails shown directly.
The core performance change planned for 7.1 is an update to speculative loading: when both object caching and page caching are detected, the default eagerness would move from conservative to moderate, prefetching and prerendering more readily on sites equipped to handle it so navigation feels faster.
Two further efforts are being iterated on within feature plugins you can install and benefit from today. Work in the View Transitions plugin centers around bringing smooth, animated transitions between pages on the front end. Work in the Enhanced Responsive Images plugin computes more accurate sizes values in block themes so browsers download appropriately sized images. Both are in active development, and interested contributors are welcome to help move them forward.
If you have something you’re working on that you don’t see reflected in this post, please share a comment below so we can all be aware! If you’re reading this and want to help, start with the above items and/or pingPingThe act of sending a very small amount of data to an end point. Ping is used in computer science to illicit a response from a target server to test it’s connection. Ping is also a term used by Slack users to @ someone or send them a direct message (DM). Users might say something along the lines of “Ping me when the meeting starts.” me (@annezazu) in the 7.1 release leads channel. I have a list of projects that were punted from this release that I’m happy to talk to people about taking on.
Recent dev notesdev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.:
“I’d like to also propose a new policy: disclosure of use of AI in posts and announcements. It can just be a quick sentence at the bottom of the page saying AI tools were used in the creation of this article or something to that affect.”
@westonruter also proposed to apply such a policy to Slack comments, and @desrosj also has some draft for this topic for posts and comments.
@amykamala shared that a draft is being worked on here or here. The coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress.-ai update draft could use some feedback. It’s based on Jonathan’s comments and the comments in the thread. The post comment guidelines draft doesn’t have changes to review yet but folks are welcome to work on it.
@audrasjb advised to use a new section for this topic in the Core Handbook.
Dev Chat scheduling during 7.1 cycle
With all the coming release parties scheduled on Wednesday, it looks like we need to move the meeting to another time slot.
@amykamala and @audrasjb suggest to switch the devchat time slot to 15:00 on Thursdays, starting the week of 7.1 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.
@jorbin noted that it will conflict with the monthly Developer Blogblog(versus network, site) Editorial Group meeting, the bi-weekly 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) team meetings and a weekly core-test meeting. Which is not a blockerblockerA bug which is so severe that it blocks a release., but worth taking this into account. He also noted that Tuesdays are more open but this day is not the best for Amy and JB.
@joedolson noted that the Accessibility team moved its meeting for the 7.0 schedule, which was also on Thursdays, and they could do that again.
@amykamala and @audrasjb will come up next week with one or two proposals so a decision can be made.
The concern raised in this thread is especially about the array elements alignment rule.
The attendees agreed that while 90% of the time, alignment is prefered, there are some cases where it makes things worse.
From @joedolson: “It seems to me like the primary point of @dmsnell‘s thread was about misaligned standards between 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/ and Core, but he seemed to walk that assertion back in the thread? Is there a real issue here? If the standards aren’t aligned, one of them needs to change”
“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 Editor.
This release adds cropping controls to the Media editor, brings it to 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., and extends responsive style states with aspect-ratio, flex-alignment, and text-shadow controls. Other changes include a minimum WordPress version bump to 6.9, Icon block transforms, and real-time collaboration improvements.
The experimental Media editor gains several cropping improvements: a magnified crop canvas for fine adjustments (79044), crop handles that snap to source pixels (79139), and fixed keyboard resizing for locked aspect-ratio crops (79207). The Cover block now supports the Media editor modal, bringing inline cropping to cover images. (79258)
Unified Device Preview and Resizable Editor
You can now drag the editor canvas to any width, instead of being limited to the Desktop, Tablet, and Mobile presets. The device preview dropdown and the resize handles work together, so you can jump to a preset viewport or fine-tune to an exact width in between. Blocks set to show only on specific viewports respond as you resize, appearing and disappearing at their breakpoints. The preview dropdown also now holds a toggle for responsive editing, making it the central place to both preview your content across screen sizes and make viewport-specific adjustments. (75121)
Other Notable Highlights
Minimum WordPress version. 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. now requires WordPress 6.9 or later (79196).
Global Styles adds text shadows. A new textShadow style adds support for configuring text shadows in Global Styles. (73320)
Icon block. Adds flip and rotate controls (77017) and inserts a default icon instead of an empty placeholder (79111).
Real-time Collaboration. Can now be disabled per post type (78984), and the code-editor cursor no longer jumps to the end on remote sync (79005).
ThemeProvider available as a public export. ThemeProvider is now exported directly from @wordpress/theme. (78664)
Changelog
Enhancements
Style Engine: Export public TypeScript types. (79079)
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. Primitives: Decouple discovery from a hardcoded endpoint. (79322)
Widget Primitives: Make @types/react an optional peer dependency. (79272)
Components
Add corner radius presets to ThemeProvider. (78816)
Autocomplete: Add Group and GroupLabel primitives. (78901)
Base Styles: Add wpds-var Sass helper for design token fallbacks. (78698)
UI: Use isomorphic layout effects for SSR. (79458)
Update @ariakit/reactReactReact is a JavaScript library that makes it easy to reason about, construct, and maintain stateless and stateful user interfaces.
https://reactjs.org to 0.4.29. (79055)
[DataViewsPicker]: DataViewsPicker.BulkActionToolbar now renders only the bulk-selection info and action buttons. (79180)
theme: Rename bg/fg design token groups to background/foreground. (79098)
Block Library
Add support for aspect ratio and related controls in viewport states. (78795)
Audio: Apply inert directly instead of wrapping in Disabled. (79423)
Classic Block: Port PHPUnit coverage for hiding it from the inserter. (79434)
File Block: Combine audio/video/image to file transforms. (79242)
File Block: Replace on-mount downloadButtonText effect with a default variation. (79236)
Icon Block: Add flip and rotate transformation controls. (77017)
Icon block: Default to coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress./info via 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. instead of an insert-time effect. (79212)
Icon block: Move flip controls to toolbar group. (79192)
Rename Toolbar in editor experiment to match iteration issue. (79074)
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. screen with picker-activity layout. (77333)
Style states: Use symbols for property keys to avoid clashes. (79210)
Integrate Resizable Editor with Device Preview and add Responsive editing. (75121)
Site Editor
Add xl border radius token for page shell surfaces. (78913)
Correct behaviour of flex child fixed width and introduce max width option. (79073)
Global Styles: Add textShadow style support. (73320)
List View block support: Hide list tab when allowedBlocks is empty, with no children. (78932)
Pattern editing: Show root block identity when editing pattern sections. (79417)
Media
Media Editor Modal: Add a loading and simple error state. (79101)
Media Editor: Magnify the crop to fill the canvas. (79044)
Media Fields: Ensure the current post is always included in the initial options. (79467)
Media editor: Snap crop handles to source pixels. (79139)
Data Layer
RTC: Allow disabling collaboration by post type. (78984)
TextControl: Hard deprecate 40px default size. (79386)
View Config: Request a subset of properties with the _fields parameter. (79355)
Client Side Media
Media: Rename HEIC companion metadata key to source_image. (79307)
Upload Media: Add error 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., localized messages, and dev diagnostics. (74917)
Vips: Inline WASM with compact UTF-8 binary encoding instead of base64. (79188)
Dashboard
Boot: Run page init modules in initSinglePage. (79394)
Widget Dashboard: Extract into wordpress/widget-dashboard. (79268)
npm Packages
Grid: Prepare wordpress/grid for npm publishing as experimental 0.1.0. (79071)
Widget Primitives: Extract into wordpress/widget-primitives. (79134)
DataViews
View configuration 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. and REST Endpoint: Make them core ready. (79347)
Plugin
Bump minimum required WordPress version to 6.9. (79196)
Global Styles
Global styles revisions: Replace active text with badge. (79137)
DataFormPostSummary: Fix different useSelect returned values. (79478)
Editor: Disable saving while a non-post entity is being saved. (79069)
Editor: Guard PostViewLink against post types without a labels object. (79160)
Mark all controlled/mode block changes non-persistent. (79350)
Paste: move spaces out of inline formatting elements. (79637)
RTC: Fix code editor cursor jumping to the end on remote sync. (79005)
Revisions: Ignore empty []/{} 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. values in the Meta diff panel. (79185)
Style Book: Fix crash when previewing variations for blocks without examples. (79131)
Block Library
Avoid dirtying related navigation entities during passive render. (79000)
Custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.: Fix scrollbar becoming non-functional after switching tabs. (78571)
Gallery: Hide Navigation button type when lightbox editing is disabled. (79147)
Image block: Remove duplicate data-wp-bind–srcset in the lightbox overlay. (79202)
Image: Fix pasted images stretching when dimensions are preserved. (79067)
Navigation block: Fix responsive style states for typography settings. (79072)
Components
BoxControl: Respect a supplied placeholder via inputProps. (79466)
DataForm panel layout: Fix double-clicking a field row leaving the flyout stuck open. (79348)
DataForm: Fix panel field control overflow clipping and remove button overrides. (79275)
Fix: Custom HTML block preview keeps expanding when 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. uses height:100vh. (78677)
Block Editor
Fix potential crash from ‘useBlockToolbarPopoverProps’. (79178)
Fix: State styles – clear background-image when hover sets a solid background-color. (78992)
Grid overlays: Use canvas iframe window for viewport visibility detection. (79255)
RichText: Fix duplicated format wrappers when typing inside an applied format. (79091)
Template Part: Remove restriction on tabs / inspector fills. (79181)
Fix duplicate enqueue breaking the palette in the Site Editor. (79396)
Client Side Media
Vips: Bump wasm-vips to 0.0.18 for high-bit-depth AVIF decoding. (79179)
Icons
KSES: Allow SVG-specific presentation attributes in safe_style_css. (79172)
Style States
Fix responsive element styles front end output. (79135)
Data Layer
Core Data: Cleanup edits matching persisted record on undo/redo. (77100)
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)
Media
Media Fields: Avoid focus loss when detaching the current parent. (79468)
Dashboard
Revert H1 to “Dashboard” and fix heading hierarchy. (79251)
Components
UI Button: Fix loading state in forced colors. (78820)
Performance
Blocks: Migrate Markdown converter from showdown to marked. (77953)
Post Editor
Use the correct directory for recent preload improvements. (79359)
Experiments
Post Editor
Editor Inspector with DataForm – remove revision panel and add link. (79195)
al: Expand Editor Inspector: Use DataForm experiment to template parts. (79399)
Experimental: Expand Editor Inspector: Use DataForm experiment to templates. (76934)
Experimental: Preserve editor panel visibility in the DataForm post summary. (79441)
Site Editor
Omnipresent Toolbar: Increase top padding 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. nav title. (79083)
Block Library
Unwrap Classic block migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. notice experiment. (78165)
Documentation
Clarify Core-specific steps when bumping support. (79416)
ConfirmDialog: Document AlertDialog as successor in Storybook. (79293)
Fix Small Typo in block-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. file. (79367)
Panel: Recommend CollapsibleCard for use outside the block inspector. (78863)
Storybook: Reorganize design system introduction for first touch-point usefulness. (79360)
Theme: Add tests for ThemeProvider and useThemeProviderStyles. (79126)
Theme: Drop –wpds-dimension-base from the public token surface. (79254)
Theme: Rename –wpds-color-stroke-focus-brand token to –wpds-color-stroke-focus. (79125)
Theme: Run stylelint plugin tests via the Node API. (79199)
Post Editor
Edit Post: Refactor MetaBoxesSection to use data 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.. (79433)
Edit Post: Refactor and cleanup InitPatternModal component. (79190)
Editor: Migrate FlatTermSelector to UI Stack component. (78659)
Editor: Refactor AutosaveMonitor to a function component. (79043)
Fields: Move author fields for templates and template parts. (79395)
Validation: Add a published-dependency audit script. (79094)
Block Library
Blocks: Use positional sprintf placeholders in 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., comment, and search renderers. (79290)
Image block: Simplify metadata syncing logic by removing chained get entity calls. (79469)
Math format: Simplify the onClick handler and use canonical selected-text capture. (79081)
Navigation: Use block context to determine whether Page List is nested in Submenu. (79048)
Automated Testing: Use static value for IS_GUTENBERG_PLUGIN env setup. (79201)
CI: Run PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher unit tests on PHP 8.4 and 8.5. (79260)
Components: Improve Menu unit tests performance by removing sleeps. (79295)
E2E: Support WordPress installs served from a subdirectory. (79166)
Ignore markdown linting for 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.-changelog MD files. (79392)
devops: Dedicated histories for different node.js versions. (79473)
devops: Separate environments for jest date tests. (79453)
wp-build: Resolve wordpress/build from __dirname in resolve-miss test. (79208)
Build Tooling
Build: Add GUTENBERG_CHECK_INSTALLED_DEPS env var to opt out of installed-deps check. (79068)
Build: Use GUTENBERG_TOKEN when creating the release draft. (79747)
Configure Flakiness.io reporting for end-to-end tests. (79173)
Handle WP.org SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. missing tagtagA directory in Subversion. WordPress uses tags to store a single snapshot of a version (3.6, 3.6.1, etc.), the common convention of tags in version control systems. (Not to be confused with post tags.) warnings. (79257)
Remove Lighthouse patchpatchA special text file that describes changes to code, by identifying the files and lines which are added, removed, and altered. It may also be referred to as a diff. A patch can be applied to a codebase for testing.. (79319)
Remove unused build:Profile-types and component-usage-stats scripts. (79113)
Storybook: Include playground stories and MDX in CI smoke tests. (79454)
design-system-mcp: Remove Storybook dependency in TypeScript types. (79132)
devops: Configure end-to-end report auto-upload for flakiness.io dashboard. (79411)
devops: Upload unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. results to flakiness dashboard. (79414)
Data Layer
Backport changelog and package version updates from wp/latest. (79234)
Block Editor
Block Supports: Relocate text and bg color controls to Typography and Background panels. (77279)
Security
Dependabot: Add npm entry so security update PRs can be rebased. (79076)
Various
View configuration endpoint: Bring back changes from core. (79438)
WordPress 7.0.1 Release Candidaterelease 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). 1 (RC1) is available for testing! Some ways you can help test this minor releaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality.:
Use the WordPress Beta TesterpluginPluginA 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.
As this is a minor 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). release, select the Point ReleaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. channel and the Nightlies stream. This is the latest build including the RC and potentially any subsequent commits 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..
Use WP-CLI to test: wp core update https://wordpress.org/wordpress-7.0.1-RC1.zip
WordPress 7.0.1 is intended as 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.-fix only maintenance release. Tickets will be included provided they are issues introduced during the 7.0 cycle or intentionally deferred at the end of the 7.0 cycle. You can follow trac report 4 or the 7.0.x editor tasks board for proposed fixes.
#64742 – PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher 8.5: Incorrect array access in `wp_get_attachment_image_src`
#64937 – Image editor: scale and crop input size mismatch with button and info icon not using new color
#64999 – Adminadmin(and super admin) reskin: Form elements are not standardized in the mobile viewport.
#65122 – 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 in Visual History
#65224 – Add support for testing unmerged changes from 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/
#65275 – Media Library CSS Bug: Loading spinner misaligned in media modal 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. toolbar
#65286 – major publishing action buttons are crowded in the Publish settings
#65296 – Library section under Media, search bar shifts position after searching in the WordPress admin area.
#65310 – Emoji detection script not being printed in admin
#65336 – global-styles-inline-css cannot be removed since 7.0
#65352 – networknetwork(versus site, blog) credit.php 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. logo for WordPress 7.0 showing broken
#65389 – 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. Visibility: Keep hide-everywhere working after a block opts out of visibility support
#65418 – Previously copied files since deleted from the Gutenberg asset are persisting unexpectedly
#65428 – Scale button not aligned to dimensions on edit image screen.
The following Gutenberg PR are included:
#77530 – Visual 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.: Accessibility
#78393 – Revisions: Use CSS outline as secondary non-color indicator for diff blocks.
#78426 – Image: Fix missing aria-label on lightbox trigger button for single images.
#78484 – Navigation: Restore block_core_navigation_submenu_render_submenu_icon() as deprecated shim.
#78493 – wp-build: Fix black flash on wp-admin pages before hydration.
#78547 – Guard PHP unit testunit testCode written to test a small piece of code or functionality within a larger application. Everything from themes to WordPress core have a series of unit tests. Also see regression. to avoid failures on old wp versions.
#78571 – Custom HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers.: Fix scrollbar becoming non-functional after switching tabs.
#79000 – Avoid dirtying related navigation entities during passive render.
#79048 – Navigation: Use block context to determine whether Page List is nested in Submenu.
#79350 – Mark all controlled/mode block changes non-persistent.
#79691 – Editor: Move focus to revisions slider when entering revisions mode.
What’s next?
Reminder: the dev-reviewed workflow (double committer sign-off) is required when making changes to the 7.0 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"..
The final release is expected on Thursday, July 9, 2026. This date is subject to change if any issues with RC1 are discovered. Coordination will happen in the 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/SlackSlackSlack is a Collaborative Group Chat Platform https://slack.com/. The WordPress community has its own Slack Channel at https://make.wordpress.org/chat/#7-0-release-leads channel, and releases are always packaged and tested in #core.
A special thanks to everyone who reported issues, helped test, and helped create patches. The success of 7.0.1 depends on proper testing, so please lend a helping hand.
The live meeting will focus on the discussion for upcoming releases, and have an open floor section.
The various curated agenda sections below refer to additional items. If you have ticketticketCreated for both bug reports and feature development on the bug tracker. requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.
Recent dev notesdev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase.:
The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion.
Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.
Please include details of tickets / PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.
The full chat log is available beginning here on Slack.
WordPress Performance TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress. tickets
@westonruter shared the current performance-focused Trac report and noted that there looks to be nothing for 7.0.1.
@westonruter shared that the tickets in the “Awaiting Review” queue need 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. scrub and suggested that one could be held the following week.
Performance Lab 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. (and other performance plugins)
@westonruter shared that the plugin releases the team had wanted to do a couple of weeks earlier should be completed.
@westonruter shared that if PR #2540 can be finalized, it could be included in the release.
@nickchomey shared that @westonruter had reviewed a recent PR and plans to look at and address the feedback later that day.
During the 7.0 release cycle, the way code maintained in 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/ repository is imported into the wordpress-develop repository changed from using published npm packages to downloading a zip file of built assets published to the 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 by the repository owner. https://github.com/ Container Registry by the build-plugin-zip.yml workflow file in Gutenberg (see #64393, Gutenberg-75844).
There were two bugs preventing wordpress-develop from being updated with the latest changes (Gutenberg-76715 and #65418). These have been fixed and after [62577-62578,62580-62584], trunk is now in sync with the most recent gutenberg release (currently 23.4.0).
To set expectations and establish some consistency going forward, this post outlines the process for syncing the two repositories going forward, and how to perform the syncing process.
Syncing Practices
The following sections aim to define when and how to sync changes from the gutenberg repository into the wordpress-develop repository.
Cadence During Alpha Periods
For the 7.1 release cycle, syncing will happen one week after each general release of Gutenberg. This ensures that trunk is reasonably up to date with the latest changes, but still allows some time for any follow-up 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 that are required. The goal is to eventually sync weekly, or even daily.
Syncing During The Release Cycle 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./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). Phase
Once the Beta 1 point is reached for a release, the SHA value pinned to gutenberg.sha in package.json for trunk will be updated to one belonging to the release’s corresponding wp/X.YbranchbranchA 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". in the Gutenberg repository when the next syncing occurs. trunk will remain pinned to a wp/X.Y branch hash value until branching occurs. This prevents new feature work not intended for the upcoming WordPress release from leaking into the SVNSVNSubversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase. code base.
Because individual changes targeted for an upcoming WordPress release are cherry-picked into each wp/X.Y branch, syncing can happen as often as necessary. However, the most recent changes must be synced prior to each beta and RC release.
Branching in WordPress SVN
After branching is performed in WordPress coreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. SVN, the new numbered branch in SVN will remain pinned to the corresponding wp/X.Y branch in the Gutenberg repository.
After branching, the trunk branch should be bumped to X.Y+1-alpha (example [62161]) and a second commit should be made changing the pinned SHA value back to the most recent 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. release in trunk, thus syncing all of the changes since Beta 1. Making two commits creates two distinct reference points: one for bumping the version, one for documenting all of the changes being synced into the code base from Gutenberg.
Note: Branching typically happens immediately after the RC1 release is published for an upcoming major version. But in some cases, branching can be delayed or moved up based on factors unique to the current release.
Post-Branching in WordPress SVN
After branching has occurred for an upcoming 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. and the numbered branch is pinned to the corresponding wp/X.Y branch, syncing should happen as often as necessary to ensure the latest changes targeted for that release are included in each Beta and RC release.
Committers should balance the frequency of updating with the net benefit after considering other factors, such as the severityseverityThe seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while priority is its relationship to other bugs. of the fix being merged, the non-zero amount of noise each commit makes, contributors needing to pull updates/merge the latest into their pull requests, the volume of related reports being made, etc. Syncing solely to pull in a typo fix is probably unnecessary. But syncing to only pull in a bug fix for an 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. that was broken is worth considering.
This process will continue during maintenance releases.
trunk will return to being synced during the week opposite Gutenberg plugin releases.
Example Timeline
Using the upcoming 7.1 release as an example, here is a timeline of events:
Gutenberg: Version 23.6.0 of the plugin is released.
Gutenberg: The wp/7.1 branch is created in the gutenberg repository.
WP SVN: Prior to 7.1-beta1, trunk is updated to the most recent hash in the wp/7.1 branch of gutenberg.
WP SVN: trunk is synced with wp/7.1 before every beta or rc release (and as often as necessary in between).
WP SVN:After RC1 the 7.1 branch is created.
WP SVN: trunk is updated to 7.2-alpha.
WP SVN: trunk is updated to sync version 23.7.0 of Gutenberg.
WP SVN: The 7.1 branch continues to be synced prior to each RC and before final release.
WP SVN: trunk returns to being updated one week after each general release of Gutenberg.
WP SVN: WordPress 7.1 is released. The 7.1 branch is updated prior to beta/RC versions for minor releases, and whenever necessary going forward (remaining pinned to wp/7.1).
Minor Releases & Backporting In WordPress SVN
The process for merging commits into a numbered branch for a minor releaseMinor ReleaseA set of releases or versions having the same minor version number may be collectively referred to as .x , for example version 5.2.x to refer to versions 5.2, 5.2.1, 5.2.3, and all other versions in the 5.2 (five dot two) branch of that software. Minor Releases often make improvements to existing features and functionality. will remain the same.
Commit the change to trunk.
Mark the TracTracAn open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.ticketticketCreated for both bug reports and feature development on the bug tracker. for 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. consideration by moving to the minor release milestone with fixed-major, and commit dev-feedback for sign off from a second committercommitterA developer with commit access. WordPress has five lead developers and four permanent core developers with commit access. Additionally, the project usually has a few guest or component committers - a developer receiving commit access, generally for a single release cycle (sometimes renewed) and/or for a specific component. to backport.
Merge to the numbered branch after a second sign off is added with the commit dev-reviewed keywords.
However, there is one small change that will be required to this workflow. Because numbered branches now use SHA values from the corresponding wp/X.Y branches and trunk has the latest changes from trunk in Gutenberg, it is likely not possible to merge a single fix into trunk first.
Therefore, commits changing pinned SHA values to numbered branches will be allowed provided the double signoff process is followed.
Note: If any PHPPHPThe web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher changes are required that will not be included in the sync commit after bumping the pinned SHA value, they should be committed to trunk first and follow the backporting process.
Merging Changes
Creating A Sync Pull Request
To create a pull request for syncing the two repositories, find the full-length hash value for the version of Gutenberg being targeted for syncing and update the gutenberg.sha value in the package.json file.
Running build:dev locally will update every built file with the corresponding changes. However, there is a GitHub Actions workflow that pushes these changes back to a PR’s HEAD branch automatically.
Reviewing A Sync Pull Request
When the value of gutenberg.sha is updated, one or more Gutenberg plugin releases are merged into wordpress-develop. As a result the number of modified/added/deleted files in the PR itself will be quite high and validating every single one is not possible. However, the files updated should only consist of those modified by the build script (mainly build:dev). Any changes to files managed manually must be made separately.
When reviewing a sync PR, the main things to verify are:
No new changes exist locally after running build:dev.
The changed files line up with the changes listed for
Does WordPress run as expected locally using the PR?
Who Is Responsible For Syncing?
Anyone can create the pull request to update the hash value pinned in wordpress-develop! The contributor with the best working knowledge of the changes included in a given Gutenberg plugin version is the contributor leading that release.
There are opportunities to automate parts of this process, but more time is needed to get that working properly.
Allowed Hash Values In wordpress-develop Commits
There are several ways to pull in code from the gutenberg repository by specifying different values for gutenberg.sha:
Full-length commit SHA
Plugin release-specific tags such as release-23.4 (after the release/23.4 branch is created)
WordPress version-specific tags such as wp-7.1 (after the wp/7.1 branch is created)
Pull request-specific tags such as pr-123456
Bleeding edgebleeding edgeThe latest revision of the software, generally in development and often unstable. Also known as trunk. changes using trunk
Each reference type above is updated after each commit. The build script in wordpress-develop will always attempt to fetch the most recent version before building.
While these tags are helpful for local development, their mutable nature does not guarantee idempotency. Full-length commit hash values are the only immutable references. Given this, only full-length SHA values are allowed to be used as values for gutenberg.sha in the package.json file.
Trac Tickets And Merge Commits
Because these merges include many different features and bug fixes, it can quickly become difficult to track when certain specific changes are merged into wordpress-develop from gutenberg.
To improve clarity, Trac tickets should be created and utilized as follows:
All changes and updates to files not managed by the build script require individual tickets (current practice).
A new ticket should be created for every hash bump during the alpha period (new practice).
A single ticket can be used for all hash bumps between each beta and RC release (new practice).
Examples: A single “Gutenberg Syncs for Beta 2” ticket can be used for all hash bumps between beta1 and beta2. A single “Gutenberg Syncs for RC2” ticket can be used for all hash bumps between RC1 and RC2. But hash bump A and hash bump B during the alpha period must have separate tickets.
This helps to avoid Trac tickets with 100s of comments, and 10s of associated PRs, and 10s of commits and creates a single point of tracking for each merge point.
Commit Messages
The following commit message format should be used when committing a pinned SHA update:
Component: Bump the pinned hash from the Gutenberg repository.
(WITH versions aligning with tags)
This updates the pinned commit hash of the Gutenberg repository from `%%OLD_FULL_HASH%%` (version `v25.0.0`) to `%%NEW_FULL_HASH%%` (version `26.0.0`). (versions are required when the hashes correspond to one, but optional when not directly associated with a specific release tag)
(Without versions aligning with tags)
This updates the pinned commit hash of the Gutenberg repository from `%%OLD_FULL_HASH%%` to `%%NEW_FULL_HASH%%` and merges all of the changes that were cherry-picked to the `wp/7.0` branch between WordPress `7.0-beta1` and today (preparing for `7.0-beta2`).
A full list of changes included in this commit can be found on GitHub: %%LINK%%.
The following commits are included:
- Pattern Editing: The best pattern feature yet! (https://github.com/WordPress/gutenberg/pull/#####)
- Global Styles: Adding support for feature X within the block styles. (https://github.com/WordPress/gutenberg/pull/#####
- etc..
Follow-up to [27195], [41062]. (optional)
Reviewed by a-fellow-committer, maybe-multiple.
Merges [26851] to the x.x branch. (both of these are only required when backporting from `trunk`)
Props person, another.
Fixes #30000. See #20202, #105.
The following command can be used to generate the list of changes being included (the two dot comparison is intentional): git log --reverse --format="- %s" OLDHASH..NEWHASH | sed 's|#\([0-9][0-9]*\)|https://github.com/WordPress/gutenberg/pull/\1|g; /github\.com\/WordPress\/gutenberg\/pull/!d' | pbcopy
Next Steps
Document the various ways to pull in changes from the gutenberg repository upstream (see Gutenberg-78211).
Update the Branching Before Release section of the Releasing Major Versions page in the Core Handbook to include the new steps and adjustments detailed above.
Update other release checklists (both major and minor)
Submit a PR to add new steps to the Gutenberg Plugin Release page of 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. Editor Handbook.
Summary
After considering different options and examining how all the moving pieces work, this process was chosen as a way to balance moving faster while also encouraging stability, and continues to follow long-established historical practices dictating how code is managed from release to release.
Any necessary adjustments can be made as needed and everyone’s feedback is welcome!
The live meeting will focus on the discussion for upcoming releases, and have an open floor section.
The various curated agenda sections below refer to additional items. If you have ticketticketCreated for both bug reports and feature development on the bug tracker. requests for help, please continue to post details in the comments section at the end of this agenda or bring them up during the dev chat.
The discussion section of the agenda is for discussing important topics affecting the upcoming release or larger initiatives that impact the CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. Team. To nominate a topic for discussion, please leave a comment on this agenda with a summary of the topic, any relevant links that will help people get context for the discussion, and what kind of feedback you are looking for from others participating in the discussion.
Open floor 🎙️
Any topic can be raised for discussion in the comments, as well as requests for assistance on tickets. Tickets in the milestone for the next major or maintenance release will be prioritized.
Please include details of tickets / PRs and the links in the comments, and indicate whether you intend to be available during the meeting for discussion or will be async.
We’ve just merged a change that will be part of WordPress 7.1 that hides the Classic 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. from the block inserter by default. The Classic block stays registered, every existing Classic block keeps working and remains editable, and a new 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. lets anyone bring it back into the inserter. This post explains what changes, why, and how to opt back in if needed.
What’s changing
Starting in WordPress 7.1, the Classic block (core/freeform) no longer appears in the block inserter (#11712, Trac #65166, originally #77911 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/). In practice, this means you can’t add a new Classic block from the inserter, the block library, or slash commands.
Nothing else about the block changes:
The Classic block remains registered.
All existing Classic blocks (including any <!-- wp:freeform --> content) continue to render and stay fully editable, exactly as before.
The Classic editor and the underlying TinyMCE experience are untouched. If a post type doesn’t use the block editor, nothing here applies to it.
This is purely about steering new content away from the legacy Classic block, not about removing anything you already have.
To be clear: the Classic editor is not affected at all by this change. This is strictly about the Classic block inside the block editor. If you use the Classic editor (for example, via the Classic Editor 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. or on post types that don’t use the block editor), your experience stays exactly the same.
Why we’re doing this
The Classic block has been the bridge from the pre-block era into the block editor, and it has served that role well. But it’s also the one block in CoreCoreCore is the set of software required to run WordPress. The Core Development Team builds WordPress. that doesn’t behave like a block:
Architectural consistency. Every other Core block is a node in the block tree. The Classic block is the lone exception, opaque HTMLHTMLHyperText Markup Language. The semantic scripting language primarily used for outputting content in web browsers. rendered through a separate editor embedded inside the block editor. Keeping it as a default inserter option works against the block-first model on which the editor is built.
Reducing the inflow. The migrationMigrationMoving the code, database and media files for a website site from one server to another. Most typically done when changing hosting companies. path away from Classic content (Convert to Blocks) has existed for years, and Classic usage keeps shrinking. Hiding the block from the inserter stops new Classic content from being created, so that set keeps getting smaller rather than growing.
Maintenance leverage. Many block-library improvements have to special-case the Classic block. Each special handling may be small on its own, but cumulatively, this may slow down work that benefits every other block.
The broader, longer-term goal, which will be covered separately as it matures, is to make the Classic block fully opt-in and eventually to lay the groundwork for loading TinyMCE only when it’s actually needed. WordPress 7.1 is just the first user-facing step on that path. None of the later steps are happening in 7.1, and each will get its own discussion and dev notedev noteEach important change in WordPress Core is documented in a developers note, (usually called dev note). Good dev notes generally include a description of the change, the decision that led to this change, and a description of how developers are supposed to work with that change. Dev notes are published on Make/Core blog during the beta phase of WordPress release cycle. Publishing dev notes is particularly important when plugin/theme authors and WordPress developers need to be aware of those changes.In general, all dev notes are compiled into a Field Guide at the beginning of the release candidate phase..
Opting back in
If you (or your users) still want the Classic block available in the inserter, there’s a dedicated filter: wp_classic_block_supports_inserter.
If you’d rather not write code, there’s a small plugin that does exactly this, Enable Classic Block, which flips the filter on for you. The plugin has already been submitted for approval to the WordPress Plugin Directory.
Backward compatibility
This change is opt-out by design and doesn’t break anything:
No content is modified or migrated. Existing Classic blocks are left exactly as they are.
The block, its edit behavior, and the Convert to Blocks action all continue to work.
The core/freeform block remains registered, so any code that relies on it being present keeps functioning.
Restoring the previous behavior is a one-line filter (or one tiny plugin) away.
What’s next
Alongside this change, we’re investing in the surrounding experience so that moving away from the Classic block is smoother for everyone:
A deprecation/migration notice (experimental). There’s an experiment in Gutenberg that surfaces a notice inside existing Classic blocks, with one-click actions to convert the content to blocks or to a Custom HTML block. We’re exploring this as a gentle way to highlight that the Classic block is being phased out and to make the migration path more discoverable. It’s behind an experiment flag for now while we refine it for a WordPress release.
Improving everything around it. In parallel, we’re improving and fixing the pieces that live by the Classic block: the Custom HTML block, the Convert to Blocks path, freeform handling and conversion, and related compatibility layers. The goal is that by the time Classic content needs to move, the tools to move it are solid.
These, alongside other planned next steps, can be tracked in the dedicated tracking issue.
We’d love your feedback
This is an early step in a longer effort, and we want to get it right. If you maintain plugins or custom integrations, run large sites, or have workflows that depend on the Classic block, we’d really like to hear from you, especially around migration and bulk-conversion needs.
A huge congratulations, and a giant thank you to everyone who helped make WordPress 7.0 happen! The release was only made possible by your dedication and hard work. You all are heroes!
Now that the development cycle is over, it’s time for a retro. You’re invited to share your thoughts on the 7.0 cycle, on processes, squad, or anything else about the release cycle. I know you all have :a lot: to say after that whirlwind, so please do! Feedback loops help uncover what is and is not working so that the release process can be improved.
Please share your feedback using this form or by dropping a comment below. Even contributors who did not contribute directly to the release are welcome.
Someone who was simply watching the release will have thoughts and opinions that vary from someone who was more heavily involved. It’s important for diverse perspectives to be represented in feedback for big picture clarity. So no matter who you are, please speak up!
The survey is not anonymous, but submissions will be anonymized in the follow up summary. Your 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/ username is only needed for any additional questions.
The form and comments will be open until July 20, 2026, and a summary of feedback will be published soon after.
Thank you for taking the time to give your valuable feedback, and thank you again for your amazing investments in 7.0 “Armstrong”. Together, future release cycles will be even better!
You must be logged in to post a comment.