Repository navigation
chore: add a dev integration branch, and make CI actually watch it - #31
Merged
Merged
Conversation
Requested: a `dev` branch to land work on before `main`. The branch is the easy half. The half that matters is that **CI only triggered on `[main, master]`**, so a pull request targeting anything else ran no checks at all. That is not hypothetical here: ten pull requests once sat open with no checks, every one of them red, and the failures were invisible in the UI until the jobs were run locally against each branch. An integration branch that CI does not watch reproduces exactly that, at scale and by design. So `dev` is added to the `on:` lists in `ci.yml` and, for pull requests, in `docs.yml` — a broken nav entry or dead link should fail in review rather than after the merge to main. Deployment is untouched: it is already gated on `github.ref == 'refs/heads/main'` and a non-pull-request event, so dev builds the site and does not publish it. CONTRIBUTING gains a Branches section with the flow and the two rules that fall out of the same incident: do not target a feature branch (stack by rebasing onto dev), and run the suite after any rebase, because a rebase onto a squash-merged parent applies cleanly and can still break the build. `git rebase` succeeding is not a green check. Also asks for delete-branch-on-merge, which was off. That is why the branch list grew until it needed a manual audit to work out which branches were live; all eight turned out to be fully merged ancestors of main. Co-Authored-By: Claude Opus 5 (1M context) <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.
Summary
You asked for a
devbranch. Creating one is the easy half; this PR is the half that makes it safe.The trap this avoids
.github/workflows/ci.ymltriggered on[main, master]only. A pull request targeting anything else ran no checks at all.That is not hypothetical in this repository. Ten pull requests once sat open with no checks, every one of them red, and the failures were invisible in the UI until someone ran the jobs locally against each branch. An integration branch that CI does not watch reproduces exactly that, at scale and by design.
So
devgoes into theon:lists:ci.ymlpushandpull_requestnow[main, dev]docs.ymlpull_requestnow[main, dev];pushunchangedDeployment is untouched. It is already gated on
github.ref == 'refs/heads/main'and a non-pull-request event, sodevbuilds the docs site and does not publish it. A broken nav entry or dead link fails in review rather than after the merge.The flow
mainis what ships,devis where work integrates, hotfixes still go straight tomain.CONTRIBUTING.mdgains a Branches section carrying the flow plus the two rules that fall out of the same incident:dev, not by pointing one pull request at another.git rebasesucceeding is not a green check. This bit us twice this week.It also says, in the file people actually read before adding a branch: if you add another merge target, add it to both
on:lists in the same commit, or you have rebuilt the trap.Two things to do on merge
git switch -c dev main && git push -u origin dev. I have not created it yet, because adevthat predates this commit is adevwith no CI.main.I can do both once this lands, or you can.
Test plan
mkdocs build --strictrefs/heads/main🤖 Generated with Claude Code