Skip to content
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

ENH: Build aarch64 linux and simplify matrix #334

Merged
merged 11 commits into from
Jun 6, 2024
Merged

Conversation

larsoner
Copy link
Contributor

@larsoner larsoner commented Jun 2, 2024

This has some opinionated optional changes, let me know if they're worth keeping:

  1. Instead of making a 3x3 build matrix that results in 9 entries then exclude 5 of them... just include: the desired ones explicitly. It seems more readable in the end to me at least!
  2. Build and test wheels on PRs against master. Assuming it's fast enough, might as well if it's quick (but can be reverted if it's not!) since it tests a bunch of archs/oses.
  3. Don't exclude testing on arm64, it's on native hardware with macos-14 so should be fast enough hopefully?
  4. Build the x86_64 macOS wheels on macos-13 which is natively Intel / x86_64 rather than cross-compiling on macos-14 (which is arm64)

And it also includes the change that I actually set out to implement, namely adding Linux aarch64 wheels.

Closes #333

@CLAassistant
Copy link

CLAassistant commented Jun 2, 2024

CLA assistant check
All committers have signed the CLA.

@larsoner
Copy link
Contributor Author

larsoner commented Jun 2, 2024

... if the optional changes above are desired, I'll open a separate PR first to just make cibuildwheel run on PRs for example. That way you won't have to approve every commit I push here, usually messing with CIs requires some iteration and that will really slow things down, so getting a tiny PR accepted first can help!

@ocefpaf
Copy link
Contributor

ocefpaf commented Jun 3, 2024

macos-13 is being deprecated, no? I believe that cross-compiling will be the only option moving forward.

@larsoner
Copy link
Contributor Author

larsoner commented Jun 3, 2024

At least from actions/runner-images#9255 (comment) I don't see it deprecated:

image

Maybe you're thinking of macos-11 which is indeed deprecated? I have to imagine -13, being the last Intel runner, will be available for some years still.

The current docs of cibuildwheel also suggest using macos-13 so that's another reason to use it.

@ocefpaf
Copy link
Contributor

ocefpaf commented Jun 3, 2024

Maybe you're thinking of macos-11 which is indeed deprecated? I have to imagine -13, being the last Intel runner, will be available for some years still.

Maybe is was Azure. Too many CIs to manage.

@jswhit
Copy link
Collaborator

jswhit commented Jun 4, 2024

ubuntu-22.04 aarch64 wheel build test is failing with

WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64/v3) and no specific platform was requested

@larsoner
Copy link
Contributor Author

larsoner commented Jun 5, 2024

Okay I think this one should be good to go. Comments are in the YAML, but the short version in that I now have the wheel building run in PRs but for PRs cut down on which ones get built for speed. For Ubuntu, macOS, and Windows, the longest is 4m (Windows). The new aarch64 build+test takes 14m. If this is too slow, you could cut out testing (getting it down to ~7 min) or even building them at all for PRs. On tags, all relevant wheels will be built.

@jswhit
Copy link
Collaborator

jswhit commented Jun 5, 2024

@larsoner this looks great, thank you. Can you add an item to the Changelog before I merge?

@larsoner
Copy link
Contributor Author

larsoner commented Jun 6, 2024

Done!

@jswhit jswhit merged commit 104b24a into Unidata:master Jun 6, 2024
36 checks passed
@hoechenberger
Copy link

Thanks!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

No aarch64 wheels on PyPI
5 participants