Uh oh!
There was an error while loading. Please reload this page.
docs: expand-then-contract for cross-repo changes - #111
Merged
Conversation
chore(promote): develop → main — fr-pass fix + merge-settings drift guard
chore(promote): develop → main — fr-gate ancestry-only fix
The train promotes each repo independently (fail-fast: false, no ordering), so a hop routinely merges some repos and holds others -- the 2026-07-29 prod hop merged 8 of 10. Nothing today stops averaging-service promoting a change that needs a backend change backend has not shipped yet, and backend can be held by something unrelated to that work. Measured while looking into this: only 1 of 17 epics on the board spans repos, so the ticket graph does not encode these dependencies and cannot be gated on. The durable fix is not orchestration but compatibility -- expand, adopt, contract -- which removes the dependency on promotion timing rather than managing it. - README: a Cross-repo changes section with the three-step pattern and what to do when a change is genuinely breaking. - Org PR template: a checklist line pointing at it. Deliberately does NOT document repos.yml atomic groups; those do not exist yet. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
LukasWodka
commented
Jul 31, 2026
ContributorAuthor
👋 Heads-up — Code review queue is at 34 / 30 Above the WIP limit. The team convention is to review existing PRs before opening new work. Open PRs currently in Code review (oldest first):
Pull from review before opening new work. (This is a nudge from the kanban WIP check, not a block.) |
LukasWodka
commented
Jul 31, 2026
ContributorAuthor
bugbot run |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 734a053. Configure here.
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 freeto 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.
Step 4 of the cross-repo plan on backend#1371.
Why. The train promotes each repo independently —
fail-fast: false, no ordering — so a hop routinely merges some repos and holds others (the 2026-07-29 prod hop merged 8 of 10). Nothing today preventsaveraging-servicepromoting a change that needs abackendchange backend has not shipped, and backend can be held by something unrelated to that work.What the measurement said. Only 1 of 17 epics on the board spans repos, and that one (#1262) is a process epic. Cross-repo work does happen — RFC-0003 touched five repos — but it is tracked as separate issues rather than sub-issues of one epic, so the ticket graph does not encode the dependency and cannot be gated on. That rules out epic-sibling gating for now.
So the durable fix is compatibility, not orchestration: expand → adopt → contract removes the dependency on promotion timing instead of managing it. Every step is independently promotable and safe in any order.
README.md: a Cross-repo changes section with the pattern, the reasoning, and what to do when a change is genuinely breaking (tick Breaking change, put the rollout order in Deployment notes, tell whoever fires the train)..github/pull_request_template.md: one checklist line pointing at it.Scope notes. This deliberately does not document
repos.ymlatomic groups — those do not exist yet (step 2, queued behind release-train#11 since both editpromote.yml). And the org template only applies to repos without their own; all ten train repos have their own, and they have drifted (722/891/901/905/1150 bytes), so a sweep is needed to make the checklist line actually reach them — ticketed separately.Note
Low Risk
Documentation and PR checklist only; no runtime, security, or deployment behavior changes.
Overview
Documents how to ship work that spans multiple repos when the release train promotes each repository independently (no ordering between repos).
The README gains a Cross-repo changes section: why you cannot assume the fleet moves together, the expand → adopt → contract compatibility pattern, and what to do for genuinely breaking changes (tick Breaking change, document rollout order in Deployment notes with
tracebloc/<repo>#Nrefs, coordinate manual train sequencing).The org PR template adds a checklist item requiring either expand-then-contract or an explicit breaking-change rollout when a PR depends on another repo.
Reviewed by Cursor Bugbot for commit 734a053. Bugbot is set up for automated code reviews on this repo. Configure here.