Repository navigation
ci(python): test musl and armv7 wheels - #496
Conversation
Quest-Claim: 5ab27f4c87e65bff
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
Co-Authored-By: GPT-6.1 Sol <noreply@openai.com>
|
Warning Review limit reachedYou've used all free OSS reviews for now. Wait for the free limit to reset to keep reviewing this public repository. Next included review available in 50 minutes. View limit details
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. |
There was a problem hiding this comment.
✅ No new issues found.
Reviewed changes — the full 4-file diff at the head commit, plus the dispatched python.yml run's logs for the three new targets.
- Container test steps for the musl and armv7 wheels —
python.ymlgains a docker-based "Test in container" step (nativepython:3.11-alpinefor both musl targets;python:3.11-slim-bookwormunder qemu-user withQEMU_CPU=cortex-a15for armv7) that installs mypy and optional pyca plus the built wheel, assertsarmv7l/32-bit pointers/NEON/no AES hardware, then runs the unit tests and stubtest before upload. The host "Test" step is correctly gated off with!matrix.container, and theqemu-user-staticinstall lands behindmatrix.cpu, so the musl jobs never pay for it. PYRIND_TEST_PYCAopt-out —test_api.pyimports pyca only when the env var isn't"0", decorates the ten pyca-comparison tests withrequires_pyca, and guards the one mixed assertion inline; the Aead class-level pyca map moves into its test so the module still imports without pyca. Grep confirms every pyca usage sits behind one of those guards, and onlytest_api.py(nottest_wycheproof.py/test_readme.py) imports pyca, so the independent suites run unskipped on armv7.- 32-bit portability — the oversized HKDF/PBKDF2 lengths now use
sys.maxsizeand expectOverflowErrorpastusizeon 32-bit hosts. Both match the actual bindings:rind-python/src/hkdf.rstakeslen: usizeand rejects> 255 * 64withWrongLengthon either word size, andrind-python/src/pbkdf2.rstakeslength: usize, so the too-long PBKDF2 lengths fail at conversion exactly as the test now expects. - Quest bookkeeping — deletes
quest/m2/adoption/pyrind-wheel-tests.mdand its README bullet; no references to the slug remain anywhere in the tree.
Verification beyond the diff: the dispatched run on this branch is green on all three new targets. The armv7 job log shows qemu-user-static installing, pip walking mypy down to the pure-Python mypy-1.18.2 wheel, the armv7 wheel installing, the armv7 Cortex-A15: NEON, no crypto extension assertion line printing, Ran 61 tests … OK (skipped=10), and Success: no issues found in 20 modules from stubtest. The PyPI claims check out too (cffi 2.1.0 ships no linux_armv7l wheel; both musl targets resolve cryptography and mypy binary-only), and the cortex-a15 tier and HWCAP_NEON (1 << 12) assertion agree with sh/armv7.sh and rind/src/low/arm/cpu.rs.
glm-5.3 | 𝕏

Problem
The musl x86_64/aarch64 and glibc armv7 wheels are uploaded without being imported or tested.
Approach
python:3.11-alpinecontainers on the matching runners.python:3.11-slim-bookwormunder qemu-user, explicitly selecting Cortex-A15. Assert armv7, 32-bit pointers, NEON, and no hardware AES. This exercises rind's NEON paths and portable AES, GHASH, SHA1, and SHA256.PYRIND_TEST_PYCA=0; the independent API tests still run. The workflow remains nightly, on demand, and release-only.Choices
cffidependency has none. Binary-only resolution fails for that dependency. Both musl targets resolve the full dependency set. The armv7 skip follows the quest's existing decision.Impact
Validation
nix develop -c quest gate just checkandnix develop -c quest gate just ci: pass, including all 61 Python tests and stubtest's 20 modules.PYRIND_TEST_PYCA=0run: pass, 61 tests with exactly 10 pyca comparisons skipped./opt/podman/bin/podman: No such file or directory. The new target executions have not been observed locally.nix develop -c quest gate just checkpasses, including 61 Python tests and stubtest's 20 modules.Alternatives
Caused by
Follow-ups
None.
Models
Size: S
Implementer: Codex, gpt-6.1-sol, xhigh effort
Review
Rewritten by
quest reviewafter each round.7eeb189d-48fc-4e18-a00a-25b39256a4c8, round 1I found no correctness bug in the CI and quest changes, and the new container test steps look sound, but I haven't confirmed that the armv7 run under qemu works in CI.