fix(installer): bootstrap Linux with musl wrapper - #4632
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 (1)
🚧 Files skipped from review as they are similar to previous changes (1)
Included review availability: Your plan provides up to 8 included reviews per hour; 5 remain after this review. 📝 WalkthroughWalkthroughThe installer now selects musl wrappers for Linux x86_64 and ARM targets. Offline tests cover platform mappings. The release workflow verifies libc independence and installs the wrapper inside pinned Debian Bookworm without network access. ChangesInstaller compatibility
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This change selects the static musl wrapper for supported Linux installs while preserving existing platform and release behavior; no actionable merge-blocking risk remains after normal checks and review. Sequence Diagram(s)sequenceDiagram
participant build-wrapper
participant DebianBookworm
participant install.sh
participant baml
build-wrapper->>DebianBookworm: Start pinned container with network disabled
build-wrapper->>build-wrapper: Check binary with readelf
DebianBookworm->>install.sh: Run --wrapper-only
install.sh->>DebianBookworm: Install musl wrapper from local manifest
DebianBookworm->>baml: Run --version
Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
Full details: Linked Issues checkExplanation The changes address issue Full details: Out of Scope Changes checkExplanation The workflow smoke test, installer regression test, and release-contract documentation directly support the Linux musl wrapper change and its compatibility requirements. No unrelated code changes are evident. ✨ 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 |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
Binary size checks passed✅ 7 passed
Generated by |
Fixes #4624
Summary
Root cause
scripts/install.shselected the GNU wrapper before any wrapper-side target detection could run. The published wrapper was built with a GLIBC 2.38/2.39 floor, so Debian bookworm (GLIBC 2.36) failed before selecting a toolchain. Lowering only the wrapper build floor would still leave the GNU toolchain exposed to the same runner-dependent floor. The release contract already publishes required static musl wrappers and toolchains for both Linux architectures.Verification
debian@sha256:abd67ffcfa541b485a3dff59865ab629aa048a6c613e639d36e7456b0b229241with GLIBC 2.36x86_64-unknown-linux-muslwrapper and completed installer bootstrap to toolchain 0.17.0 in the pinned imagepython3 -m unittest discover -s scripts/tests -p 'test_*.py' -v(52 passed)cargo test --manifest-path baml_language/Cargo.toml -p baml_release -p baml(91 passed)git diff --checkSummary by CodeRabbit
Bug Fixes
Tests