ci(release): fix embedded wheel builds for Windows, macOS, and Linux aarch64#40
ci(release): fix embedded wheel builds for Windows, macOS, and Linux aarch64#40
Conversation
…aarch64 Three separate failures in the build-embedded matrix job: 1. Windows x86_64 — build.rs UNC path (\\?\) rejected by protoc. Fix is in the coordinode-rs submodule (fix/windows-protoc-unc-path). Bump submodule pointer to the fixed commit. 2. macOS aarch64 / x86_64 — macos-latest now ships Python 3.14 which PyO3 0.23.x does not yet support (max 3.13). Pin all non-Linux matrix entries to Python 3.13 via actions/setup-python. 3. Ubuntu aarch64 — maturin-action requires QEMU to cross-compile aarch64 wheels on the x86_64 runner. Add docker/setup-qemu-action before the maturin step for Linux aarch64 targets. Refs #39
|
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
WalkthroughCI workflow updated to include Python 3.13 on macOS and Windows runners, add conditional Python and QEMU setup steps for non-Linux and Linux/aarch64 matrix entries respectively, and the coordinode-rs Git submodule reference was bumped to a newer commit. Changes
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes 🚥 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)
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 89-92: Update the unsupported runner label by replacing the old
`os: macos-13` entry with a currently supported macOS runner (e.g., `os:
macos-14`) in the release workflow; keep the existing `target: x86_64` and
`python-version: "3.13"` settings intact and search for any other occurrences of
`macos-13` in the workflow to update them as well so the macOS Intel wheel job
can run.
🪄 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: 5af469de-4ebd-4036-9af5-0fe4b8a5824d
📒 Files selected for processing (2)
.github/workflows/release.ymlcoordinode-rs
There was a problem hiding this comment.
Pull request overview
Updates the release workflow to address recent platform-specific failures when building coordinode-embedded wheels across the release matrix.
Changes:
- Pins Python to 3.13 on macOS and Windows runners to avoid PyO3 incompatibility with Python 3.14.
- Adds QEMU setup for Linux
aarch64cross-compilation before runningmaturin-action. - Adds clarifying comments in the workflow matrix around these platform constraints.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
- Replace macos-13 (retired Dec 2025) with macos-15-intel for the macOS Intel x86_64 wheel job - Change setup-python condition from matrix.python-version check to runner.os != 'Linux' — Linux manylinux containers manage Python themselves; Linux matrix entries intentionally omit python-version
|
There was a problem hiding this comment.
Pull request overview
Updates the release CI workflow to address recently observed build-embedded matrix failures across Windows, macOS, and Linux aarch64 so embedded wheels can be built reliably during tagged releases.
Changes:
- Pin Python to 3.13 on macOS and Windows runners to avoid PyO3 incompatibility with Python 3.14 on
macos-latest. - Add QEMU setup for Linux aarch64 to support cross-compiling wheels via manylinux containers.
- Update the macOS Intel runner label from
macos-13tomacos-15-inteland clarify platform-specific build notes in comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.



Summary
Three independent failures in the
build-embeddedmatrix discovered in the cancelled v0.8.0 release run.Root Causes & Fixes
1. Windows x86_64 — UNC path rejected by protoc
std::path::Path::canonicalize()on Windows returns\\?\D:\...(extended-length UNC prefix) that protoc rejects with "Invalid file name pattern".Fix:
canonicalize_for_protoc()helper strips the\\?\prefix in all fourbuild.rsfiles insidecoordinode-rs. Applied in the submodule on branchfix/windows-protoc-unc-path→ structured-world/coordinode; this PR bumps the submodule pointer to that commit.2. macOS aarch64 / x86_64 — Python 3.14 not yet supported by PyO3
macos-latestnow ships Python 3.14. PyO3 0.23.5 supports up to Python 3.13 and fails with:Fix: Add
actions/setup-pythonstep pinned to3.13for all non-Linux matrix entries. Remove pin when PyO3 ≥ 0.24 is adopted.3. Ubuntu aarch64 — Docker not found for cross-compilation
maturin-actionuses a manylinux Docker container to cross-compile aarch64 wheels on the x86_64 runner. Docker wasn't available in the runner context (/usr/bin/docker: exit code 127).Fix: Add
docker/setup-qemu-actionbefore the maturin step for Linux aarch64 targets.Test Plan
Closes #39