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

ci: move to cibuildwheel on GHA #960

Closed
wants to merge 2 commits into from

Conversation

henryiii
Copy link
Member

This PR moves the wheel building to cibuilldwheel, and performs it on GitHub Actions. One benefit of GitHub Actions is that we can keep this up-to-date with dependabot at some point; another is that the Azure 10 build queue and the GitHub Actions 10 build queue are not synced, so these can build in parallel with Azure ;). It's the same hardware and VMs, generally.

Features:

  • Tests are now run on the wheels. This caught some bugs (tests: fix loading from any directory #953, fix(setup): sync with cmake_example #954, Appropriate FileNotFoundError for ak.from_json. #950, fix: manylinux1 couldn't take None/newaxis #955).
  • SDists are build with pypa/build.
  • Wheels can be directly downloaded from the GitHub Actions interface.
  • Removed the manylinux1 32-bit wheels, which were segfaulting. Easy to re-add if the segfaults on running tests are fixed.
  • Removed the CPython 3.10 builds - Python 3.10 will not have a stable ABI until 3.10.0b4, so PyPy wheels are not supposed to be uploaded yet. Cibuildwheel 2.0.0 alphas have 3.10 support protected by a flag CIBW_PRERELEASE_PYTHONS, so that users don't upload 3.10 wheels accidentally during the early beta period.
  • Trimmed the overlapping manylinux wheels - it's now manylinux1 for 2.7, 3.5, and 3.6, and manylinux2010 for 3.6+. This is based on the Pip version analysis (performed using Hist ;) ) in Drop support for manylinux1 images January 1st, 2022 pypa/manylinux#994 (comment)
  • Added Universal2 builds for Python 3.8 and 3.9 (TODO: I still need to test these on my Apple Silicon machine)
  • Added Arm on Linux builds for 3.6+ (TODO: Should it be 3.7+? Are there old Arm users around? Due to emulation, these are slow. Travis can be used to get a faster native build, but not fond of messing with that. Building wheels should be pretty rare anyway.)
  • Added PyPy builds for Linux (tested) and macOS (untested due to missing macOS wheels for NumPy)
  • Builds manually triggered on GitHub, or on "Release" via GitHub (can be changed). TODO: Also on PR, so that this PR can build. Can be removed when the PR is ready.
  • PyTest defaults to printing a summary.
  • Removed almost 200 lines of code.

The CUDA build is currently untouched, still on Azure.

@henryiii
Copy link
Member Author

Ahh, actions don't run from a fork if not already in the repo. I can move the branch to the repo and try again.

PS: Unrelated, but the it seems GitHub has new link previews for cross-linked PRs. :)

@henryiii henryiii closed this Jun 24, 2021
@henryiii henryiii reopened this Jun 24, 2021
@henryiii henryiii closed this Jun 24, 2021
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.

1 participant