build abi3 wheels#162
Conversation
|
A very welcome drive-by, thank you :) My knowledge of binary wheels and CFFI is limited, so your expertise is great here! I'm currently migrating the test suite off of Travis+AppVeyor to GHA here #161 so that's why the CI likely wasn't working before. |
|
ah I see, master is broken, I thought I broke it but I guess I was just confused |
| else: | ||
| class BDistWheel(wheel.bdist_wheel.bdist_wheel): | ||
| def finalize_options(self): | ||
| self.py_limited_api = "cp3{}".format(sys.version_info[1]) |
There was a problem hiding this comment.
Does this work in 3.10 as well? Not sure where things are at wrt 310 vs 3_10?
There was a problem hiding this comment.
not sure either, I don't know if it has been decided yet. wheel and pip currently disagree on what it should be
There was a problem hiding this comment.
but it doesn't really matter until python3.10 is your minimum supported version
sethmlarson
left a comment
There was a problem hiding this comment.
LGTM, just the one outstanding question from me.
|
Thanks! |
sorry for the drive by, noticed this tweet and figured I could save you some future pain :)
cffi natively builds abi3-tagged .so files so this just extends it to the wheels
the neat thing about abi3 is it means you don't need to:
this drastically reduces the pain when a new version is released as it can just reuse the existing wheels
you'll probably want to change whatever build infra you have to just build the oldest version of cpython you support
my PR on this is actually a day early, I've got a video about the specifics of this technique going up tomorrow on my youtube channel
here's an example:
for an example of another package which does this, check out https://github.com/asottile/onigurumacffi