Skip to content

feat(google-crc32c): add riscv64 manylinux wheel builds#1

Open
gounthar wants to merge 1 commit intomainfrom
feat/google-crc32c-riscv64-wheels
Open

feat(google-crc32c): add riscv64 manylinux wheel builds#1
gounthar wants to merge 1 commit intomainfrom
feat/google-crc32c-riscv64-wheels

Conversation

@gounthar
Copy link
Copy Markdown
Owner

@gounthar gounthar commented Apr 5, 2026

Intra-fork PR to validate CI before upstream googleapis#16559 is reviewed.

Summary by CodeRabbit

  • Chores
    • Added automated build and distribution pipeline for the riscv64 architecture, enabling users on RISC-V 64-bit systems to install the library.
    • Expanded continuous integration to generate wheels for riscv64 alongside existing x86_64 and aarch64 targets.

Add riscv64 to the manylinux wheel build matrix using the
manylinux_2_39_riscv64 image (the correct tag for riscv64; manylinux2014
has no riscv64 variant).

Changes:
- scripts/manylinux/build.sh: add riscv64 docker run block
- .github/workflows/riscv64-wheels.yml: CI workflow to build and upload
  riscv64 wheels on pull_request/push to main

The build uses QEMU emulation on ubuntu-latest, matching the approach
used for the existing aarch64 builds.

Follows up on googleapis/python-crc32c#337 (closed when repo was
archived; maintainer asked to re-open here).

Signed-off-by: Bruno Verachten <gounthar@gmail.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 5, 2026

📝 Walkthrough

Walkthrough

These changes add RISC-V 64-bit (riscv64) architecture support to the google-crc32c package's build pipeline. A new GitHub Actions workflow handles riscv64 wheel builds via QEMU emulation, while the build script is extended to include the riscv64 build step alongside existing architectures.

Changes

Cohort / File(s) Summary
RISC-V 64-bit Build Support
packages/google-crc32c/.github/workflows/riscv64-wheels.yml, packages/google-crc32c/scripts/manylinux/build.sh
Introduces riscv64 architecture support with a new GitHub Actions workflow for building wheels via QEMU emulation and extends the build script to include a riscv64 build step using the manylinux_2_39_riscv64 container image.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Poem

🐰 riscv64 wheels now roll so bright,
Through QEMU's magic, day and night!
New architectures join the race,
CI pipelines find their place! 🚀✨

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'feat(google-crc32c): add riscv64 manylinux wheel builds' directly and clearly summarizes the main change: adding riscv64 architecture support to the manylinux wheel build process for google-crc32c.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feat/google-crc32c-riscv64-wheels

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request introduces a GitHub Actions workflow for building riscv64 wheels and updates the manylinux build script to support the new architecture. Feedback identifies an unnecessary interactive flag and missing variable quotes in the build script, as well as a discrepancy where the BUILD_PYTHON environment variable is omitted in the CI workflow.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@packages/google-crc32c/scripts/manylinux/build.sh`:
- Around line 59-60: The docker run invocation in build.sh uses unquoted
variable expansions (e.g., --volume ${REPO_ROOT}:/var/code/python-crc32c/ and
--env BUILD_PYTHON=${BUILD_PYTHON}), which can break with spaces or glob
characters; update the docker run args to wrap expansions in double quotes (for
example quote the --volume and --env values as "--volume
\"${REPO_ROOT}:/var/code/python-crc32c/\"" and "--env
\"BUILD_PYTHON=${BUILD_PYTHON}\"") and audit any other docker run arguments in
the script for similar unquoted expansions.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 10319551-f913-452d-aea1-30045e9a3d32

📥 Commits

Reviewing files that changed from the base of the PR and between 614a3d0 and 6d1b7e4.

📒 Files selected for processing (2)
  • packages/google-crc32c/.github/workflows/riscv64-wheels.yml
  • packages/google-crc32c/scripts/manylinux/build.sh

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