ci: native-runner wheels for all 4 arches; fix sdist readme path - #32
Merged
Conversation
Replace the cross-compile/emulation matrix with one native runner per arch (ubuntu-latest, ubuntu-24.04-arm, macos-13, macos-latest); each builds only its native arch (CIBW_ARCHS=auto), and Rust is installed inside the manylinux containers for the Linux wheels. This removes the two release-build failures: x86_64-on-arm64-macOS needed a rustup target that was not installed, and aarch64 Linux under QEMU ran 6h and was killed. Also point pyproject [project].readme at python/README.md instead of ../README.md, so `maturin sdist` stops failing on the disallowed `..` path.
The first native-runner attempt surfaced two issues: CIBW_ARCHS=auto pulled in an i686 (32-bit) build whose manylinux image cannot install rustup (rustup-init fails on a missing libatomic.so.1), and the macos-13 (Intel) hosted runner never got picked up (queued for hours). Fix: CIBW_ARCHS_LINUX=auto64 builds only the native 64-bit arch per runner (no i686), and macOS now builds both arches on the arm64 runner -- arm64 native and x86_64 cross-compiled (with the x86_64-apple-darwin target; the cross-built x86_64 mac wheel's test is skipped since it can't run on an arm64 host).
The x86_64 wheel built fine but delocate rejected it -- rustc's x86_64-apple-darwin floor is 10.12, above cibuildwheel's default 10.9 tag. Pinning both mac arches to 11.0 makes the wheel tag match the .so.
🚦 Bench results: PR vs main
Per-scenario detail (4 metrics × cells)document-store
mutation-log
ycsb-a
ycsb-b
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
The
Build wheelsrelease workflow (wheels.yml) was failing on thev0.1.0-exilis-catalog-deptag. This fixes it, plus a related sdist break.Root causes
pyproject [project].readme = "../README.md"— maturin cannot puta
..path in an sdist. Nowpython/README.md.ubuntu-latest+macos-latestmatrix cross-built /emulated everything — aarch64 Linux ran ~6h under QEMU and was killed, and
x86_64-on-arm64-macOS needed a rustup target that wasn't installed.
Fix
ubuntu-latest(x86_64),ubuntu-24.04-arm(aarch64),
macos-latest(arm64 native + x86_64 cross). No QEMU.CIBW_ARCHS_LINUX=auto64drops the i686 build (its manylinux image can'tinstall rustup —
rustup-initneedslibatomic.so.1); Rust is installedin-container for the Linux manylinux builds.
MACOSX_DEPLOYMENT_TARGET=11.0so the x86_64 mac wheel tag matches rustc's10.12 floor (delocate had rejected the 10.9-tagged wheel).
Test Plan
A
workflow_dispatchrun on this branch is fully green in ~5 min —cargo-test-gate,sdist, and all four wheels (Ubuntu x86_64 + aarch64,macOS arm64 + x86_64) build and upload artifacts:
https://github.com/Xof/chisel/actions/runs/27104116260