Add musl CLI artifacts to release workflow#1610
Conversation
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 61624dfef3
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| BUILD_ARGS=(swift build -c release --product CodexBarCLI) | ||
| if [[ -n "${{ matrix.build-arch }}" ]]; then | ||
| if [[ -n "${{ matrix.swift-sdk }}" ]]; then | ||
| BUILD_ARGS+=(--swift-sdk "${{ matrix.swift-sdk }}" --triple "${{ matrix.swift-sdk-triple }}") |
There was a problem hiding this comment.
Select the musl SDK by target triple
For the musl matrix entries, this passes the bundle ID to --swift-sdk and relies on --triple to choose x86_64 vs aarch64. Swift's Static Linux SDK guide builds these targets by selecting the target triple directly (--swift-sdk x86_64-swift-linux-musl / aarch64-swift-linux-musl), and SwiftPM has a documented bug where bundle-ID + --triple can nondeterministically pick the wrong sub-SDK (swiftlang/swift-package-manager#10034). In this release workflow that makes the new musl jobs flaky or able to compile against the wrong sysroot; use matrix.swift-sdk-triple as the --swift-sdk value here and in the matching SHOW_BIN_ARGS path instead of adding --triple.
Useful? React with 👍 / 👎.
|
Codex review: needs maintainer review before merge. Reviewed June 18, 2026, 9:52 AM ET / 13:52 UTC. Summary Reproducibility: not applicable. as a PR review. The linked Linux portability issue is source and release-artifact reproducible, and this branch is assessed through workflow and downloaded artifact proof rather than a local bug repro. Review metrics: 3 noteworthy metrics.
Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review detailsBest possible solution: Land this after maintainer acceptance of the pinned static SDK and SQLite release inputs, with glibc/Homebrew outputs preserved and release proof available for both musl architectures. Do we have a high-confidence way to reproduce the issue? Not applicable as a PR review. The linked Linux portability issue is source and release-artifact reproducible, and this branch is assessed through workflow and downloaded artifact proof rather than a local bug repro. Is this the best way to solve the issue? Mostly yes: adding parallel musl tarballs preserves the existing glibc and Homebrew contract while solving older-glibc and NixOS portability, but the SQLite release input is a maintainer acceptance decision. AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 016f3b9e1314. Label changesLabel changes:
Label justifications:
Evidence reviewedSecurity concerns:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
a3e2175 to
e544795
Compare
064fec4 to
5560ab5
Compare
e544795 to
272807b
Compare
Co-authored-by: Yuxin Qiao <[email protected]>
272807b to
462d05b
Compare
|
Maintainer sign-off: accept the pinned Swift static SDK and checksummed SQLite source as release inputs for the optional musl artifacts. Existing macOS, glibc Linux, and Homebrew contracts remain unchanged. Landing proof for exact head
Public model identifier gate: N/A; workflow/docs-only release artifact change, no model-bearing content. |
Refs #1524
Third step of the musl CLI stack. #1609 is landed; this PR is now rebased and retargeted to
main.Summary
--help, config validation, and version reportinglinux-musl-{x86_64,aarch64}tarballs and checksumsThe per-architecture SDK narrowing is intentional: live static-SDK proof showed that
--triplealone can select headers from the other bundled architecture during dependency compilation.Homebrew continues to consume the existing glibc Linux artifacts; this PR does not change that runtime contract.
Verification
.mac-release.envshell syntaxmake checklinux-musl-aarch64artifact naming passed462d05bb; its release diff is content-identical to workflow-proven head272807bc(only Git blob IDs changed with the new base)