-
Notifications
You must be signed in to change notification settings - Fork 3k
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
pip not naming abi3 wheels correctly #6304
Comments
Pip's PEP 517 build support does not support Suggestions for how to handle this in a general way would be gratefully accepted (as would PRs ;-))
|
Ok. It would have been very helpful to us if this had error'd loudly, instead of silently ignoring it. I agree that simply disabling pep517 in our wheel builder is probably the way to go. Thank you. |
|
Agreed. When I wrote the code, I skipped |
What would be best for pip to do here — terminate with an error or log a warning? |
Error loudly please. We (pyca, as well as projects we build wheels for, such as cffi) build wheels in automation, so we probably wouldn't have noticed a warning. |
I've created #6305 as an initial attempt at this. |
By the way, I noticed these lines in the original post for this issue:
But for the wheel command the pip/src/pip/_internal/commands/wheel.py Lines 166 to 171 in 62cfaf0
and used in the legacy case: pip/src/pip/_internal/wheel.py Lines 943 to 947 in 62cfaf0
Does this mean that warning is no longer correct in this case? Here is the commit where that warning was introduced (with associated issue #2677): 0d2cc68 |
I noticed this. I honestly have no idea what it's reasonable to expect when using This is another area where I think we should simplify pip's command line options, and just drop Once we've dropped the legacy code path, and everything is going via PEP 517, we can rely on the standard |
#6305 merged. |
The intention of |
A couple separate things: First, I looked at the corresponding pip/src/pip/_internal/commands/install.py Lines 338 to 341 in c9df690
Is this a similar issue that needs to be resolved in the short term? Second, @njsmith, are you saying you think there might be a better change for the short-term with respect to this issue, or was your comment more about the long-term? Regarding the long-term, do you think you could file issues to reflect your understanding of what you think needs to be done for the future (e.g. setuptools and/or pip issues)? |
In PyCA's particular case we only use |
@reaperhulk the problem isn't that pip is missing a flag, it's that the abstract API that pip uses to invoke the build backend internally (PEP 517) has no abstract way to say "build abi3 wheels". So even if pip had a flag for this, it doesn't have any way to pass that on to the build backend. |
Thanks for the clarification Nathaniel. Having build backends that don’t understand concepts like this seems...non-ideal, but is outside the scope of a pip bug 😄 |
@reaperhulk Part of the problem here is that some backends (such as flit) don't support C extensions at all, so there's no common ground here. Just expanding on @njsmith's comments, things for consideration in the longer term:
Note that it's easy to overlook a lot of the complexity, because we currently live in a world with only two common backends, setuptools and flit - and flit is still very much a newcomer, and doesn't handle C compilation. But we need to look at the longer term, and assume new backends will be developed and become popular. We really don't want to end up building a PEP 517 infrastructure around a whole new set of setuptools-specific assumptions, that's precisely the trap that PEP 517 was intended to get us out of. |
when working with |
Looking at the issue I feel I'm in a loophole, on one hand I need to disable PEP517 to get abi3 limited... on the other cryptography mandatory needs PEP517 for building. What options are left besides downgrading or moving out from pip? |
Using setup.py directly instead of pip was our solution to the problem. If
you find a better one, let us know.
…On Mon, Oct 3, 2022 at 7:56 PM Vincent Fortier ***@***.***> wrote:
Looking at the issue I feel I'm in a loophole, on one hand I need to
disable PEP517 to get abi3 limited... on the other cryptography mandatory
needs PEP517 for building. What options are left besides downgrading or
moving out from pip?
—
Reply to this email directly, view it on GitHub
<#6304 (comment)>, or
unsubscribe
<https://github.com/notifications/unsubscribe-auth/AAAAGBCITG3UFHKAEXUHRD3WBNXELANCNFSM4G2TK3HA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
--
All that is necessary for evil to succeed is for good people to do nothing.
|
Pip now has a |
I believe the pip-side of this work is complete, so I'm going to close this. To future people reading: it's not clear to me whether setuptools actually uses the config-settings data anywhere, but pypa/setuptools#3896 is the right place for that discussion. |
Environment
Description
Attempting to build an abi3 wheel, on macOS or Linux, is not actually producing an abi3 one:
Expected behavior
There'll be an abi3 wheel in the wheelhouse.
Output
Instead there is a normal, non-abi3, wheel.
The text was updated successfully, but these errors were encountered: