crossbario / crossbario/autobahn-python
[FEATURE] Publish PyPy musllinux wheels (Alpine / musl libc)
Nobody has claimed this yet.
- Dominant language
- Python
- Stars
- 2.5k
- Forks
- 768
- PR merge metrics
- No merged PRs in 30d
Description
Follow-up to #1877, which added CPython 3.11–3.14 musllinux_1_2 wheels. PyPy-on-musl
was deferred there because there is no official pypa musllinux PyPy image.
Why it was deferred
- The
quay.io/pypa/musllinux_1_2_{x86_64,aarch64}images ship only CPython under
/opt/python(3.9–3.15 + free-threaded variants) — no PyPy (verified locally on
asgard1 while implementing #1877). - The existing PyPy manylinux aarch64 wheels are built from custom images
(docker/Dockerfile.pypy-bookworm-manylinux-arm64,…trixie…,FROM pypy:3.11-*,
Debian/glibc). A musllinux PyPy build needs equivalent Alpine-based custom images.
Scope
Publish pp311 musllinux_1_2 wheels (x86_64 + aarch64) for PyPy 3.11, matching the
CPython musllinux coverage from #1877.
Tasks
- Add custom musllinux PyPy Dockerfile(s) under
docker/(Alpine + PyPy 3.11 +build-basepatchelf+auditwheel), mirroring the manylinux PyPy Dockerfiles.
- Add matrix entries (
build_type: custom) towheels-docker.yml(x86_64) and
wheels-arm64.yml(aarch64) using those images. - Verify the NVX CFFI extension builds on PyPy-musl (and re-check the PyPy-specific
PYUBJSON_NO_EXTENSION/ build-tools handling used by the manylinux PyPy path). - Wire
release.ymlartifacts + addpp311-linux-<arch>-musllinux_1_2fileset targets. - Update
docs/wheels-inventory.rst.
Related
- #1877 (CPython musllinux wheels).
- zlmdb: the PyPy-musllinux mirror follow-up.
Note: This work was drafted with AI assistance (Claude Code). Initiated and reviewed by me.
Checklist
- I have searched existing issues to avoid duplicates
- I have described the problem clearly
- I have provided use cases
- I have considered alternatives
- I have assessed impact and breaking changes
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by comparing the existing PyPy manylinux Dockerfiles under docker/ with the CPython musllinux entries in wheels-docker.yml and wheels-arm64.yml. Then trace release.yml and docs/wheels-inventory.rst to identify the artifact and fileset updates. Done means pp311 musllinux_1_2 wheels exist for x86_64 and aarch64, the NVX CFFI and PyPy-specific build handling work, and the release and inventory entries are updated.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, github-actions, python
- Domain
- build-system, ci-cd, release
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100