Thanks to visit codestin.com
Credit goes to github.com

Skip to content

CI: Add support for building NumPy with LLVM for Win-ARM64 #29215

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

Merged
merged 6 commits into from
Jun 18, 2025

Conversation

Mugundanmcw
Copy link
Contributor

Reference issue
Closes: #29174

What does this implement/fix?
Enables new CI environment for building & validating NumPy for Win-ARM64 using LLVM toolchain.

Additional information

  • The PR introduces setting up a new CI environment for building and testing NumPy locally for Win-ARM64 under windows.yml.
  • Additionally, the patch updates the wheels.yml for Win-ARM64 to build NumPy using LLVM's clang-cl.

@Mousius Mousius requested a review from Copilot June 17, 2025 16:24
Copy link

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds a new CI environment to support building NumPy for Win-ARM64 using the LLVM toolchain. It introduces a new job in windows.yml for ARM64 builds, updates wheels.yml to use the new LLVM setup, and provides an action in windows_arm64_steps for installing LLVM.

Reviewed Changes

Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.

File Description
.github/workflows/windows.yml Added a new ARM64 build job and steps for both MSVC and Clang-cl configurations
.github/workflows/wheels.yml Updated the ARM64 setup step to use the new LLVM action
.github/windows_arm64_steps/action.yml Introduces a composite action to install LLVM for Win-ARM64 builds

@Mousius
Copy link
Member

Mousius commented Jun 17, 2025

@rgommers can I trigger the wheel build on this PR? I forgot the incantation.

@rgommers
Copy link
Member

@rgommers can I trigger the wheel build on this PR? I forgot the incantation.

You can by pushing a commit with [wheel build] on the first line, but you'll be running the full matrix of 66 jobs then. It's better practice to check out this branch, add a commit removing the relevant if: and needs: conditions and then push it to your own fork to run just the relevant jobs. Example: 8981b65

@Mugundanmcw
Copy link
Contributor Author

@rgommers Please let me know if there are any changes needs to be applied in this patch

Copy link
Member

@Mousius Mousius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Mugundanmcw can you make the hash check change that Copilot suggested, I'm less worried about the reformatting.

Otherwise https://github.com/Mousius/numpy/actions/runs/15731514222/job/44333523611 looks good to me, tests passing etc.

@Mugundanmcw Mugundanmcw requested a review from Mousius June 18, 2025 12:46
Copy link
Member

@Mousius Mousius left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me, thanks for this @Mugundanmcw.

@Mousius Mousius merged commit 823287c into numpy:main Jun 18, 2025
75 of 76 checks passed
@rgommers rgommers added this to the 2.4.0 release milestone Jun 19, 2025
@rgommers rgommers added the 09 - Backport-Candidate PRs tagged should be backported label Jun 19, 2025
@rgommers
Copy link
Member

Thanks! Adding the backport label, I think that's warranted both because of the performance improvement and because we'd be getting signal much faster from 2.3.1 than from 2.4.0 in case anything is wrong. Cc @charris

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.

ENH: Provide NumPy Wheels for Windows on ARM Compiled with LLVM Toolchain
4 participants