MagicStack / MagicStack/uvloop
Add riscv64 (linux_riscv64) wheel to PyPI releases
還沒有人認領這個 Issue。
- 主要語言
- Cython
- 星號
- 11.9k
- 分支
- 616
- PR 合併指標
- 30 天內沒有已合併 PR
描述
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_riscv64images are available onquay.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
貢獻指南
這個儲存庫沒有索引到貢獻指南
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
研究方向
從 .github/workflows/release.yml 開始,檢查 cibw_arch 矩陣、平台排除項目和現有的 wheel 測試。加入 issue 中描述的 riscv64 專用 QEMU 設定和 CIBW_TEST_SKIP 項目,然後確認 release workflow 能產生 linux_riscv64 wheel,且不會在模擬環境下執行事件迴圈測試。
由索引模型根據 Issue 內容生成。
評估
- 技術堆疊
- github-actions, python
- 領域
- build-system, ci-cd, release
- Issue 類型
- 功能
- 難度
- 3/5
- 預估耗時
- 1-2 天
- 活躍度
- 停滯
- 描述清晰度
- 描述清楚
- 新手友好度
- 55/100