-
Notifications
You must be signed in to change notification settings - Fork 976
ci: add support for building Win-ARM64 wheels #1869
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
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.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@Narsil thanks for the suggestions, made the relevant changes