Conversation
ormsgpack is a PyO3/maturin msgpack serializer. Upstream's release workflow drives maturin-action, which has no riscv64 path, so this is the standard build-from-checkout cibuildwheel shape with the Rust toolchain installed in the manylinux container, on the same pinned nightly upstream releases with: the `unstable-simd` feature needs `feature(core_intrinsics)` plus bytecount's portable-SIMD backend, both nightly-only. Both are architecture agnostic, so unlike upstream's armv7 job riscv64 keeps `unstable-simd` enabled. musllinux is dropped: rustup publishes rust-std but no rustc/cargo host toolchain for riscv64gc-unknown-linux-musl. Tests mirror `uv run --no-sync pytest` from upstream's build jobs, with the dev/numpy dependency groups reduced to what tests/ actually imports; numpy resolves from pypi.riseproject.dev. Validated under QEMU riscv64 in quay.io/pypa/manylinux_2_39_riscv64: the cp312 wheel builds with `--features unstable-simd`, auditwheel-repairs to manylinux_2_39_riscv64 carrying LICENSE-APACHE/LICENSE-MIT, and the suite runs 516 passed, 1 skipped.
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.
Adds
.github/workflows/build-ormsgpack.yml, building ormsgpack 1.12.2 riscv64 wheels for cp312/cp313/cp314/cp314t.Shape
ormsgpack is a PyO3/maturin extension. Upstream's
release.ymldrivesPyO3/maturin-action, which has no riscv64 path, so this is the standard build-from-checkout cibuildwheel shape: check outormsgpack/ormsgpackat the tag, install the Rust toolchain in the manylinux container viaCIBW_BEFORE_ALL_LINUX, and pass--features unstable-simdto the maturin PEP 517 backend throughMATURIN_PEP517_ARGS.The toolchain is pinned to
nightly-2025-11-28, theRUST_TOOLCHAINupstream releases 1.12.2 with. Nightly is required byunstable-simd, which turns onfeature(core_intrinsics)insrc/lib.rsandbytecount/generic-simd(feature(portable_simd)). Both are architecture agnostic, so — unlike upstream's armv7 job, which drops the feature — riscv64 keeps it. rustup publishes ariscv64gc-unknown-linux-gnuhost toolchain for that date.musllinux is dropped: rustup's nightly manifest has
rust-stdbut norustc/cargoforriscv64gc-unknown-linux-musl, so there is no host toolchain to build with inside a musl container (same reason as tiktoken and fastuuid).Tests mirror upstream's
uv run --no-sync pytest, with thedev/numpydependency groups reduced to whattests/actually imports (the rest are lint and typing tools). numpy has no riscv64 wheel on public PyPI, soPIP_EXTRA_INDEX_URLpoints the container atpypi.riseproject.dev.Local validation
actionlintclean apart from the expectedubuntu-24.04-riscvlabel warning. Full build + test cycle run under QEMU riscv64 inquay.io/pypa/manylinux_2_39_riscv64:cargo check --features unstable-simdcompiles onrustc 1.93.0-nightly (c86564c41 2025-11-27), hostriscv64gc-unknown-linux-gnu.python -m build --wheelwithMATURIN_PEP517_ARGS="--features unstable-simd"producesormsgpack-1.12.2-cp312-cp312-linux_riscv64.whl;auditwheel repairretags itmanylinux_2_34_riscv64.manylinux_2_39_riscv64and it carriesormsgpack/ormsgpack.cpython-312-riscv64-linux-gnu.soplusdist-info/licenses/LICENSE-APACHEandLICENSE-MIT(licensing check: the wheel ships both of upstream's licences, no patch needed).test-sourcesdoes and runningpython -m pytest tests: 516 passed, 1 skipped.