Skip to content

馃懛 ci(dist): build Windows arm64 wheels - #695

Merged
gaborbernat merged 1 commit into
tox-dev:mainfrom
gaborbernat:add-windows-arm64-wheels
Aug 31, 2026
Merged

馃懛 ci(dist): build Windows arm64 wheels#695
gaborbernat merged 1 commit into
tox-dev:mainfrom
gaborbernat:add-windows-arm64-wheels

Conversation

@gaborbernat

Copy link
Copy Markdown
Member

Jens asked for a Windows ARM64 distribution in discussion #693. The wheel matrix builds Windows on AMD64 alone, so pip and uv fall back to the sdist on Windows on ARM, and since 4.0.0 that means compiling the Rust extension against a local cargo and MSVC toolchain. Before 4.0.0 the single py3-none-any wheel covered the platform for free.

The windows-11-arm runner builds ARM64 natively, so the platform joins the matrix as one more entry rather than through cross-compilation. cibuildwheel offers cp310-win_arm64, cp314t-win_arm64 and cp315t-win_arm64, which lines up with the interpreters already in the matrix, so the cp310 job produces the shared abi3 wheel and the two free-threaded jobs produce theirs. PyPy publishes no Windows arm64 interpreter and cibuildwheel stops a job whose selector matches nothing, so pp311 is excluded for that platform alone.

Three build jobs join every dist run, and they run beside the existing ones. The runner image carries Rust 1.98.0, which is what rust-toolchain.toml pins, and Visual Studio 2022. Worth watching: actions/runner-images moves the windows-11-arm label to a Visual Studio 2026 image in September 2026.

Every Windows wheel targeted AMD64, so installing on Windows on ARM fell
back to the source distribution, which needs a local cargo and MSVC
toolchain. Since 4.0.0 replaced the pure Python package with a Rust
extension, that fallback is what a user on such a machine gets.

The windows-11-arm runner builds ARM64 natively, so the platform joins
the matrix as one more entry. PyPy ships no Windows arm64 interpreter
and cibuildwheel stops a job whose selector matches nothing, so that one
combination is excluded.
@gaborbernat
gaborbernat enabled auto-merge (squash) August 31, 2026 17:56
@gaborbernat
gaborbernat merged commit aa1fe4f into tox-dev:main Aug 31, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant