chore: gate bifrost v1.8+ behind the Go 1.27 move - #841
Conversation
bifrost/core v1.8.0 raised its own go directive to 1.27.0, which Go propagates into every module in the workspace. #830 (v1.8.4) therefore rewrote 'go 1.26.5' to 'go 1.27.0' in all seven go.mod files and failed CI against go.work, which still says 1.26.5. Adopting v1.8.x is a Go 1.27 migration rather than a dependency bump: it needs authbridge/go.work bumped and the four digest-pinned golang:1.26-alpine builders in cmd/*/Dockerfile moved to 1.27. Those set GOWORK=off but not GOTOOLCHAIN, so they would not fail — they would silently download the 1.27 toolchain mid-build and ship images where a pinned 1.26 base bootstraps an unpinned 1.27. Expressed as a version range rather than update-types so v1.7.x patches keep flowing; #840 takes v1.7.15, the newest release still on go 1.26.5. There is no API break waiting — v1.8.4 was built and tested against authlib with go.work at 1.27.0 and the full suite passed — so this gates only the toolchain decision. Applied to the three directories that require bifrost and have a Dependabot entry: authlib directly, authbridge-proxy and authbridge-envoy indirectly via authlib. Assisted-By: Claude (Anthropic AI) <noreply@anthropic.com> Signed-off-by: Hai Huang <huang195@gmail.com>
|
Warning Review limit reachedNext included review available in 51 minutes. View limit detailsLimit details: You’ve used the included review currently available. You've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Review configuration: ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Team Run ID: 📒 Files selected for processing (1)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
esnible
left a comment
There was a problem hiding this comment.
Verified the premise and each factual claim against main and the head branch via the GitHub API.
Premise confirmed. main's .github/dependabot.yml has zero bifrost entries, and #838's diff contains zero bifrost lines despite its title — the bifrost half genuinely never landed. This follow-up is warranted.
Claims checked:
| Claim | Result |
|---|---|
authbridge/go.work still on 1.26.5 |
confirmed |
| Only authlib / proxy / envoy require bifrost | confirmed — authlib direct v1.7.15; proxy + envoy // indirect; abctl, storage/redis, cpex, praxis have none |
Builders are digest-pinned golang:1.26-alpine, GOWORK=off |
confirmed for proxy, envoy, praxis |
v1.7.x keeps flowing under the range |
confirmed — #840 (v1.7.15) merged; >=1.8.0 excludes only v1.8+ |
| Valid YAML, correct per-directory entries | parses clean; exactly the three intended directories gated |
Agreed that a version range beats update-types here — a semver-minor ignore would also have swallowed future v1.7.x patches, and this keeps them arriving while gating only the toolchain decision. The rationale comment on the authlib entry with cross-references from the two indirect entries is the right shape for something a future reader will need to know when to remove.
Areas reviewed: CI/config (YAML), security, commit + PR conventions
Author: huang195 (MEMBER — maintainer)
Agent/IDE config (.claude/.vscode): none
Commits: 1 commit, signed off: yes (Assisted-By, not Co-Authored-By, per repo policy)
CI status: passing (all 21 checks)
One non-blocking note for whoever makes the Go 1.27 move: the comment says the builders set GOWORK=off but not GOTOOLCHAIN — true for proxy, envoy, and praxis, but cmd/authbridge-cpex/Dockerfile sets GOTOOLCHAIN=auto explicitly. Same silent-download behavior the comment warns about, so the argument holds; just don't let that Dockerfile get skipped because it looks already handled.
Assisted-By: Claude Code
Summary
Follow-up to #838. That PR was merged before this commit landed on its branch, so the bifrost half of the gate never reached
main— only the glob half did. Same change, on its own PR.Stops Dependabot re-proposing bifrost v1.8.x weekly while its blocker is a toolchain decision nobody has made yet.
Why
bifrost/core v1.8.0 raised its own
godirective to1.27.0, which Go propagates into every module in the workspace. #830 (v1.8.4) therefore rewrotego 1.26.5→go 1.27.0in all sevengo.modfiles and failed CI againstgo.work, which still says1.26.5:Adopting v1.8.x is a Go 1.27 migration, not a dependency bump:
authbridge/go.work→1.27.0golang:1.26-alpinebuilders incmd/*/Dockerfile→ 1.27. Those setGOWORK=offbut notGOTOOLCHAIN, so they would not fail — they would silently download the 1.27 toolchain mid-build and ship images where a pinned 1.26 base bootstraps an unpinned 1.27.It buys nothing today: authlib touches three symbols from
core/schemas—ModelProvider,Anthropic,OpenAI— in one six-line function inplugins/contextguru/plugin.go. Nothing in bifrost 1.8 is reachable from our code, and #830 carried no security label.Scoped as a version range, not update-types
versions: [">=1.8.0"]so v1.7.x patches keep flowing. #840 takes v1.7.15, the newest release still ongo 1.26.5.There is no API break waiting: v1.8.4 was built and tested against authlib with
go.workat1.27.0and the full suite passed (48 packages). This gates only the toolchain decision — drop the range when that move is made deliberately.Applied to the three directories that require bifrost and have a Dependabot entry:
authlibdirectly,authbridge-proxyandauthbridge-envoyindirectly via authlib.abctlandstorage/redisdo not require it.Validated as parsable YAML with the expected ignore entries per directory, on top of the glob entries #838 added.
Related: #840 (bifrost v1.7.15), #830 (closed).
Assisted-By: Claude Code