MagicStack / MagicStack/uvloop
Add riscv64 (linux_riscv64) wheel to PyPI releases
Personne n'a encore pris cette issue.
- Langage dominant
- Cython
- Étoiles
- 11.9k
- Forks
- 616
- Métriques de merge des PR
- Aucune PR mergée en 30 j
Description
## 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`](https://github.com/gounthar/riscv64-python-wheels/releases/download/v2026.03.11-cp313/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:
```yaml
# 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:
```yaml
- 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](https://gounthar.github.io/riscv64-python-wheels/simple/) 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
Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Commencez par .github/workflows/release.yml et examinez la matrice cibw_arch, les exclusions de plateforme et les tests de wheel existants. Ajoutez la configuration QEMU spécifique à riscv64 et l’entrée CIBW_TEST_SKIP décrites dans l’issue, puis vérifiez que le workflow de release produit un wheel linux_riscv64 sans exécuter les tests de boucle d’événements sous émulation.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- github-actions, python
- Domaine
- build-system, ci-cd, release
- Type d'issue
- Fonctionnalité
- Difficulté
- 3/5
- Temps estimé
- 1-2 jours
- Activité
- À l'abandon
- Clarté
- Clairement spécifiée
- Accessibilité débutants
- 55/100