pycryptodome: add build-pycryptodome.yml for riscv64 wheels - #358
Merged
Conversation
pycryptodome ships no riscv64 wheels on PyPI. Mirror upstream's wheels.yml (cibuildwheel from a tag checkout, `python -m Crypto.SelfTest --skip-slow-tests`), narrowed to manylinux_riscv64. setup.py sets bdist_wheel's py_limited_api to cp37 unless the interpreter is free-threaded, so the matrix collapses to one cp37-abi3 wheel (built on cp312, re-tested on cp313/cp314) plus cp314t.
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.
pycryptodome ships no riscv64 wheels on PyPI. This mirrors upstream's
wheels.yml
— cibuildwheel over a tag checkout, tested with
python -m Crypto.SelfTest --skip-slow-tests— narrowed tomanylinux_riscv64.setup.pypassespy_limited_api = cp37tobdist_wheelunless the interpreteris free-threaded, so the matrix collapses (gotcha 11) to two jobs:
build_abi3— onecp37-abi3wheel built on cp312 and re-tested on cp313/cp314via cibuildwheel's
find_compatible_wheel;build_freethreaded—cp314t(the image has no cp313t, so it is the onlyfree-threaded target even though upstream also publishes cp313t).
CIBW_TEST_REQUIRESadds upstream'srequirements-test.txtpin(
pycryptodome-test-vectors==1.0.22); without it SelfTest skips its Wycheproofvectors (2802 tests instead of 8035).
Local validation: both wheels build under QEMU riscv64 in
quay.io/pypa/manylinux_2_39_riscv64(cp37-abi3from cp312-cp312 andcp314-cp314t), and the wheel carriesLICENSE.rst+ 40.sofiles. Theextensions are
optional=Falseand every.sois loaded throughCrypto.Util._raw_apiwith no pure-Python fallback, so gotcha 20 does not apply— a missing
.sois a hard import error, not a silent degrade.