{"id":124256,"date":"2026-06-30T03:24:39","date_gmt":"2026-06-30T03:24:39","guid":{"rendered":"https:\/\/make.wordpress.org\/core\/?p=124256"},"modified":"2026-06-30T15:28:35","modified_gmt":"2026-06-30T15:28:35","slug":"guidelines-for-syncing-code-from-gutenberg-into-wordpress-develop","status":"publish","type":"post","link":"https:\/\/make.wordpress.org\/core\/2026\/06\/30\/guidelines-for-syncing-code-from-gutenberg-into-wordpress-develop\/","title":{"rendered":"Guidelines for Syncing Code From Gutenberg Into WordPress Develop"},"content":{"rendered":"<p class=\"wp-block-paragraph\">During the 7.0 release cycle, the way code maintained in the <span tabindex='0' class='glossary-item-container'>Gutenberg<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Gutenberg<\/span> <span class='glossary-item-description'>The 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 \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc.\r<a href=\"https:\/\/wordpress.org\/gutenberg\/\">https:\/\/wordpress.org\/gutenberg\/<\/a><\/span><\/span><\/span> repository is imported into the <code>wordpress-develop<\/code> repository changed from using published npm packages to downloading a zip file of built assets published to the <span tabindex='0' class='glossary-item-container'>GitHub<span class='glossary-item-hidden-content'><span class='glossary-item-header'>GitHub<\/span> <span class='glossary-item-description'>GitHub 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 \u2018pull request\u2019 where code changes done in branches by contributors can be reviewed and discussed before being merged by the repository owner. <a href=\"https:\/\/github.com\/\">https:\/\/github.com\/<\/a><\/span><\/span><\/span> Container Registry by the <code>build-plugin-zip.yml<\/code> workflow file in Gutenberg (see <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/64393\">#64393<\/a>, <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/75844\">Gutenberg-75844<\/a>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There were two bugs preventing <code>wordpress-develop<\/code> from being updated with the latest changes (<a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/76715\">Gutenberg-76715<\/a> and <a href=\"https:\/\/core.trac.wordpress.org\/ticket\/65418\">#65418<\/a>). These have been fixed and after [<a href=\"https:\/\/core.trac.wordpress.org\/log\/?revs=62577-62578%2C62580-62584\">62577-62578,62580-62584<\/a>],\u00a0 <code>trunk<\/code> is now in sync with the most recent <code>gutenberg<\/code> release (currently <code>23.4.0<\/code>).<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Syncing Practices<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">The following sections aim to define when and how to sync changes from the <code>gutenberg<\/code> repository into the <code>wordpress-develop<\/code> repository.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Cadence During Alpha Periods<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">For the 7.1 release cycle, <strong>syncing will happen one week after each general release of Gutenberg<\/strong>. This ensures that <code>trunk<\/code> is reasonably up to date with the latest changes, but still allows some time for any follow-up <span tabindex='0' class='glossary-item-container'>bug<span class='glossary-item-hidden-content'><span class='glossary-item-header'>bug<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span> fixes that are required. The goal is to eventually sync weekly, or even daily.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Syncing During The Release Cycle <span tabindex='0' class='glossary-item-container'>Beta<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Beta<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span>\/<span tabindex='0' class='glossary-item-container'>RC<span class='glossary-item-hidden-content'><span class='glossary-item-header'>release candidate<\/span> <span class='glossary-item-description'>One of the final stages in the version release cycle, this version signals the potential to be a final release to the public. Also see <a href=\"#alpha-beta\">alpha (beta)<\/a>.<\/span><\/span><\/span> Phase<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Once the Beta 1 point is reached for a release, the SHA value pinned to <code>gutenberg.sha<\/code> in <code>package.json<\/code> for <code>trunk<\/code> will be updated to one belonging to the release\u2019s corresponding <code>wp\/X.Y<\/code> <span tabindex='0' class='glossary-item-container'>branch<span class='glossary-item-hidden-content'><span class='glossary-item-header'>branch<\/span> <span class='glossary-item-description'>A 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\".<\/span><\/span><\/span> in the Gutenberg repository when the next syncing occurs. <code>trunk<\/code> will remain pinned to a <code>wp\/X.Y<\/code> branch hash value until branching occurs. This prevents new feature work not intended for the upcoming WordPress release from leaking into the <span tabindex='0' class='glossary-item-container'>SVN<span class='glossary-item-hidden-content'><span class='glossary-item-header'>SVN<\/span> <span class='glossary-item-description'>Subversion, the popular version control system (VCS) by the Apache project, used by WordPress to manage changes to its codebase.<\/span><\/span><\/span> code base.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Because individual changes targeted for an upcoming WordPress release are cherry-picked into each <code>wp\/X.Y<\/code> branch, syncing can happen as often as necessary. However, the most recent changes must be synced prior to each <code>beta<\/code> and <code>RC<\/code> release.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Branching in WordPress SVN<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After branching is performed in WordPress <span tabindex='0' class='glossary-item-container'>core<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Core<\/span> <span class='glossary-item-description'>Core is the set of software required to run WordPress. The Core Development Team builds WordPress.<\/span><\/span><\/span> SVN, the new numbered branch in SVN will remain pinned to the corresponding <code>wp\/X.Y<\/code> branch in the Gutenberg repository.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">After branching, the <code>trunk<\/code> branch should be bumped to <code>X.Y+1-alpha<\/code> (example <a href=\"https:\/\/core.trac.wordpress.org\/changeset\/62161\">[62161]<\/a>) and a second commit should be made changing the pinned SHA value back to the most recent Gutenberg <span tabindex='0' class='glossary-item-container'>plugin<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Plugin<\/span> <span class='glossary-item-description'>A 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 <a href=\"https:\/\/wordpress.org\/plugins\/\">https:\/\/wordpress.org\/plugins\/<\/a> or can be cost-based plugin from a third-party.<\/span><\/span><\/span> release in <code>trunk<\/code>, 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note: <\/strong><a href=\"https:\/\/make.wordpress.org\/core\/handbook\/about\/release-cycle\/releasing-major-versions\/#branching-before-release\">Branching typically happens<\/a> 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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Post-Branching in WordPress SVN<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">After branching has occurred for an upcoming <span tabindex='0' class='glossary-item-container'>major release<span class='glossary-item-hidden-content'><span class='glossary-item-header'>major release<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span> and the numbered branch is pinned to the corresponding <code>wp\/X.Y<\/code> 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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Committers should balance the frequency of updating with the net benefit after considering other factors, such as the <span tabindex='0' class='glossary-item-container'>severity<span class='glossary-item-hidden-content'><span class='glossary-item-header'>severity<\/span> <span class='glossary-item-description'>The seriousness of the ticket in the eyes of the reporter. Generally, severity is a judgment of how bad a bug is, while <strong>priority<\/strong> is its relationship to other bugs.<\/span><\/span><\/span> 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 <span tabindex='0' class='glossary-item-container'>API<span class='glossary-item-hidden-content'><span class='glossary-item-header'>API<\/span> <span class='glossary-item-description'>An 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.<\/span><\/span><\/span> that was broken is worth considering.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">This process will continue during maintenance releases.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>trunk<\/code> will return to being synced during the week opposite Gutenberg plugin releases.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Example Timeline<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Using the upcoming 7.1 release as an example, here is a timeline of events:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Gutenberg<\/strong>: Version <code>23.6.0<\/code> of the plugin is released.<\/li>\n\n\n\n<li><strong>Gutenberg<\/strong>: The <code>wp\/7.1<\/code> branch is created in the <code>gutenberg<\/code> repository.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: Prior to <code>7.1-beta1<\/code>, <code>trunk<\/code> is updated to the most recent hash in the <code>wp\/7.1<\/code> branch of <code>gutenberg<\/code>.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: <code>trunk<\/code> is synced with <code>wp\/7.1<\/code> before every <code>beta<\/code> or <code>rc<\/code> release (and as often as necessary in between).<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>:<strong> <\/strong>After <code>RC1<\/code> the <code>7.1<\/code> branch is created.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: <code>trunk<\/code> is updated to <code>7.2-alpha<\/code>.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: <code>trunk<\/code> is updated to sync version <code>23.7.0<\/code> of Gutenberg.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: The <code>7.1<\/code> branch continues to be synced prior to each <code>RC<\/code> and before final release.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: <code>trunk<\/code> returns to being updated one week after each general release of Gutenberg.<\/li>\n\n\n\n<li><strong>WP SVN<\/strong>: WordPress 7.1 is released. The <code>7.1<\/code> branch is updated prior to beta\/RC versions for minor releases, and whenever necessary going forward (remaining pinned to <code>wp\/7.1<\/code>).<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Minor Releases &amp; Backporting In WordPress SVN<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The process for merging commits into a numbered branch for a <span tabindex='0' class='glossary-item-container'>minor release<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Minor Release<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span> will remain the same.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Commit the change to <code>trunk<\/code>.<\/li>\n\n\n\n<li>Mark the <span tabindex='0' class='glossary-item-container'>Trac<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Trac<\/span> <span class='glossary-item-description'>An open source project by Edgewall Software that serves as a bug tracker and project management tool for WordPress.<\/span><\/span><\/span> <span tabindex='0' class='glossary-item-container'>ticket<span class='glossary-item-hidden-content'><span class='glossary-item-header'>ticket<\/span> <span class='glossary-item-description'>Created for both bug reports and feature development on the bug tracker.<\/span><\/span><\/span> for <span tabindex='0' class='glossary-item-container'>backport<span class='glossary-item-hidden-content'><span class='glossary-item-header'>backport<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span> consideration by moving to the minor release milestone with <code>fixed-major<\/code>, and <code>commit dev-feedback<\/code> for sign off from a second <span tabindex='0' class='glossary-item-container'>committer<span class='glossary-item-hidden-content'><span class='glossary-item-header'>committer<\/span> <span class='glossary-item-description'>A 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.<\/span><\/span><\/span> to backport.<\/li>\n\n\n\n<li>Merge to the numbered branch after a second sign off is added with the <code>commit dev-reviewed<\/code> keywords.<\/li>\n<\/ol>\n\n\n\n<p class=\"wp-block-paragraph\">However, there is one small change that will be required to this workflow. Because numbered branches now use SHA values from the corresponding <code>wp\/X.Y<\/code> branches and <code>trunk<\/code> has the latest changes from <code>trunk<\/code> in Gutenberg, it is likely not possible to merge a single fix into <code>trunk<\/code> first.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Therefore, commits changing pinned SHA values to numbered branches will be allowed provided the double signoff process is followed.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Note: <\/strong>If any <span tabindex='0' class='glossary-item-container'>PHP<span class='glossary-item-hidden-content'><span class='glossary-item-header'>PHP<\/span> <span class='glossary-item-description'>The web scripting language in which WordPress is primarily architected. WordPress requires PHP 7.4 or higher<\/span><\/span><\/span> changes are required that will not be included in the sync commit after bumping the pinned SHA value, they should be committed to <code>trunk<\/code> first and follow the backporting process.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Merging Changes<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">Creating A Sync Pull Request<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">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 <code>gutenberg.sha<\/code> value in the <code>package.json<\/code> file.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Running <code>build:dev<\/code> 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\u2019s <code>HEAD<\/code> branch automatically.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Reviewing A Sync Pull Request<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">When the value of <code>gutenberg.sha<\/code> is updated, one or more Gutenberg plugin releases are merged into <code>wordpress-develop<\/code>. 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 <code>build:dev<\/code>). Any changes to files managed manually must be made separately.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">When reviewing a sync PR, the main things to verify are:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>No new changes exist locally after running <code>build:dev<\/code>.<\/li>\n\n\n\n<li>The changed files line up with the changes listed for\u00a0<\/li>\n\n\n\n<li>Does WordPress run as expected locally using the PR?<\/li>\n<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\">Who Is Responsible For Syncing?<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Anyone can create the pull request to update the hash value pinned in <code>wordpress-develop<\/code>! The contributor with the best working knowledge of the changes included in a given Gutenberg plugin version is the contributor leading that release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To start, creating a ticket on Trac for syncing and the initial pull request for the release will be added as items in <a href=\"https:\/\/developer.wordpress.org\/block-editor\/contributors\/code\/release\/plugin-release\/\">the Gutenberg Plugin Releases page in the handbook<\/a>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">There are opportunities to automate parts of this process, but more time is needed to get that working properly.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Allowed Hash Values In <code>wordpress-develop<\/code> Commits<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">There are <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78211\">several ways to pull in code<\/a> from the <code>gutenberg<\/code> repository by specifying different values for <code>gutenberg.sha<\/code>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Full-length commit SHA<\/li>\n\n\n\n<li>Plugin release-specific tags such as <code>release-23.4<\/code> (after the <code>release\/23.4<\/code> branch is created)<\/li>\n\n\n\n<li>WordPress version-specific tags such as <code>wp-7.1<\/code> (after the <code>wp\/7.1<\/code> branch is created)<\/li>\n\n\n\n<li>Pull request-specific tags such as <code>pr-123456<\/code><\/li>\n\n\n\n<li><span tabindex='0' class='glossary-item-container'>Bleeding edge<span class='glossary-item-hidden-content'><span class='glossary-item-header'>bleeding edge<\/span> <span class='glossary-item-description'>The latest revision of the software, generally in development and often unstable. Also known as <a href=\"#trunk\">trunk<\/a>.<\/span><\/span><\/span> changes using <code>trunk<\/code><\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Each reference type above is updated after each commit. The build script in <code>wordpress-develop<\/code> will always attempt to fetch the most recent version before building.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">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 <code>gutenberg.sha<\/code> in the <code>package.json<\/code> file.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Trac Tickets And Merge Commits<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Because these merges include many different features and bug fixes, it can quickly become difficult to track when certain specific changes are merged into <code>wordpress-develop<\/code> from <code>gutenberg<\/code>.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">To improve clarity, Trac tickets should be created and utilized as follows:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>All changes and updates to files not managed by the build script require individual tickets (current practice).<\/li>\n\n\n\n<li>A new ticket should be created for every hash bump during the alpha period (new practice).<\/li>\n\n\n\n<li>A single ticket can be used for all hash bumps between each beta and RC release (new practice).<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Examples: A single \u201cGutenberg Syncs for Beta 2\u201d ticket can be used for all hash bumps between <code>beta1<\/code> and <code>beta2<\/code>. A single \u201cGutenberg Syncs for RC2\u201d ticket can be used for all hash bumps between <code>RC1<\/code> and <code>RC2<\/code>. But hash bump A and hash bump B during the <code>alpha<\/code> period must have separate tickets.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><br>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.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Commit Messages<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">The following commit message format should be used when committing a pinned SHA update:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code class=\"\">Component: Bump the pinned hash from the Gutenberg repository.\n\n(WITH versions aligning with tags)\nThis 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)\n\n(Without versions aligning with tags)\nThis 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`).\n\nA full list of changes included in this commit can be found on GitHub: %%LINK%%.\n\nThe following commits are included:\n- Pattern Editing: The best pattern feature yet! (https:\/\/github.com\/WordPress\/gutenberg\/pull\/#####)\n- Global Styles: Adding support for feature X within the block styles. (https:\/\/github.com\/WordPress\/gutenberg\/pull\/#####\n- etc..\n\nFollow-up to [27195], [41062]. (optional)\n\nReviewed by a-fellow-committer, maybe-multiple.\nMerges [26851] to the x.x branch. (both of these are only required when backporting from `trunk`)\n\nProps person, another.\nFixes #30000. See #20202, #105.<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">The following command can be used to generate the list of changes being included (the two dot comparison is intentional):<br><code>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<\/code><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Next Steps<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Document the various ways to pull in changes from the <code>gutenberg<\/code> repository upstream (see <a href=\"https:\/\/github.com\/WordPress\/gutenberg\/pull\/78211\">Gutenberg-78211<\/a>).<\/li>\n\n\n\n<li>Update the Core Handbook\u2019s <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/best-practices\/commit-messages\/\">Best Practices for Commit Messages<\/a> page to include the merge commit formatting.<\/li>\n\n\n\n<li>Update the <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/about\/release-cycle\/releasing-major-versions\/#branching-before-release\">Branching Before Release<\/a> section of the Releasing Major Versions page in the Core Handbook to include the new steps and adjustments detailed above.<\/li>\n\n\n\n<li>Update other release checklists (both <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/about\/release-cycle\/releasing-major-versions\/\">major<\/a> and <a href=\"https:\/\/make.wordpress.org\/core\/handbook\/about\/release-cycle\/releasing-minor-versions-2\/\">minor<\/a>)<\/li>\n\n\n\n<li>Submit a PR to add new steps to the <a href=\"https:\/\/developer.wordpress.org\/block-editor\/contributors\/code\/release\/plugin-release\/\">Gutenberg Plugin Release page<\/a> of the <span tabindex='0' class='glossary-item-container'>Block<span class='glossary-item-hidden-content'><span class='glossary-item-header'>Block<\/span> <span class='glossary-item-description'>Block 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.<\/span><\/span><\/span> Editor Handbook.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">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.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Any necessary adjustments can be made as needed and everyone\u2019s feedback is welcome!<\/p>\n\n\n\n<p class=\"has-text-align-right wp-block-paragraph\"><em>Props: <a href=\"https:\/\/profiles.wordpress.org\/adamsilverstein\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>adamsilverstein<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/aduth\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>aduth<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/annezazu\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>annezazu<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/ellatrix\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>ellatrix<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jeffpaul\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jeffpaul<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jonsurrell\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jonsurrell<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/jorbin\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>jorbin<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/mamaduka\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>mamaduka<\/a>, <a href=\"https:\/\/profiles.wordpress.org\/tyxla\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>tyxla<\/a>,\u00a0@wildworks, <a href=\"https:\/\/profiles.wordpress.org\/youknowriad\/\" class=\"mention\"><span class=\"mentions-prefix\">@<\/span>youknowriad<\/a> for peer review and discussing aspects of this post before publishing.<\/em><\/p>\n<nav class='o2-post-footer-actions'><ul class='o2-post-footer-action-row'><li class='o2-post-footer-action'><a href=\"https:\/\/login.wordpress.org\/?redirect_to=https%3A%2F%2Fmake.wordpress.org%2Fcore%2F2026%2F06%2F30%2Fguidelines-for-syncing-code-from-gutenberg-into-wordpress-develop%2F%23respond&#038;locale=en_US\" title=\"Login to Reply\"  class=\"genericon  genericon-reply\"  data-action=\"login-to-reply\"  data-actionstate=\"default\" >Login to Reply<\/a><\/li><\/ul><div class='o2-post-footer-action-likes'><\/div><ul class='o2-post-footer-action-row'><\/ul><\/nav>","protected":false},"excerpt":{"rendered":"<p>During the 7.0 release cycle, the way code maintained in the GutenbergGutenberg The 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 \u2018blocks\u2019 to add richness rather than shortcodes, custom HTML etc. https:\/\/wordpress.org\/gutenberg\/ repository is imported [&hellip;]<\/p>\n","protected":false},"author":4552240,"featured_media":0,"comment_status":"open","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"advanced_seo_description":"","jetpack_seo_html_title":"","jetpack_seo_noindex":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[1175],"tags":[],"class_list":["post-124256","post","type-post","status-publish","format-standard","hentry","category-general","mentions-adamsilverstein","mentions-aduth","mentions-annezazu","mentions-ellatrix","mentions-jeffpaul","mentions-jonsurrell","mentions-jorbin","mentions-mamaduka","mentions-tyxla","mentions-youknowriad","author-desrosj"],"revision_note":"","jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_shortlink":"https:\/\/wp.me\/p2AvED-wk8","_links":{"self":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124256","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/users\/4552240"}],"replies":[{"embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/comments?post=124256"}],"version-history":[{"count":5,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124256\/revisions"}],"predecessor-version":[{"id":124270,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/posts\/124256\/revisions\/124270"}],"wp:attachment":[{"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/media?parent=124256"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/categories?post=124256"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/make.wordpress.org\/core\/wp-json\/wp\/v2\/tags?post=124256"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}