FIX: building Linux-ARM64 wheels#402
Conversation
|
Building ARM wheels on x86 Linux runners is painfully slow (≈ 20 s build time per Python version -> ≈ 3 m). It may be worth considering running |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #402 +/- ##
==========================================
+ Coverage 87.56% 89.06% +1.49%
==========================================
Files 18 20 +2
Lines 1641 2258 +617
Branches 348 474 +126
==========================================
+ Hits 1437 2011 +574
- Misses 149 184 +35
- Partials 55 63 +8 see 4 files with indirect coverage changes Continue to review full report in Codecov by Sentry.
🚀 New features to boost your workflow:
|
|
It would be really nice to build with the restricted API so we have ABI3 compliant wheels. Then we would only have to build once instead of for each python version. It would also make it easier on users who want to use it on a new python version but in the case where we haven't built the wheels yet. Lastly it would reduce overhead for pypi so they don't have to store so many artifacts. But I'm also not sure how big of a performance hit we would take by doing that. I need to update my CI template generators for the last script, so I'll try to get to that and include the |
|
There may be blockers for an ABI3-compliant implementation:
|
|
As far as I recall we didn't make any code-side change in this PR, just CI/config ones. As such, even if this hasn't gone through yet, it should still be possible to build the package from source... ... the caveat being that more recently merged PRs have touched the C code for 3.14.2 compatibility (e.g. #412, which however causes some undiagnosed problems – see #411), so we'll have to check if everything still works on ARM. I'll just rebase on HEAD and see what happens. |
b2e454f to
d41d457
Compare
|
Huh, now the build sometimes chokes on Since we don't have (nor want) fine-grained control of patch versions, we see some "consistently inconsistent" behaviors in the CI jobs:
I will write a small, separate PR to fix the test. @Erotemic |
|
Can we just mark the patch versions where the cpython refcount issue is fixed? E.g. adding some condition like |
|
Yep basically what I did; just took a nap, will now push it. |
|
Just wrote #421. Sorry for the delay. |
- `.github/workflows/tests.yml`:
- `build_binpy_wheels`:
- Activate QEMU on Linux so that `aarch64` wheels can be built
- Removed `${CIBW_ARCHS_LINUX}` to use `pyproject.toml` values
- `test_binpy_wheels`:
Added corresponding `ubuntu-24.04-arm` steps for all `ubuntu-latest`
(i.e. x86) steps
- `pyproject.toml`:
Added `[tool.cibuildwheel.linux]` section in parallel to `macos` and
`windows`
This reverts commit 36ae37c.
d41d457 to
b0e913f
Compare
|
I merged #421 and rebased this, I'll merge when CI passes here. |
|
Huge! Thanks for the fast turn around :) Are there any plans to release the linux arm builds for the previously released versions (i.e. 5.0.1 or otherwise) |
|
I will make a new 5.0.2 release soonish (which will also include the updated type annotations and removal of pyi clutter). Probably by the weekend. |
(See also: #390, #391, #394)
Somewhere between 4.1.3 and 5.0.0 we stopped building
linux_aarch64wheels, perhaps because we bumped thecibuildwheelversion in #369 which changed its behavior.This PR updates
pyproject.tomland.github/workflows/tests.ymlso that:Python 3.14.0rc1 -> 3.14(.0)EDIT done in Codify win arm tests #407