crossbario / crossbario/autobahn-python

[FEATURE] Publish PyPy musllinux wheels (Alpine / musl libc)

Open
#1,906 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

CI-CD enhancement
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-base
    • patchelf + auditwheel), mirroring the manylinux PyPy Dockerfiles.
  • Add matrix entries (build_type: custom) to wheels-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.yml artifacts + add pp311-linux-<arch>-musllinux_1_2 fileset 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.