fix(build): bump pinned bun to 1.3.14 to repair macOS signing#294
Merged
Conversation
CI builds the release binaries with the bun version pinned in `.bun-version`, which was `1.3.13`. That version's `bun build --compile` emits an invalid macOS code signature, so on Apple Silicon the kernel `SIGKILL`s the executable the instant it launches (exit 137) before any CLI code runs. As a result every published macOS binary crashed on startup: `oo --version`, `oo install`, and the `install.sh` bootstrap (which runs `oo install` under `set -e`) all aborted, while `bun run index.ts` stayed fine because dev never produces a compiled, signed binary. bun 1.3.14 fixes the `--compile` binary-layout regression behind the broken signature. Verified by rebuilding the darwin-arm64 artifact with 1.3.14 through the real release script: it runs cleanly, whereas 1.3.13 reproduced the crash on the same machine and flags. A re-publish is still required — this only fixes future builds, not the already-uploaded binaries on the CDN. Signed-off-by: Kevin Cui <bh@bugs.cc>
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
Summary by CodeRabbit
WalkthroughThis change updates the pinned Bun version in the Related PRs: None identified. Suggested labels: dependencies, chore Suggested reviewers: None required for this trivial version bump. 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 passed)
✨ Finishing Touches✨ Simplify code
Comment |
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.
CI builds the release binaries with the bun version pinned in
.bun-version, which was1.3.13. That version'sbun build --compileemits an invalid macOS code signature, so on Apple Silicon the kernelSIGKILLs the executable the instant it launches (exit 137) before any CLI code runs. Every published macOS binary — not just 1.4.0 but 1.3.0 too — therefore crashed on startup:oo --version,oo install, and thecurl … | bashinstaller (whoseinstall.shrunsoo installunderset -euo pipefail) all aborted, whilebun run index.tsstayed fine because dev never produces a compiled, signed binary.Bumping the pin to
1.3.14fixes it — that release repairs thebun build --compilebinary-layout regression behind the broken signature. I confirmed the root cause by single-variable testing on one machine with identical flags: 1.3.13 reproduces the SIGKILL and 1.3.14 runs cleanly, independent of--bytecode/--minify(even a plain--compilefails on 1.3.13), and re-signing a 1.3.13 artifact withcodesign -f -s -also recovers it. Rebuilding the darwin-arm64 binary through the real release script with the new pin produces a workingoo.Note this only fixes future builds — a re-publish is still required to replace the already-broken macOS binaries currently served from the CDN.
Follow-ups worth doing separately, so a regression like this can't ship silently again:
codesign -f -s -fallback for darwin targets incontrib/ci/npm-packages.ts, so a future bun signing regression is repaired in-pipeline.oo --versionon the compiled artifact — CI currently builds the binaries but never executes them, which is exactly why this shipped undetected.