googleapis / googleapis/google-cloud-python

Add riscv64 (RISC-V) manylinux wheel builds

Ouverte
#16,517 1 commentaire 0 réactions 0 personnes assignées Voir sur GitHub
api: storage priority: p3 type: feature request
Langage dominant
Python
Étoiles
5.4k
Forks
1.8k
Merge moyen
3 j 4 h
PR mergées (30 j)
122

Description

**Is your feature request related to a problem? Please describe.**

There are no pre-built wheels for the `linux_riscv64` platform. Users on RISC-V hardware (e.g., SiFive boards, StarFive VisionFive 2, Milk-V) must compile google-crc32c from source, which requires a working C toolchain, cmake, and the google/crc32c submodule. This is a significant barrier for RISC-V adoption since many users expect `pip install google-crc32c` to just work.

**Describe the solution you'd like**

Add `riscv64` to the manylinux wheel build matrix using `quay.io/pypa/manylinux_2_28_riscv64` (the official PyPA manylinux image for RISC-V). The existing `build_on_centos.sh` script already works inside manylinux_2_28 containers, and QEMU user-mode emulation makes cross-building straightforward.

Additionally, add a GitHub Actions workflow that builds and tests riscv64 wheels via QEMU, so CI coverage is visible on pull requests.

**Describe alternatives you've considered**

- Building from source on native riscv64 hardware: works but is slow and requires users to have build tools installed.
- Cross-compiling with a riscv64 GCC toolchain outside Docker: more complex setup and harder to produce manylinux-compliant wheels.

**Additional context**

- The `manylinux_2_28_riscv64` image is officially maintained by PyPA: https://quay.io/repository/pypa/manylinux_2_28_riscv64
- The google/crc32c C library builds cleanly on riscv64 with cmake
- Several Python ecosystem packages (numpy, scipy, etc.) are adding riscv64 wheel support

Guide de contribution

Ouvrir le guide de contribution

Évaluation

Cette issue n'a pas encore été évaluée.

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.