Repository navigation
feat: build and test musllinux wheels for Alpine/musl platforms - #16
Merged
Merged
Conversation
denoland ships musl prebuilts of rusty_v8 since v150.2.0 (our deno_core 0.412 bump landed on v150.4.0, just past the threshold), and musl has no glibc-style symbol versioning, so the upstream archives are directly consumable - verified via whole-archive -z,defs link tests inside musllinux_1_2 containers on both architectures. - linux-musl job: musllinux_1_2 wheels for x86_64 + aarch64 on free runners; RUSTFLAGS=-C target-feature=-crt-static since extension modules need dynamic musl. - test-wheels-musl: full 3.10-3.14 matrix inside python:alpine containers via docker run (node-based actions can't execute on musl). - docs: musl/Alpine now listed as supported.
…lchain action - Extract the Cargo.lock v8-version parse (4 copies) into .github/scripts/v8-version.sh. - Derive target triple and Dockerfile from the arch name in build-v8-archive.yml, replacing the inline fromJSON matrix objects. - Keep the glibc-drift story in one place (Dockerfile.x86_64); trim the retellings elsewhere to one-liners. - Drop dtolnay/rust-toolchain from the macos job: rust-toolchain.toml + preinstalled rustup already pin the version.
…yPy classifier - upload-artifact@v4 targets deprecated Node 20 (CI annotation); bump both artifact actions to current majors and the stray checkout@v4 in sdist to v5. - Remove the PyPy classifier: abi3 wheels only serve CPython; PyPy would be sdist-only and is untested.
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.
Why
rusty_v8 ships musl prebuilts since v150.2.0 — and the deno_core 0.412 bump (#10) landed us on v150.4.0, just past that threshold. musl has no glibc-style symbol versioning, so the entire problem that forces our self-hosted gnu archives doesn't exist here: upstream assets are directly consumable, making Alpine support a pure CI addition.
flowchart LR GNUREL[("librusty_v8-v{ver} release (ours)")] -.->|RUSTY_V8_ARCHIVE| GNU[linux: manylinux_2_28 wheels] UPREL[("denoland rusty_v8 release")] -.->|auto-download| MUSL[linux-musl: musllinux_1_2 wheels] GNU --> T1[test 3.10-3.14 x 2 arches] MUSL --> T2[test 3.10-3.14 x 2 arches, python:alpine]Mechanism
Blast radius
CI.ymllinux-musl(2 wheels),test-wheels-musl(10-job matrix);releasegains depsmusllinux_1_2_{x86_64,aarch64}, cp310-abi3)verify-v8-archive.ymlEvidence
-z,defstest insidemusllinux_1_2containers, both arches — run 37123820138Also in this PR (housekeeping)
.github/scripts/v8-version.shbuild-v8-archive.ymlmatrix simplified.github/dtolnay/rust-toolchainfrom macos jobrust-toolchain.toml+ preinstalled rustup already pin the versionupload-artifactv4→v7,download-artifactv6→v8, straycheckoutv4→v5Each increment validated by branch dispatches of CI + verify (all green).