ci: float the Bazel matrix per LTS series and add a rolling canary - #384
Open
xnox wants to merge 1 commit into
Open
ci: float the Bazel matrix per LTS series and add a rolling canary#384xnox wants to merge 1 commit into
xnox wants to merge 1 commit into
Conversation
The four pinned versions were each the newest of their series when they were added (chainguard-dev#108, chainguard-dev#144, chainguard-dev#298) and have since gone stale: the matrix tests 9.1.0 and 8.6.0 while 9.2.0 and 8.7.0 are out. Bazelisk resolves N.x to the latest release of that LTS series, so use 9.x, 8.x and 7.x for the heads and let them track releases on their own. .bcr/presubmit.yml already expresses its matrix this way. Verified with bazelisk: 9.x -> 9.2.0, 8.x -> 8.7.0, 7.x -> 7.7.1. Add rolling (currently 10.0.0-pre.20260811.3) so breakage in the next LTS shows up before it ships. That cell is advisory: continue-on-error is set for it alone, and a cell with continue-on-error counts as a success for anything that needs: the job, so a broken rolling release cannot block a merge while every supported version still gates test-roundup. Keep 9.1.0, 8.3.0 and 7.6.1 pinned. 9.1.0 is what .bazelversion gives contributors locally, and the other two are the oldest releases of their series the matrix covers, which the floating entries would otherwise silently drop. The docs-test conditions compared version strings relationally, which does not extend to 'rolling' or 'N.x'. Match on the series prefix with startsWith instead. 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
The matrix pins four Bazel versions, and each was the newest of its series when it was added — 7.6.1 in #108, 8.3.0 in #144, 9.1.0 and 8.6.0 in #298. They have since gone stale: CI tests 9.1.0 and 8.6.0 while 9.2.0 and 8.7.0 are released. Every new Bazel release needs someone to notice and send a bump.
Bazelisk resolves floating identifiers, so the series heads can track releases themselves:
.bcr/presubmit.ymlalready expresses its matrix this way (bazel: ["7.x", "8.x", "9.x"]), so this makes the two agree.Verified with bazelisk locally:
The matrix
rolling9.x8.x7.x9.1.0.bazelversiongives contributors locally8.3.07.6.1The pins stay because the floating entries would otherwise silently drop coverage of older releases. Note that none of them was ever a deliberate minimum — there is no
bazel_compatibilityinMODULE.bazel— so if you have a stated support floor, these should be set to it and the rest dropped.rolling cannot block a merge
A cell with
continue-on-errorcounts as a success for anything thatneeds:the job, so a broken rolling release shows up in the UI without failingtest-roundup. It applies to that cell alone, so every supported version still gates as before — a real failure in9.xfails the roundup exactly as a failure in9.1.0does today.One incidental fix
The docs-test conditions compared version strings relationally:
That does not extend to
rollingorN.x, and a cell matching neither branch would silently run no tests at all while reporting green. They now match on the series prefix withstartsWith, which is well defined for every entry.(If #382 lands first these two conditions disappear entirely, and this hunk should be dropped in the rebase.)
Test plan
This PR validates itself — the new matrix runs on it.
9.xand the pinned cells gate;rollingis advisory, and whatever it reports here is the first data point on Bazel 10 readiness.actionlintclean (the pre-existing SC2086 findings inci.yamlare unchanged).🤖 Generated with Claude Code