json-tools-rs: Add version 0.9.30 - #2107
Merged
Merged
Conversation
json-tools-rs is a maturin/PyO3 extension (SIMD JSON flatten/unflatten with Rayon parallelism and Arrow-backed DataFrame support). Upstream publishes wheels for x86_64/x86/aarch64/armv7/ppc64le but none for riscv64. Based on the `linux` job of upstream's maturin-ci.yml, narrowed to manylinux_riscv64: musllinux is dropped because rustup.rs ships no riscv64 musl toolchain, and cibuildwheel replaces maturin-action so the Rust toolchain is installed in-container. pyo3 0.29 carries no abi3 feature, so the build is per-interpreter. cp314t is left out: orjson, a hard runtime dependency, publishes no free-threaded wheel on PyPI or pypi.riseproject.dev.
Every port has to settle which interpreters its dependencies actually resolve for on riscv64 before writing the matrix, and the pip incantation for it is easy to get wrong: the manylinux_2_NN_riscv64 platform list differs per wheel, and without `--abi abi3 --abi none` pip rejects every abi3 and py3-none-any wheel so a resolvable set looks impossible. This wraps it as a loop over interpreter tags, printing the wheel each requirement resolves to or naming the interpreters to drop. json-tools-rs is the first user: it reports cp312/cp313/cp314 ok and cp314t unresolvable, because orjson publishes no free-threaded wheel.
luhenry
added a commit
that referenced
this pull request
Sep 19, 2026
luhenry
added a commit
that referenced
this pull request
Sep 19, 2026
Resolves a port's requirements for riscv64, per interpreter, against PyPI and our registry - answers "which interpreters can this port actually test on" before burning a CI cycle discovering a dependency caps the matrix. Landed here directly rather than riding along in a package PR (json-tools-rs, PR #2107), per the skill's own new-file scope rule.
General-purpose tooling doesn't belong in a package port PR (the skill's own rule: a port adds files only under .github/workflows/, docs/packages/ and patches/). Landed on main directly instead.
Contributor
|
luhenry
added a commit
that referenced
this pull request
Sep 19, 2026
… from PR #2110 json-tools-rs (#2107), fastecdsa (#2109), cvxopt (#2110), opencv-contrib-python-headless (#2111), nvtx (#2113) and bitsandbytes (#2094) were all merged by the maintainer while in-flight; .queue.yml still read in-review. Also found and stripped a leftover 'Generated by Claude Code' footer from #2110's description via the GitHub API - same issue already fixed on #2094/#2104/#2116.
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.
json-tools-rs0.9.30Compiles the crate's PyO3 extension: JSON flatten/unflatten with SIMD parsing, Rayon parallelism and Arrow-backed DataFrame support. Upstream publishes no riscv64 wheel.
Mirrors the
linuxjob of upstream'smaturin-ci.yml.Differs from upstream
maturin-action- the repo's standard riscv64 shape.maturin-actiondoes this itself.Matrix: cp312/cp313/cp314; no cp314t because orjson, a hard runtime dependency, publishes no free-threaded wheel on PyPI or pypi.riseproject.dev.
Testing
License: OK
Built on cp312; 215 passed, 129 skipped.