Repository navigation
fix(release): harden Go mirror publication - #4161
Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
⏭️ Performance benchmarks were skippedPerf benchmarks (CodSpeed) are opt-in on pull requests — they no longer run on every push. They always run automatically after merge to To run them on this PR, do any of the following, then push a commit (or re-run CI):
|
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Repository UI Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (5)
📝 WalkthroughWalkthroughThe release workflow now validates Go runtime version stamping and immutable manifests before publishing the Go module, then promotes channel metadata only after Go publishing and smoke tests succeed. ChangesGo runtime release
Estimated code review effort: 4 (Complex) | ~45 minutes Sequence Diagram(s)sequenceDiagram
participant BuildGoSDK
participant PublishPkgBoundaryML
participant PublishGoSDK
participant GoProxy
participant SmokeGoRelease
participant PublishPkgChannel
BuildGoSDK->>PublishPkgBoundaryML: generate and upload release manifests
PublishPkgBoundaryML->>PublishGoSDK: expose exact-version manifest prerequisite
PublishGoSDK->>GoProxy: publish immutable Go module
SmokeGoRelease->>GoProxy: download published module
PublishGoSDK->>PublishPkgChannel: permit channel promotion
SmokeGoRelease->>PublishPkgChannel: provide smoke-test success
PublishPkgChannel->>PublishPkgChannel: upload mutable channel manifest
Possibly related PRs
Suggested reviewers: Poem
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
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 |
Binary size checks passed✅ 7 passed
Generated by |
Summary
Hardens the
baml_languagerelease path that publishesgithub.com/boundaryml/baml-goto the mirror repository.proxy.golang.orgwithout a direct Git fallbackcanary/nightlymanifest only after clean Linux, macOS, and Windows consumers load the released native runtime and execute a generated BAML callEnd-user behavior
Before this change, a Go module tag could become permanently visible through the Go proxy while its required runtime manifest was absent. A same-size, same-mtime
version.gocould also be skipped byrsync, leaving a new tag with the preceding release's embedded fallback version.After this change, publication proceeds in this order:
A failed publish or smoke leaves the previous channel release active instead of advertising an incomplete Go release.
Verification
actionlint .github/workflows/release-baml-language.yml .github/workflows/build2-bridge-cffi.reusable.yamlscripts/baml-language-version checkgo test ./...andgo vet ./...inbaml_language/sdks/go/baml_gocargo test -p sdkgen_go— 84 passedcargo test -p baml_release— 39 passeda/brelease artifact patternPreviously published immutable tags are intentionally unchanged; the hardened guarantees apply to newly versioned releases.
Summary by CodeRabbit
Release Process
Reliability