Skip to content

fix(ci): fix Linux aarch64 wheel build for ring crate compatibility#1502

Merged
douenergy merged 1 commit intoCanner:mainfrom
goldmedal:fix/pypi-aarch64-manylinux
Apr 1, 2026
Merged

fix(ci): fix Linux aarch64 wheel build for ring crate compatibility#1502
douenergy merged 1 commit intoCanner:mainfrom
goldmedal:fix/pypi-aarch64-manylinux

Conversation

@goldmedal
Copy link
Copy Markdown
Contributor

@goldmedal goldmedal commented Apr 1, 2026

Summary

  • Use ubuntu-24.04-arm native ARM runner for faster builds
  • Use manylinux_2_28 instead of manylinux: auto for the aarch64 target
  • Fixes ring crate 0.17+ build failure: #error "ARM assembler must define __ARM_ARCH"

Root Cause

The default manylinux: auto pulls a manylinux image with an older GCC cross-compiler that doesn't define __ARM_ARCH for ARM assembly. manylinux_2_28 has a newer GCC that supports this.

Ref: PyO3/maturin-action#222
Ref: briansmith/ring#1728

Test plan

  • Trigger pypi-publish.yml workflow and verify aarch64 wheel builds

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Improved wheel build configuration so ARM (aarch64) Linux packages are built using a specified manylinux policy, while other Linux targets continue to use automatic policy selection—resulting in more consistent and compatible binary wheels for ARM systems.

@github-actions github-actions bot added the ci label Apr 1, 2026
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 1, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: a0055e41-ef0b-45d5-ad33-a20616cb2836

📥 Commits

Reviewing files that changed from the base of the PR and between 665c504 and 108143f.

📒 Files selected for processing (1)
  • .github/workflows/pypi-publish.yml

📝 Walkthrough

Walkthrough

Adjusted the PyPI publish workflow to set manylinux: 2_28 for the aarch64-unknown-linux-gnu matrix entry and to pass manylinux: ${{ matrix.manylinux || 'auto' }} to the PyO3/maturin-action so targets without an explicit value continue using auto. No runtime code changes.

Changes

Cohort / File(s) Summary
GitHub Actions Workflow
.github/workflows/pypi-publish.yml
Added manylinux: 2_28 for the aarch64-unknown-linux-gnu matrix entry and changed the PyO3/maturin-action invocation to use `manylinux: ${{ matrix.manylinux

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

  • None identified in this diff.

Suggested reviewers

  • douenergy

Poem

🐰 I hopped through YAML, neat and spry,
Manylinux set for aarch64 to try,
Matrix whispers "use me, or fall back to auto,"
Wheels for ARM now follow the policy pronto! 🚀

🚥 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 accurately describes the main change: fixing a Linux aarch64 wheel build issue for the ring crate compatibility by updating CI configuration.
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 unit tests (beta)
  • Create PR with unit tests

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.

Use ubuntu-24.04-arm runner with manylinux_2_28 for the aarch64 wheel.
The ring crate 0.17+ needs a newer GCC that defines __ARM_ARCH for ARM
assembly. The default manylinux (auto) uses an older toolchain that
lacks this macro.

Ref: PyO3/maturin-action#222
Ref: briansmith/ring#1728

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@goldmedal goldmedal force-pushed the fix/pypi-aarch64-manylinux branch from 665c504 to 108143f Compare April 1, 2026 07:45
@goldmedal goldmedal requested a review from douenergy April 1, 2026 07:45
@douenergy douenergy merged commit 83a1e5b into Canner:main Apr 1, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants