[codex] Merge independently inserted theme mods#210
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
theme_mods_*option rows when both branches only add disjointnav_menu_locationsentries.wp_options.option_namecollision shape that the runtime semantic E2E exposed.make test-cow-e2e-semantic, a shorter runtime E2E slice that starts a real ForkPress site, runs the WordPress semantic object graph merge, and exits before the long Git/crash/review tail.Why
The new fast E2E slice reached a real gap: source and target branches can independently create
theme_mods_twentytwentyfourrows with different ID-bandoption_idvalues but the sameoption_name. The merge previously treated that as a row unique collision before the existing serializednav_menu_locationscell merge could apply.Validation
php -l scripts/cow/merge.phpphp -l tests/cow/merge.phpgit diff --checkphp tests/cow/merge.phppassed, 2932 assertionsmake test-cow-semantic-fastpassedmake test-cow-e2e-semantic FORKPRESS_E2E_BIN=/tmp/forkpress-v0.1.27-linux-x86_64/forkpressreached the semantic merge and reproduced the pre-fixtheme_mods_twentytwentyfourconflict in the released binaryNotes
I could not run the post-fix runtime E2E locally because this worktree has no
dist/x86_64-unknown-linux-muslruntime bundle, andmake forkpressstops untilscripts/build-dist.shhas produced the static PHP runtime. CI/release artifact builds should exercise the new E2E target with a freshly embedded runtime.