[wp-trac] [WordPress Trac] #64393: Change how we include Gutenberg in Core
WordPress Trac
noreply at wordpress.org
Fri Feb 27 01:11:36 UTC 2026
#64393: Change how we include Gutenberg in Core
------------------------------+--------------------------
Reporter: youknowriad | Owner: youknowriad
Type: task (blessed) | Status: reopened
Priority: high | Milestone: 7.0
Component: Build/Test Tools | Version:
Severity: blocker | Resolution:
Keywords: has-patch | Focuses:
------------------------------+--------------------------
Comment (by dmsnell):
Happy update here: I have been able to simulate this entire flow and see
that the version history can be restored for these files through the `svn`
> `git` bridge, but it’s going to need some manual intervention, including
help with those who manage that process.
I think it would be incredibly prudent for us to restore the continuity of
these files into the repo //before releasing 7.0//, and I would appreciate
anyone’s help if you work with the system pushing updates from subversion
into git.
In [https://github.com/WordPress/wordpress-develop/pull/11064 PR#11064] I
have added a script and a screencast demonstrating the flow. There were a
lot of mines in the path to get there, and while I think there’s a chance
it could be done from the `git` side, and potentially easier so, I wanted
to be sure that a `svn`-first approach works.
**Fundamentally**, if we can merge into `trunk` a copy of the deleted
files whose //merge base// is before
`22294af4ed3b46f577f42590ba4cc19ca0a93f3f` / [61439], and perform a //non-
fast-forward merge//, then `git` and all `git` tooling (such as GitHub,
IDE integrations, Git GUIs) should by default trace the history of these
files through the merging and no longer represent them as if they were
brand new today.
Steps (simplified):
- from the SVN repo…
- `svn copy trunk at 61438 branches/restore-required-files` — this
creates the branch with the fork point //before// the build change.
- copy the files from a clean checkout of `wordpress/wordpress-
develop` where `npm ci && npm run build:dev` has already run. this is
going to copy in the latest version of these built files and create a
merge conflict that will give us a chance interrupt the auto-merge process
and “resurrect” the files, as SVN puts it.
- commit these changes
- go back to `trunk`
- `svn merge ^/branches/restore-required-files --accept postpone` will
start the merge and pause on the conflicts
- remove the relevant patterns from `.gitignore`
- since the conflict is a “tree conflict” we can’t just “accept
theirs” but we can mark the repo as “working copy includes the resolved
version of the changes.” — `svn resolve --accept working .`
- `svn add` all of the relevant files that appear in `svn status`
- `svn commit` to complete the merge and restoration
- from the `git` repo
- after the merge is done, perform `git svn fetch --all` to ensure
that the restoration branch is fetched. If we leave out this step then
`git` will linearize the merge and our history //will not connect// to the
past.
- `git svn rebase` this should pull in the changes while creating the
merge commit containing both appropriate parents!
Obviously the automation synchronizing `git` with `svn` will need to be
paused during this time otherwise we could get the repo into a messed-up
state. That’s why I created the simulation in the linked PR, to ensure
that everything is done the way we expect, and to make it easier to ensure
that the steps are right, as well as to compare changes to the merge to
see if they could be better.
----
I would be grateful if anyone who works with the `svn` and `git` repos
could help me out with this. Once we release 7.0, if the files are not
restored into that commit then any workflow which skips between official
releases will hit a wall at 7.0; any attempt to review the total changes
or examine a changelog will show that these files exist no more, even
though they are entirely necessary for WordPress to boot. They will appear
in the ZIP without any clear link back to the source.
You can review the script and screencast in the linked PR. the code of
that PR isn’t as important at this moment. Thank you.
--
Ticket URL: <https://core.trac.wordpress.org/ticket/64393#comment:174>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list