Skip to content

grpcio-tools: Add riscv64 wheel build - #843

Draft
luhenry wants to merge 1 commit into
mainfrom
grpcio-tools
Draft

grpcio-tools: Add riscv64 wheel build#843
luhenry wants to merge 1 commit into
mainfrom
grpcio-tools

Conversation

@luhenry

@luhenry luhenry commented Sep 3, 2026

Copy link
Copy Markdown
Member

Compiles gRPC's protoc codegen plugin (grpc_tools._protoc_compiler) into a native extension used to generate Python/gRPC code from .proto files. Upstream publishes no riscv64 wheel.

Mirrors this repo's build-grpcio.yml - same grpc/grpc source tree, same cibuildwheel/ccache pattern; upstream builds these internally via Bazel/Kokoro, not a public GH Actions workflow.

Differs from upstream

  • package-dir: tools/distrib/python/grpcio_tools, since the package lives nested in the monorepo rather than at its root like grpcio.
  • Runs tools/distrib/python/make_grpcio_tools.py before the build - it stages grpc_root/third_party sources upstream's own install_all_python_modules.sh also depends on, with the bazel-query step it also attempts failing non-fatally (falls back to the deps list already committed for this tag).

Matrix: cp312/cp313/cp314 only, same as build-grpcio.yml - grpcio-tools shares python_version.py's supported range and declares no free-threaded support.

Testing

  • python -m grpc_tools.protoc --help, matching upstream's own binary distribtest (test/distrib/python/test_packages.sh)
  • grpc_tools/test/protoc_test.py, generating complicated_pb2 with a plain protoc invocation in place of the Bazel py_proto_library target it normally relies on

License: OK

CI confirms the build itself: all three interpreters compile and auditwheel-repair cleanly. grpcio-tools pins grpcio>=1.83.1; the registry only has up to 1.78.0 (1.83.1 is in open #836), so CIBW_TEST_ENVIRONMENT: PIP_ONLY_BINARY=:all: fails fast at wheel-install instead of falling back to an hours-long from-source grpcio build. Draft until #836 lands.

grpcio-tools compiles grpc's protoc codegen plugin from the same
grpc/grpc source tree as grpcio, already ported in build-grpcio.yml.
Upstream publishes no riscv64 wheel.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant