Skip to content

[PR #12655/35a310d5 backport][3.13] ci: build armv7l wheels on native ARM runners#12656

Merged
bdraco merged 1 commit into
3.13from
patchback/backports/3.13/35a310d58db1dd1c5a889867e69548362314620f/pr-12655
May 19, 2026
Merged

[PR #12655/35a310d5 backport][3.13] ci: build armv7l wheels on native ARM runners#12656
bdraco merged 1 commit into
3.13from
patchback/backports/3.13/35a310d58db1dd1c5a889867e69548362314620f/pr-12655

Conversation

@patchback
Copy link
Copy Markdown
Contributor

@patchback patchback Bot commented May 19, 2026

This is a backport of PR #12655 as merged into master (35a310d).

What do these changes do?

Move the armv7l legs of the release wheel matrix off the x86_64
QEMU path and onto GitHub's hosted ubuntu-24.04-arm runner.
docker/setup-qemu-action still runs so binfmt registers a 32-bit
ARM userspace handler whether or not the host kernel ships
CONFIG_COMPAT; even under emulation, armv7l-on-aarch64
is far cheaper than the previous armv7l-on-x86_64 layout.

The aarch64 wheels were already native on ubuntu-24.04-arm via
the base os list, so no change there. ppc64le, s390x, and
riscv64 keep the ubuntu-latest + QEMU setup since there are no
native GH-hosted runners for those.

Ported from aio-libs/yarl#1724, which made the equivalent change there
(and additionally moved aarch64 to native; yarl had aarch64 on
QEMU which aiohttp does not).

Are there changes in behavior for the user?

No. Wheels are still built for the same architectures and tags; only
the host that builds the armv7l legs changes.

Is it a substantial burden for the maintainers to support this?

No. ubuntu-24.04-arm is already used in the base os list of the
same matrix; the matrix shape stays the same.

Related issue number

N/A. Mirrors aio-libs/yarl#1724 for aiohttp's armv7l legs.

Checklist

  • I think the code is well written
  • Unit tests for the changes exist -- N/A (CI workflow change, exercised by the next release run)
  • Documentation reflects the changes -- N/A
  • If you provide code modification, please add yourself to CONTRIBUTORS.txt -- already listed
  • Add a new news fragment into the CHANGES/ folder
Agent run details (optional, for reviewers)

Drafted with Claude Code (claude-opus-4-7); reviewed by @bdraco.

Local checks:

  • pre-commit run --files .github/workflows/ci-cd.yml docs/spelling_wordlist.txt CHANGES/12655.contrib.rst -- all hooks pass.
  • News fragment is currently named 12655.contrib.rst (a guess); will be renamed in a follow-up commit to match the assigned PR number.
  • Not validated locally: actual native-ARM cibuildwheel run for armv7l. The matrix wiring (Set up QEMU step is still gated on matrix.qemu and runs on the ubuntu-24.04-arm host, CIBW_ARCHS_LINUX=armv7l set via Prepare emulation) looks correct, but the real proof is the next release run.

@bdraco bdraco enabled auto-merge (squash) May 19, 2026 21:40
@codecov
Copy link
Copy Markdown

codecov Bot commented May 19, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 98.29%. Comparing base (3c9ede2) to head (b3b77f3).
⚠️ Report is 1 commits behind head on 3.13.
✅ All tests successful. No failed tests found.

Additional details and impacted files
@@           Coverage Diff           @@
##             3.13   #12656   +/-   ##
=======================================
  Coverage   98.29%   98.29%           
=======================================
  Files         128      128           
  Lines       44881    44881           
  Branches     2440     2440           
=======================================
  Hits        44116    44116           
  Misses        589      589           
  Partials      176      176           
Flag Coverage Δ
CI-GHA 98.17% <ø> (ø)
OS-Linux 97.93% <ø> (ø)
OS-Windows 95.63% <ø> (+<0.01%) ⬆️
OS-macOS 97.19% <ø> (ø)
Py-3.10.11 96.74% <ø> (+<0.01%) ⬆️
Py-3.10.20 97.22% <ø> (ø)
Py-3.11.15 97.40% <ø> (ø)
Py-3.11.9 96.92% <ø> (ø)
Py-3.12.10 97.01% <ø> (+<0.01%) ⬆️
Py-3.12.13 97.49% <ø> (ø)
Py-3.13.13 97.72% <ø> (+<0.01%) ⬆️
Py-3.14.4 96.90% <ø> (ø)
Py-3.14.5 97.40% <ø> (+<0.01%) ⬆️
Py-3.14.5t 96.73% <ø> (+<0.01%) ⬆️
Py-3.9.13 96.61% <ø> (ø)
Py-3.9.25 97.09% <ø> (-0.01%) ⬇️
Py-pypy3.11.15-7.3.22 96.79% <ø> (ø)
VM-macos 97.19% <ø> (ø)
VM-ubuntu 97.93% <ø> (ø)
VM-windows 95.63% <ø> (+<0.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

@codspeed-hq
Copy link
Copy Markdown

codspeed-hq Bot commented May 19, 2026

Merging this PR will not alter performance

✅ 66 untouched benchmarks


Comparing patchback/backports/3.13/35a310d58db1dd1c5a889867e69548362314620f/pr-12655 (b3b77f3) with 3.13 (3c9ede2)

Open in CodSpeed

@bdraco bdraco merged commit 2ab51fa into 3.13 May 19, 2026
41 checks passed
@bdraco bdraco deleted the patchback/backports/3.13/35a310d58db1dd1c5a889867e69548362314620f/pr-12655 branch May 19, 2026 21:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant