MagicStack / MagicStack/httptools

Add riscv64 (linux_riscv64) wheel to PyPI releases

Aberta Para iniciantes
#136 0 comentários 0 reações 0 responsáveis Ver no GitHub

Ninguém assumiu esta issue ainda.

Linguagem predominante
Python
Estrelas
1.3k
Forks
107
Métricas de merge de PRs
Nenhum PR com merge em 30d

Descrição

## Add `linux_riscv64` wheel to PyPI releases

### Summary

`pip install httptools` on riscv64 Linux currently requires building from source (~2 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** | [`httptools-0.7.1-cp313-cp313-linux_riscv64.whl`](https://github.com/gounthar/riscv64-python-wheels/releases/download/v2026.03.11-cp313/httptools-0.7.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** | ~2 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: [auto64, aarch64, universal2, riscv64]

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

QEMU action is already present (for aarch64).

### 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
- maturin-action supports `riscv64gc-unknown-linux-gnu` cross-compilation
- 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

Guia de contribuição

Nenhum guia de contribuição indexado para este repositório

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Direção de pesquisa

Comece com .github/workflows/release.yml e inspecione a matriz cibw_arch existente, as exclusões de plataforma e a configuração do QEMU para aarch64. Adicione o suporte a riscv64 conforme descrito e, em seguida, verifique se o workflow de release produz uma wheel linux_riscv64 sem habilitá-la no Windows ou no macOS.

Escrita pelo modelo de indexação a partir do texto da issue.

Avaliação

Stack de tecnologia
github-actions, python
Domínio
build-system, ci-cd, release
Tipo de issue
Funcionalidade
Dificuldade
2/5
Tempo estimado
1-3 horas
Status de atividade
Estagnada
Clareza
Claramente especificada
Facilidade para iniciantes
68/100

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.