MagicStack / MagicStack/uvloop

Add riscv64 (linux_riscv64) wheel to PyPI releases

Abierto
#732 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Lenguaje dominante
Cython
Estrellas
11.9k
Forks
616
Métricas de merge de PR
Sin PR fusionados en 30 d

Descripción

Add linux_riscv64 wheel to PyPI releases

Summary

pip install uvloop on riscv64 Linux currently requires building from source (~5 min on a 1.6 GHz RISC-V SoC). Adding linux_riscv64 to the wheel build matrix would give riscv64 users a prebuilt wheel.

Evidence
Tested wheel uvloop-0.22.1-cp313-cp313-linux_riscv64.whl
Hardware BananaPi F3 (SpacemiT K1, rv64imafdcv, 8 cores @ 1.6 GHz, 16 GB RAM)
Python 3.13 (CPython)
Build system cibuildwheel
Build time ~5 min (native, on hardware)

The wheel imports and passes basic smoke tests on riscv64 Linux.

Suggested CI change

Workflow: .github/workflows/release.yml

Add riscv64 to the matrix:

# In strategy.matrix.cibw_arch, add riscv64:
cibw_arch: [x86_64, aarch64, universal2, riscv64]

# Add exclude for riscv64 on non-linux:
exclude:
  - os: macos-latest
    cibw_arch: riscv64

Add QEMU step and test skip:

- name: Set up QEMU
  if: matrix.cibw_arch == 'riscv64'
  uses: docker/setup-qemu-action@v3
  with:
    platforms: riscv64

# Add to env:
CIBW_TEST_SKIP: '*-linux_riscv64'

libuv has riscv64 support since v1.44. Event-loop tests may hang under QEMU, hence the test skip recommendation.

Ecosystem context
  • manylinux_2_28_riscv64 images are available on quay.io/pypa/ (landed in pypa/manylinux, 2025)
  • cibuildwheel 3.x supports riscv64 via QEMU emulation
  • auditwheel supports riscv64 platform tags
  • Packages already shipping riscv64 wheels on PyPI: aiohttp, yarl, regex, markupsafe, charset-normalizer, rpds-py, multidict, propcache, watchfiles, rignore, setproctitle
  • RISC-V hardware is shipping: SiFive HiFive, SpacemiT K1/K3, Sophgo SG2044 (64-core)
Our temporary index

While upstream support is pending, we maintain a PEP 503 index with 50+ riscv64 wheels for the Python ML/AI stack, built natively on RISC-V hardware.

Tracking repo: https://github.com/gounthar/riscv64-python-wheels

Guía de contribución

No hay ninguna guía de contribución indexada para este repositorio

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Línea de trabajo

Comienza con .github/workflows/release.yml e inspecciona la matriz cibw_arch, las exclusiones de plataforma y las pruebas de wheel existentes. Añade la configuración de QEMU específica para riscv64 y la entrada CIBW_TEST_SKIP descritas en el issue, y verifica después que el workflow de release produzca un wheel linux_riscv64 sin ejecutar pruebas del bucle de eventos bajo emulación.

Escrito por el modelo de indexación a partir del texto del issue.

Evaluación

Stack tecnológico
github-actions, python
Área
build-system, ci-cd, release
Tipo de issue
Nueva funcionalidad
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bien especificado
Aptitud para principiantes
55/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.