Skip to content

BLD: Enable wheels on Windows-on-ARM #28554

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

Open
wants to merge 1 commit into
base: main
Choose a base branch
from

Conversation

QuLogic
Copy link
Member

@QuLogic QuLogic commented Jul 12, 2024

PR summary

This needs to wait for NumPy to be useful numpy/numpy#22530

PR checklist

@QuLogic QuLogic added the CI: Run cibuildwheel Run wheel building tests on a PR label Jul 12, 2024
@QuLogic QuLogic added this to the v3.9.2 milestone Jul 12, 2024
@QuLogic
Copy link
Member Author

QuLogic commented Jul 12, 2024

I somewhat forgot that NumPy hasn't yet moved, so this really needs to wait until GHA has proper runner support, and some of the lower ecosystem moves forward.

@QuLogic QuLogic modified the milestones: v3.9.2, future releases Jul 12, 2024
@QuLogic QuLogic marked this pull request as draft July 12, 2024 21:46
@QuLogic QuLogic force-pushed the winarm branch 2 times, most recently from fb39f7e to 19220ca Compare October 10, 2024 08:58
@QuLogic
Copy link
Member Author

QuLogic commented Oct 10, 2024

OK, while technically we recently dropped NumPy as a build requirement, this still fails because meson-python doesn't support cross-compiling. Apparently the macOS stuff was just a setuptools-specific thing that they also implemented, but more generic cross-compiling support is not really a standardized thing in the Python ecosystem, even if that's what cibuildwheel is trying to do here.

@QuLogic
Copy link
Member Author

QuLogic commented Apr 16, 2025

GitHub Actions now has native Windows-on-ARM runners: https://github.blog/changelog/2025-04-14-windows-arm64-hosted-runners-now-available-in-public-preview/

So this is now able to build, but I've had to skip testing right now because NumPy wheels are not available (see linked issue.)

@QuLogic
Copy link
Member Author

QuLogic commented May 7, 2025

NumPy wheels were just merged today. It looks like nightlies are uploaded Sunday and Wednesday mornings, so by next week we should be able to try testing this out.

@finnagin
Copy link

finnagin commented Jun 5, 2025

Looks like the arm64 windows wheels are available for the numpy pre-release on pypi now.

@QuLogic
Copy link
Member Author

QuLogic commented Jun 5, 2025

Looks like we need to install the NumPy pre-release, but otherwise this does appear to work. It also builds contourpy from source, though without any error, so I will open a PR there to make wheels.

@QuLogic QuLogic marked this pull request as ready for review June 5, 2025 22:42
@QuLogic
Copy link
Member Author

QuLogic commented Jun 5, 2025

contourpy has a bit of a bootstrap problem of us not having wheels and we seem to be okay building theirs without testing, so I'll mark this ready.

@QuLogic QuLogic modified the milestones: future releases, v3.11.0 Jun 5, 2025
@ianthomas23
Copy link
Member

contourpy has a bit of a bootstrap problem of us not having wheels and we seem to be okay building theirs without testing, so I'll mark this ready.

Just so that it is written down somewhere, when adding a new platform to contourpy I usually follow this process:

  1. Wait for numpy nightly wheels to be built and uploaded.
  2. Enable building, testing and wheel building in contourpy but with image testing disabled so that matplotlib isn't required.
  3. Tell matplotlib that contourpy wheel are now available.
  4. Wait for matplotlib nightly wheels to be built and uploaded.
  5. Re-enable image testing in contourpy CI for the new platform.

@ianthomas23
Copy link
Member

There are contourpy wheels for win_arm64 available at https://pypi.anaconda.org/scientific-python-nightly-wheels/simple/contourpy/ for python 3.10 to 3.13. No 3.14 yet, I will deal with that soon-ish.

@QuLogic
Copy link
Member Author

QuLogic commented Jun 6, 2025

Yes, looks good now.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
CI: Run cibuildwheel Run wheel building tests on a PR
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants