fix(ci): remove PYO3_CROSS_PYTHON_VERSION, use pypa manylinux image for aarch64#60
fix(ci): remove PYO3_CROSS_PYTHON_VERSION, use pypa manylinux image for aarch64#60
Conversation
…uild PYO3_CROSS_PYTHON_VERSION did not help because maturin discovers Python interpreters before PyO3 reads env vars. The rust-cross container has no Python at all, so interpreter discovery always fails. Fix: use quay.io/pypa/manylinux_2_28_aarch64 (official pypa image with Python 3.11–3.13) via QEMU emulation. Slower than cross-compilation but reliably produces correct wheels without manual interpreter wiring.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: ASSERTIVE Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThe release GitHub Actions workflow switches the Linux aarch64 build in the Changesaarch64 Embedded Wheel Build
Estimated code review effort🎯 2 (Simple) | ⏱️ ~8 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Review rate limit: 2/5 reviews remaining, refill in 28 minutes and 51 seconds. Comment |
There was a problem hiding this comment.
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 @.github/workflows/release.yml:
- Around line 76-81: The matrix entry currently uses the key manylinux to
specify the aarch64 image but the action expects a manylinux policy (e.g.,
"2_28") and a separate container override; update the matrix row so manylinux is
set to "2_28" (or keep the policy) and add a new container field with
"quay.io/pypa/manylinux_2_28_aarch64", then ensure the build step that invokes
pyo3/maturin-action (or maturin-action) passes both manylinux and container
through to the action inputs so the workflow uses the correct pypa image under
QEMU for aarch64.
🪄 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: Organization UI
Review profile: ASSERTIVE
Plan: Pro
Run ID: ae6a4259-8a20-4674-ab3a-edc70f22e2c3
📒 Files selected for processing (1)
.github/workflows/release.yml
…s policy maturin-action uses manylinux as the platform policy tag (e.g. manylinux_2_28) and container as the Docker image override. Passing the full image URL in manylinux was incorrect and would not select the pypa image.
|



Problem
PR #58 introduced `PYO3_CROSS_PYTHON_VERSION: ${{ matrix.pyo3_cross_python_version }}` on the maturin build step. For all matrix entries except aarch64 Linux, this variable is unset, so GitHub Actions passes it as an empty string `""`.
PyO3's build script fails to parse the empty string as a version:
```
error: failed to parse PYO3_CROSS_PYTHON_VERSION
caused by:
```
This breaks all
build-embeddedjobs (x86_64 Linux, macOS, Windows, aarch64).Fix
PYO3_CROSS_PYTHON_VERSIONenv var entirely from the build step.quay.io/pypa/manylinux_2_28_aarch64(official pypa image with Python 3.11–3.13) via QEMU emulation instead of the rust-cross container that has no Python. QEMU is already set up in the workflow.