-
Notifications
You must be signed in to change notification settings - Fork 5.5k
Description
Proposed new feature or change:
I'm opening this issue to start the discussion on what it would take to get the tornado project to build and distribute riscv64 manylinux images.
Why now?
Until recently, it wasn't really possible for Python projects to build binary riscv64 wheels and to distribute those wheels via PyPI. Manylinux and cibuildwheel did not support riscv64 and PyPI did not allow riscv64 wheels to be uploaded. This all changed during the summer of 2025, when cibuildwheel (3.12), manylinux and warehouse all gained riscv64 support. Encouragingly, some projects (lxml, uv, maturin, and critically ninja) have already started uploading riscv64 wheels to PyPI.
Does tornado work on riscv64?
Yes. RISE has been building and distributing tornado manylinux wheels for riscv64 for over a year (since version 6.4.1). Tested builds are available for riscv64 here.
What needs to be done?
If I am correct, there is no available native riscv-64 runner in GitHub. So build and test will involve emulation though QEMU. I already did some tests on my end and we need to:
- skip
test_unquote_largeandtest_request_timeout - increase
ASYNC_TEST_TIMEOUTto 30 seconds because of emulation
Only a few additions to the github action file is needed to build and test a riscv64 wheel.
We also need a fairly recent version of cibuildwheel, to fix python 3.14 issues on riscv64
Note: riscv64 builds are slower due to emulation and currently take about 30 minutes.
I have a PR ready for review.
How can RISE help?
RISE is aware of the additional burden of supporting a new architecture, as mentioned scientific-python/summit-2025-nov#4. The RISE project should be able to assist by providing engineering resources, to debug riscv64 specific issues, and potentially native riscv64 runners, if required.