Repository navigation
feat: add uv on musllinux_riscv64 - #1969
Merged
Merged
Conversation
mayeut
enabled auto-merge (squash)
July 11, 2026 18:59
This was referenced Aug 11, 2026
pull Bot
pushed a commit
to Mu-L/msgspec
that referenced
this pull request
Aug 11, 2026
) The 0.22.0 release run died on `cp310-musllinux_riscv64` with `Command ['which', 'uv'] failed with code 1`, from my riscv64 matrix entry. All six manylinux riscv64 wheels in that same job built, repaired and tested fine, so it is specific to the musllinux image. pypa/manylinux used to skip installing uv in the musllinux riscv64 image. At the commit the pinned image was built from (`8dbfa8e`, 4 June), `docker/build_scripts/finalize.sh` had: ``` musllinux*_riscv64-uv) continue;; # uv doesn't provide musl riscv64 wheels due to Rust issues ``` That was removed by pypa/manylinux#1969 on 11 July, and their image test suite now runs `uv venv` / `uv pip install` inside musllinux riscv64. The comment was already out of date when it was written: uv has published a `manylinux_2_31_riscv64.musllinux_1_1_riscv64` wheel since 0.11.18 (1 June). The pins differ across cibuildwheel releases: | cibuildwheel | `musllinux_1_2_riscv64` image | uv present | |---|---|---| | 4.1.0 | `2026.06.04-1` | no | | 4.2.0 | `2026.08.04-1` | yes | So `build-frontend = "build[uv]"` has nothing to find on 4.1.0. This bumps both `uvx --from` pins to 4.2.0. 4.2.0 builds CPython 3.15 by default, but `.cibuildwheel.toml` sets an explicit `build = "cp310-* cp311-* cp312-* cp313-* cp314-* cp314t-*"` list, so no new target appears. The rest of that release is Pyodide 314.0.4, a GraalPy pip hold, and download retries. I have not run this. The reasoning is from the failing job log and the manylinux source, not from a green build. CI here will not test it either unless someone adds the `build-riscv64` label, since the riscv64 job is excluded on unlabelled PRs, and even then `CIBW_SKIP` drops musllinux outside a release build. So the honest state is that only a release run proves it. If you would rather not move cibuildwheel right before a release, `musllinux-riscv64-image` in `.cibuildwheel.toml` pins just that one image and leaves everything else alone. Two things worth knowing either way: The riscv64 job is gated behind the `build-riscv64` label on PRs, and `CIBW_SKIP` drops musllinux unless `build-all` is set. So nothing had ever exercised musllinux riscv64 until the release turned `build-all` on. Whatever you decide here, that combination will keep hiding riscv64 musllinux breakage until release day. Dependabot covers `github-actions` and `uv`, but the cibuildwheel version is an inline `uvx --from` argument rather than a tracked dependency, which is why it sat at 4.1.0. Moving it into the uv ecosystem somehow would stop the next one, though I do not have a clean suggestion for how. Refs msgspec#1134, msgspec#987 Signed-off-by: Bruno Verachten <[email protected]> Co-authored-by: sobolevn <[email protected]>
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.
No description provided.