MagicStack / MagicStack/httptools

Add riscv64 (linux_riscv64) wheel to PyPI releases

未關閉 適合新手
#136 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

主要語言
Python
星號
1.3k
分支
107
PR 合併指標
30 天內沒有已合併 PR

描述

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
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:

# 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 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

貢獻指南

這個儲存庫沒有索引到貢獻指南

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

研究方向

從 .github/workflows/release.yml 開始,檢查現有的 cibw_arch 矩陣、平台排除項,以及針對 aarch64 的 QEMU 設定。按照描述新增 riscv64 支援,然後驗證 release workflow 會產生一個 linux_riscv64 wheel,同時不在 Windows 或 macOS 上啟用它。

由索引模型根據 Issue 內容生成。

評估

技術堆疊
github-actions, python
領域
build-system, ci-cd, release
Issue 類型
功能
難度
2/5
預估耗時
1-3 小時
活躍度
停滯
描述清晰度
描述清楚
新手友好度
68/100

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。