-
Notifications
You must be signed in to change notification settings - Fork 1.3k
python - build abi3 wheels in cibuildwheel #1206
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: master
Are you sure you want to change the base?
Conversation
It might be worth discussing if the abi3 wheels should start at 3.6 as it's now, or 3.10, which would then allow using the Buffer interface in the abi3 wheels as well. |
2f4cf96
to
9680040
Compare
Awesome, thanks. Will review soon. |
9680040
to
93f436d
Compare
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.
Thanks for this! I'd love to not have to worry about building brotli wheels every year that a new python minor version gets out :)
This looks good, except for the issue I raised in my previous comments about the unnamed package without its own folder, which must be addressed before merge.
The repo for building and publishing the wheels needs a PR as well to make this work in the end, e.g. like following which I use in one of my projects [tool.cibuildwheel.linux]
archs = ["x86_64", "i686", "aarch64", "ppc64le", "s390x", "armv7l"]
build = "cp37-* pp3*"
[tool.cibuildwheel.macos]
archs = ["x86_64", "arm64"]
build = "cp37-macosx_x86_64 cp38-macosx_arm64 pp3*"
[tool.cibuildwheel.windows]
archs = ["AMD64", "x86", "ARM64"]
build = "cp37-win_amd64 cp37-win32 cp39-win_arm64 pp3*" The archs are all written separately to ensure that cibuildwheel covers all possible ones instead of just the default ones. As brotli could also support 3.6 abi, the config above would have to be slightly changed, as armv7l linux support is only official for cp37...as far as I can recall. Edit: |
5cee949
to
8ba4b5b
Compare
I'd prefer to keep the wheel building in the separate repository as things are currently, though @eustas may have different views. |
5199790
to
25e26e1
Compare
@eustas @anthrotype |
@eustas @anthrotype I had to basically "wipe" all of my commits and re-add them on a fresh branch as the master branch got multiple changes that totally broke my fork. As that took a bit of time, I don't plan to do this again. |
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.
LGTM
thank you very much for this, and apologies for the very late review (I was away on paternity leave until today).
I'll let @eustas merge this as I don't have direct commit rights on this repo.
This PR makes it possible to build abi3 wheels within a cibuildwheel environment.
To not effect the performance of version specific builds the C code changes are all guarded within preprocessor conditions.
This PR also modifies the setup.py, making it:
TODO: