Skip to content

simplejson: add build-simplejson.yml for riscv64 wheels - #394

Merged
luhenry merged 1 commit into
mainfrom
simplejson
Aug 25, 2026
Merged

simplejson: add build-simplejson.yml for riscv64 wheels#394
luhenry merged 1 commit into
mainfrom
simplejson

Conversation

@luhenry

@luhenry luhenry commented Aug 25, 2026

Copy link
Copy Markdown
Member

Adds .github/workflows/build-simplejson.yml, a riscv64 wheel build for
simplejson 4.1.1.

Mirrors the build_wheels job of upstream's
build-and-deploy.yml,
narrowed to manylinux_riscv64: plain build-from-checkout with
pypa/cibuildwheel, upstream's own CIBW_TEST_COMMAND
(python -m simplejson.tests._cibw_runner "{project}"), and the riscv64
manylinux image as the only override.

simplejson is pure Python with an optional _speedups C extension, so the
silent-degradation trap applies — upstream already closes it: setup.py sets
REQUIRE_SPEEDUPS whenever CIBUILDWHEEL=1 (cibuildwheel exports it into the
container), and the bundled suite fails via TestMissingSpeedups if the
extension did not load. The wheel is still checked for the .so before upload.

Matrix is per-interpreter cp312/cp313/cp314/cp314t — PyPI ships separate
cpXY-cpXY wheels including cp314-cp314t, no abi3 tag.

Validated locally under QEMU riscv64 against quay.io/pypa/manylinux_2_39_riscv64
(cp312): wheel builds, _speedups.*.so present, auditwheel repairs to
manylinux_2_31_riscv64.manylinux_2_39_riscv64, and the suite runs 444 tests
(71 skipped) with 0 failures against the installed wheel.

Trigger: simplejson:4.1.1

Add a riscv64 wheel build for simplejson, mirroring the `build_wheels`
job of upstream's build-and-deploy.yml narrowed to manylinux_riscv64.

simplejson is pure Python with an optional `_speedups` C extension, so
gotcha 20's silent-degradation trap applies — but upstream already
closes it: setup.py treats the extension as required whenever
`CIBUILDWHEEL=1` is set (cibuildwheel exports it into the container),
and the bundled suite fails via TestMissingSpeedups if it did not load.
The wheel is still checked for the .so before upload.

Test command is upstream's own `simplejson.tests._cibw_runner`; the
suite ships inside the wheel, so cibuildwheel's empty test cwd runs it
against the installed extension. Validated under QEMU riscv64 with the
manylinux_2_39_riscv64 image: 444 tests, 71 skipped, 0 failures.
@luhenry luhenry changed the title workflows: build-simplejson: add simplejson: add build-simplejson.yml for riscv64 wheels Aug 25, 2026
@luhenry
luhenry merged commit 2eff07c into main Aug 25, 2026
13 of 18 checks passed
@luhenry
luhenry deleted the simplejson branch August 25, 2026 23:06
@luhenry luhenry linked an issue Aug 26, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

simplejson riscv64 support

1 participant