FazBrowse GitHub Viewer | Trending |
URL:
| Home
Tools: [Download Repo ZIP]   [Original HTTPS Page]

feat: build Windows ARM64 wheels by johnnynunez · Pull Request #1925 · python-zeroconf/python-zeroconf · GitHub

Repository navigation

feat: build Windows ARM64 wheels - #1925

Open
johnnynunez wants to merge 1 commit into
python-zeroconf:masterfrom
johnnynunez:ci/windows-arm64-wheels
Open

johnnynunez wants to merge 1 commit into
python-zeroconf:masterfrom
johnnynunez:ci/windows-arm64-wheels

Conversation

Copy link
Copy Markdown

Adds the hosted windows-11-arm runner to the build_wheels matrix so releases also ship native win_arm64 wheels with the Cython extensions compiled. Today Windows on Arm users get the sdist and need a local compiler, or end up on the pure-Python fallback. GitHub's windows-11-arm runners are free for public repositories.

On that runner cibuildwheel's default auto arch selects ARM64 only, and the existing CIBW_SKIP applies unchanged, so it builds the same CPython versions as the other platforms: cp310, cp311, cp312, cp313, cp314, cp314t, cp315, cp315t (there is no PyPy for Windows ARM64).

Test plan

build_wheels only runs after a release on master, so I verified it in my fork with a build-only copy of the job (same cibuildwheel pin and env, no release/publish steps, one job per Python version) and ran the test suite (pytest --timeout=60 tests, without coverage) against each installed wheel, plus an x64 control lane with the same harness:

https://github.com/johnnynunez/python-zeroconf/actions/runs/38311471960

wheel tests (ARM64) tests (x64 control)
cp310-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 3 xfailed, 5 xpassed
cp311-win_arm64 521 passed, 5 skipped, 3 xfailed, 5 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
cp312-win_arm64 521 passed, 5 skipped, 3 xfailed, 5 xpassed 521 passed, 5 skipped, 3 xfailed, 5 xpassed
cp313-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
cp314-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
cp314t-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
cp315-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
cp315t-win_arm64 521 passed, 5 skipped, 2 xfailed, 6 xpassed 521 passed, 5 skipped, 2 xfailed, 6 xpassed
  • Every ARM64 wheel contains all 18 compiled extension modules (.pyd, PE machine ARM64), and the tests imported the compiled zeroconf from the installed wheel, not the source tree.
  • Wheel tags match the filenames and RECORD hashes check out.
  • The skips are the existing environment skips (IPv6, /proc, macOS-only, SO_REUSEPORT, multicast loopback on GitHub Windows runners); the xfail/xpass split varies between runs on both architectures.

Side note, not changed here: when all versions are built in one job (as in build_wheels), the cp314t/cp315t Windows wheels also pick up the cp314/cp315 .pyd files from the previous build. The current cp314t win_amd64 wheel on PyPI has 36 .pyd files for this reason. The free-threaded interpreter doesn't load the extra files, so they are harmless, and the new ARM64 lane will behave the same way.

Add the hosted windows-11-arm runner to the cibuildwheel matrix so
releases also ship native win_arm64 wheels with the Cython extensions.

Copy link
Copy Markdown

Thanks for contributing! A quick note: this project is in the process of moving from LGPL-2.1 to Apache 2.0, and may keep LGPL-2.1-or-later as an OR option so GPL-2.0-only projects can keep using the library, see #1835.

By continuing with this pull request you agree that this new contribution is offered under both Apache 2.0 and LGPL-2.1-or-later, so it is covered under either outcome.

This notice does not affect your previous contributions. If you would like to consent to relicensing those as well, please post the consent statement on #1835; silence is never treated as consent for past work.

If offering this contribution under these licenses does not work for you, no hard feelings; reply with the exact phrase I do not agree to the Apache 2.0 license or simply close this pull request.

codecov Bot commented Oct 12, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.87%. Comparing base (f0c27b3) to head (f482849).

Additional details and impacted files
@@           Coverage Diff           @@
##           master    #1925   +/-   ##
=======================================
  Coverage   99.87%   99.87%           
=======================================
  Files          33       33           
  Lines        3913     3913           
  Branches      568      568           
=======================================
  Hits         3908     3908           
  Misses          3        3           
  Partials        2        2           

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

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

codspeed Bot commented Oct 12, 2026

Copy link
Copy Markdown

Merging this PR will not alter performance

⚠️ 1 benchmark spent significant time in system calls

System calls cannot be consistently instrumented, so they are not included in the measure, which understates the real cost. Please switch to the Walltime instrument to accurately measure system calls.

Measurement and system calls

✅ 24 untouched benchmarks


Comparing johnnynunez:ci/windows-arm64-wheels (f482849) with master (f0c27b3)

bdraco commented Oct 15, 2026

Copy link
Copy Markdown
Member

Traveling this week, but will take a look as soon as I can

This branch has not been deployed

No deployments
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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants


Back | FazBrowse Home | New Git URL