Repository navigation
fix(release): trust Homebrew formula before auditing it - #5546
Conversation
Homebrew 7 refuses to load formulae from untrusted taps, and only `brew install` trusts a fully qualified formula automatically. The publish job runs `brew audit` first, so it failed on the first wrapper release since Homebrew 7. Add `brew audit --strict` to the dry-run package test so it catches this class of failure. Move its injected `keg_only` so the audit passes.
|
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. Walkthrough
Merge Risk:
|
Binary size checks failed❌ 2 violations · ✅ 1 passed
Details & how to fixViolations:
Add/update baselines:
[artifacts.bridge_wasm]
file_bytes = 26012882
gzip_bytes = 7684668
[artifacts.packed-program]
file_bytes = 39141528
gzip_bytes = 16087461Generated by |
Bumps the BAML language version from 0.24.0 to 0.25.0 with `scripts/baml-language-version bump --minor`. Only version strings change: 20 files, and `baml-language-version check` passes. The 0.24.0 canary release ([run 42111122075](https://github.com/BoundaryML/baml/actions/runs/42111122075)) failed at "Publish Homebrew wrapper formula" with "Refusing to load formula boundaryml/tap/baml from untrusted tap". BoundaryML#5546 fixed that. Because of the failure: - PyPI, npm and crates.io have 0.24.0. - The Go SDK mirror, the `pkg.boundaryml.com` manifests and the developer docs were not published. - The canary channel was not promoted. Rather than re-run 0.24.0, this releases 0.25.0 from current canary. That includes BoundaryML#5546 and the `package_name` setting (BoundaryML#5532, BoundaryML#5533). For the release oncall: the 0.3.0 wrapper got its GitHub release before the Homebrew step failed. RELEASING.md says a language release republishes the wrapper only when its version differs from the published one, so check that this release still publishes the Homebrew formula. 🤖 Generated with [Claude Code](https://claude.com/claude-code) <!-- This is an auto-generated comment: release notes by coderabbit.ai --> <!-- coderabbit-ai-generated:v1 --> ## Summary by CodeRabbit * **Release** * Updated BAML and its bridge packages and integrations to version 0.25.0. * The canary release channel remains unchanged. <!-- end of auto-generated comment: release notes by coderabbit.ai --> Co-authored-by: Claude Opus 5.5 <[email protected]>
Issue Reference
Failed canary release: https://github.com/BoundaryML/baml/actions/runs/42111122075/job/127577500967
Changes
brew trust --formula boundaryml/tap/bamlbeforebrew auditin the Homebrew publish job. Homebrew 7.0.0 made tap trust mandatory, and onlybrew installtrusts a fully qualified formula automatically. The last real publish was on 2026-09-11, before 7.0.0, so this is the first wrapper release to hit the refusal.brew trustandbrew audit --stricttoscripts/baml-test-homebrew-package. The dry run skippedaudit, so it passed on the same runner image.keg_onlyand lowercase its reason.--strictrejected the old placement and capitalization.Testing
Run locally on Homebrew 7.0.11 with the 0.2.6 artifacts from dry-run release 41981648965 (the 0.3.0 formula was not used):
brew tap boundaryml/tap, copy in the generated formula,brew audit --strict boundaryml/tap/baml. This reproduces the CI refusal (exit 1). Afterbrew trust --formula boundaryml/tap/baml, the same audit exits 0.python3 scripts/baml-test-homebrew-package --formula <formula> --wrapper-dir <wrapper>exits 0, covering trust, audit, install, test, and linkage.The publish job's
install,test, andlinkagesteps were not run against the real tap.Summary by CodeRabbit