-
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
tests: build isolation issues with C/C++ ABI dependencies #11778
base: main
Are you sure you want to change the base?
Conversation
This commit provides a simple test that demonstrates the issues a resolver-unaware build isolation imposes on packages with C/C++ ABI dependencies. Cf. pypa#9542 for the corresponding discussion.
On request, some short explanation what the test does, as well as the files the test generates.
The The issue now arises when you (loosely speaking) try to Running the test code yields:
pip will install version 0.2.0 of the base package in the build isolation environment, with which the script wheel is built. The latter will have a fixed/pinned dependency on base-0.2.0, thus leading to the conflict. The issues people describe in #9542 are mostly due to this behavior, except that they experience the problem more down the road, at runtime. IMO this is due to most of the packages not correctly encoding the additionally more constrained dependency in their Files: |
Thanks for the explanation. Is this not simply a consequence of:
This is a pretty fundamental aspect of Python's packaging system, and I don't think there's going to be a straightforward solution. I can think of a number of ways of making a build like that work - for example something like the following might work
But that's not the point here - people are expecting the unadorned command to "just work", and I don't think that's possible as the Ultimately, the problem here is that you cannot have two wheels for So I guess what I'm saying is that for most of the examples we've seen there are workarounds (typically, build the sdist with In the interim, I'm not opposed to pip trying to offer extra workarounds for specific cases, but I don't want people to feel that the basic issue is something pip can solve on its own. |
This commit provides a simple test that demonstrates the issues a resolver-unaware build isolation imposes on packages with C/C++ ABI dependencies.
Cf. #9542 for the corresponding discussion.