-
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
anthrotype
left a comment
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.
|
I'm sorry for my previous comment, it wasn't appropriate one way or another. One of the changes that happened in between added another optional parameter to the process function of the decompressor class, which I added with my last commit some days ago. |
b40b487 to
b71efbe
Compare
|
@eustas I guess that you might have to review it again now.... @anthrotype Edit: |
83fe58b to
4ac503f
Compare
|
I fixed the whitespace issue just now, and also uniformly re-formated the pre-processor conditions to not be indented. |
|
Thanks. Looking into. |
|
LGTM with comments:
|
a30a8ec to
6595ee0
Compare
|
I assume that you meant the copyright date in the ....and while it's useful to practice some more "tricky" git stuff again....it's certainly not fun.... |
… Py_LIMITED_API_PRE_11
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: