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
feature: add support for py3-none-{platform}
wheels
#1151
Conversation
cibuildwheel/util.py
Outdated
if not (interpreter.startswith("cp3") and tag.interpreter.startswith("cp3")): | ||
continue | ||
elif tag.abi == "none": | ||
if tag.interpreter[:3] != "py3" and tag.interpreter[:3] != interpreter[:3]: |
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.
This line is confusing me... if the wheel tag doesn't start with 'py3', then we check that the part after that is different?
Also, (genuine question), why do we care about python interpreter version if abi is 'none'? To me, 'none' would mean that we don't actually use the Python C interface (e.g. a ctypes/cffi library) I suppose the obvious answer is "that's what packaging
does", but I'm curious about the semantics of 'none'.
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.
I was sure cp35-none would be compatible with cp36, 37, ....
pip debug
proves me wrong (or there's a bug in packaging).
I will restrict this to py3
/py3y
This extends the mechanism introduced in pypa#1091 for `abi3` wheels. Most of the mentions to `abi3` have been removed and replaced by a more generic `compatible_wheel`. This allows to build a wheel `foo-0.1-py3-none-win_amd64.whl` only once and still test with every configured python.
61e9ddc
to
0696c94
Compare
I added an integration test for py3-none wheels, using ctypes. I was curious anyway about them, so it was a good chance to check them out. They're pretty cool actually - one wheel that works for all Pythons, including PyPy. The test seems to pass, at least it did locally on linux. I'll check the execution time in case we want to disable some Python versions for performance. Setting up the test virtualenvs does slow the tests down that use CIBW_TEST_COMMAND. It might also be worth counting the number of times the test says "Building wheel..." versus "Found previously built wheel". |
This extends the mechanism introduced in #1091 for
abi3
wheels.Most of the mentions to
abi3
have been removed and replaced by a more genericcompatible_wheel
.This allows to build a wheel
foo-0.1-py3-none-win_amd64.whl
only once and still test with every configured python.relates to #1142