Skip to content

ci: build and test Windows ARM64 wheels (CPython 3.11-3.14t) - #216

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

johnnynunez wants to merge 1 commit into
darnstrom:masterfrom
johnnynunez:ci/windows-arm64-cp312-wheels

Conversation

@johnnynunez

@johnnynunez johnnynunez commented Oct 11, 2026 •

Copy link
Copy Markdown

Adds a native windows-11-arm entry to the cibuildwheel matrix in wheels.yml, so releases also ship Windows on Arm wheels. Each wheel is tested with the existing pytest suite, the same as on the other platforms.

  • Builds and tests CPython 3.11, 3.12, 3.13, 3.14 and 3.14t (win_arm64).
  • Skips cp39 and cp310 on that runner. The extension builds for them, but NumPy (needed by the tests) publishes no win_arm64 wheels for those versions, so pip falls back to a source build of NumPy, which fails (failed attempt).
  • The other Windows entry keeps the previous auto architectures (AMD64 + x86). Linux and macOS are unchanged.

Verification on my fork, same cibuildwheel settings on the current master source (publishing step removed): https://github.com/johnnynunez/daqp/actions/runs/38318252436. All five wheels built and passed the suite (39 passed each). Every .pyd is a native ARM64 PE (machine 0xAA64). On 3.14t the only warning is the usual one that the module hasn't declared free-threading support, so the GIL is enabled on import.

@darnstrom

Copy link
Copy Markdown
Owner

Thank you for contributing @johnnynunez. Is there a reason why this is limited to CPython 3.12? I'd expect 3.11, 3.13, and 3.14 to work on windows 11-arm too.

@johnnynunez
johnnynunez force-pushed the ci/windows-arm64-cp312-wheels branch from 43648a3 to 7b7ca23 Compare October 12, 2026 21:37
@johnnynunez johnnynunez changed the title ci: build and test CPython 3.12 Windows ARM64 wheels ci: build and test Windows ARM64 wheels (CPython 3.11-3.14) Oct 12, 2026
@johnnynunez

johnnynunez commented Oct 12, 2026 •

Copy link
Copy Markdown
Author

Thanks @darnstrom, no good reason: it was too narrow. I've updated the PR so the windows-11-arm entry builds and tests CPython 3.11, 3.12, 3.13, 3.14 and 3.14t. On my fork all five wheels built and passed the test suite (39 passed each): https://github.com/johnnynunez/daqp/actions/runs/38318252436

cp39 and cp310 are skipped on that runner only because NumPy, which the tests use, has no win_arm64 wheels for them. The extension itself builds fine for those versions. If you'd rather ship them untested, I can switch those two to CIBW_TEST_SKIP instead.

(Edit: an earlier version of this comment also excluded 3.14t; NumPy does ship 3.14t win_arm64 wheels, so it's now included.)

Add a native windows-11-arm entry to the cibuildwheel matrix that builds
CPython 3.11, 3.12, 3.13, 3.14 and 3.14t wheels and runs the existing
pytest suite against each of them, like the other platforms.

CPython 3.9 and 3.10 are skipped on this runner because NumPy, which
the tests need, publishes no win_arm64 wheels for them. The other
Windows entries keep the previous 'auto' architectures.
@johnnynunez
johnnynunez force-pushed the ci/windows-arm64-cp312-wheels branch from 7b7ca23 to 416ec30 Compare October 12, 2026 22:51
@johnnynunez johnnynunez changed the title ci: build and test Windows ARM64 wheels (CPython 3.11-3.14) ci: build and test Windows ARM64 wheels (CPython 3.11-3.14t) Oct 12, 2026

This branch has not been deployed

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