ci: gate on one aggregate context instead of four matrix legs - #12
Merged
Conversation
Branch protection named `julia 1.11 — ubuntu-latest` and three siblings. Adding a Julia version to the matrix left the new leg ungated; renaming one would have made `main` permanently unmergeable, because the required context would never report again. `All tests passed` is now the single context, and `if: always()` on it is load-bearing in a way that is invisible from reading the file. Measured on a scratch branch by failing a leg on purpose: needs: alone, required leg fails -> All tests passed = SKIPPED if: always(), required leg fails -> All tests passed = failure if: always(), nightly fails -> All tests passed = success GitHub counts a skipped required check as passing, so the first row is not a smaller version of the second — it is a gate that lets a red pull request through, which is worse than what it replaces. The third row is the property that matters for `continue-on-error`: a failing nightly stays out of `needs.test.result`. Branch protection is not changed here. The context has to report at least once before it can be required, or requiring it deadlocks `main`. Refs #6. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Contributor
|
📚 Docs preview: https://codes.sota-shimozono.com/ExperimentalAPI.jl/previews/PR12/ (updates on each push to this PR) |
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
sotashimozono
added a commit
that referenced
this pull request
Sep 5, 2026
`main` moved under this branch: #11 cut the README from 1372 words to 419 for the registry's LLM policy, and #12 replaced the four required matrix contexts with one aggregate. Three files conflicted, and the resolution is not "keep both halves" in any of them: * **README.md** — `main`'s trimmed version wins wholesale. Re-adding the long sections written here would undo the point of #11. What is added back is two things that are now *false* without them: `record` and `reach` did not exist when that README was written, and the closing line called `test/spec/` "the specification for the propagation and profiling work that is not built yet". 559 words, against the 1372 that #11 cut. * **src/audit.jl** and **docs/src/checking.md** — the extension blind spot has a workaround #11 documented (declare the function in the parent, let the extension add only the method) and a report this branch added (`Audit.extensions`). Both are true, so both are said. The "methods on other packages' functions" bullet keeps this branch's version, because it stopped being a blind spot. `docs/make.jl` and `.github/workflows/CI.yml` merged cleanly and correctly — #11's canonical URL with this branch's page list, and #12's `all-tests` job with this branch's corrected runtime comment. Verified after the merge: `test_readme.jl`, `test_dogfood.jl`, `test_audit.jl`, the formatter, and a full docs build. Co-Authored-By: Claude Opus 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.
Branch protection names
julia 1.11 — ubuntu-latestand three siblings. Adding a Julia version to the matrix leaves the new leg ungated; renaming one makesmainpermanently unmergeable, because the required context never reports again.All tests passedbecomes the single context.if: always()is load-bearing, and its absence is silentMeasured on a scratch branch by failing a leg on purpose, rather than reasoned about:
All tests passedneeds:aloneneeds:+if: always()needs:+if: always()nightlyGitHub counts a skipped required check as passing. So the first row is not a weaker version of the second — it is a gate that lets a red pull request through, which is strictly worse than the per-leg contexts it replaces. I would have shipped it: the first version of this change had no
if: always(), and its positive test (nightly fails, aggregate passes) came back green.The third row is the property that matters for
continue-on-error: a failingnightlystays out ofneeds.test.result, so the aggregate is not dragged down by a leg that is allowed to fail.Branch protection is not changed here
The context has to report at least once before it can be required — requiring a context that has never reported deadlocks
main. After this merges, protection becomes:and the four per-leg contexts come off.
Refs #6.
🤖 Generated with Claude Code