ci: add support for building Win-ARM64 wheels#1869
ci: add support for building Win-ARM64 wheels#1869ArthurZucker merged 2 commits intohuggingface:mainfrom
Conversation
MugundanMCW
commented
Sep 29, 2025
- The adoption of Windows on ARM (WoA) devices is steadily increasing, yet many Python wheels are still not available for this platform.
- GitHub Actions now offer native CI runners for Windows on ARM devices (windows-11-arm), enabling automated builds and testing.
- Currently, official tokenizers Python wheels are not provided for Windows ARM64 and thus users/developers were facing difficulties using popular tokenizers library natively.
- This PR introduces support for building tokenizers wheels on Windows ARM64, improving accessibility for developers and end users on this emerging platform.
Narsil
left a comment
There was a problem hiding this comment.
In principle yes.
Note for @ArthurZucker : When CI was added and support for ARM added, Windows had tons of bugs making it impossible for us to release.
I hope it works better now.
.github/workflows/CI.yml
Outdated
| with: | ||
| python-version: 3.x | ||
| architecture: ${{ matrix.platform.target }} | ||
| architecture: ${{ matrix.platform.target == 'aarch64' && 'arm64' || matrix.platform.target }} |
There was a problem hiding this comment.
Can we remove this weird condition, and have 2 target names if it's really needed ? Why isn't the target named aarch64 ?
There was a problem hiding this comment.
Hi @Narsil,
The reason for using a separate Python target name for Windows on ARM is that the official Python GitHub Action only supports the architectures x86, x64, and arm64 for Windows [Reference]. Specifying aarch64 for Windows on ARM64 results in an invalid configuration, which causes the CI to fail.
There was a problem hiding this comment.
I know, but then maybe we could have "platform.target" and "platform.architecture" be defined in the matrix, which should make the flow easier to read.
There was a problem hiding this comment.
@Narsil thanks for the suggestions, made the relevant changes
|
The docs for this PR live here. All of your documentation changes will be reflected on that endpoint. The docs are available until 30 days after the last update. |