Repository navigation
feat(tests): merge each change into a simulated fork in CI (#1924) - #1962
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
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.
Closes #1924.
What
tests/run_fork_sync.pychecks ADR-049's claim that a fork syncs withgit merge upstream/main. It makes a fork from the merge base of HEAD andorigin/main. The fork appends a stack (a renamed copy of the fixture) and its manifest entry, and adds a line to its own README, CLAUDE.md and CHANGELOG. The runner then merges in three scenarios:templates/manifest.yamlonly, caughtREADME.mdonly, kept as the fork'sbase:edit when HEAD adds nothingSAIT_UPSTREAM_REFat the upstream sideThe upstream change is the PR's own diff rather than a fixed synthetic edit, so every PR is checked for whether a fork can take it. Each simulated commit asserts that it changed exactly the files it claims to.
Spec
SAIT-INT-MNF-06-001A, with rows in INDEX and CODIFICATION. There is a new step insmoke.yml, and the runner is listed in CLAUDE.md and PLAYBOOK.Control
An upstream commit that gives
core/quality.mdthe section IDfork-sync-stack, committed in a scratch worktree (the landing count went from 0 to 1):run_smoke.py SYS-02: PASSrun_fork_sync.py: FS-03 FAIL, with nested smoke1 failed(SYS-02)Checks run locally (py 3.12)
sync.py --checkandresolve.py --check: cleanorigin/mainin a pinned worktree (environment-dependent). The one reading,core/git.md:1898, flags that this diff touches.github/workflows/smoke.yml, an off-limits path: it adds the CI step on purpose.No CHANGELOG entry: the change is to this repository's own tests and CI, and no consuming project would notice it.
🤖 Generated with Claude Code