-
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
python tag issue with pip wheel / pip install / caching #7296
Comments
PR that introduced the behavior #3225 |
Reading #3025 (from 2015) it would seem this was made to workaround issues with some So there are several possible approaches (note this applies to pure python distributions only, as binary wheels work correctly):
Only 3. has no behavior change compared to pip 19.3. It might not be relevant but I note that, wrt the pip code base:
|
If 1. is considered too risky, we could combine it with having a separate wheel cache root directory per python implementation. |
Make sure ``pip wheel`` never outputs pure python wheels with a python implementation tag. Better fix/workaround for `pypa#3025 <https://github.com/pypa/pip/issues/3025>`_ by using a per-implementation wheel cache instead of caching pure python wheels with an implementation tag in their name. Fixes pypa#7296
Make sure ``pip wheel`` never outputs pure python wheels with a python implementation tag. Better fix/workaround for `pypa#3025 <https://github.com/pypa/pip/issues/3025>`_ by using a per-implementation wheel cache instead of caching pure python wheels with an implementation tag in their name. Fixes pypa#7296
I agree that projects should be using the existing facilities (e.g. I have a few concerns with removing the interpreter-specific wheel cache outright:
|
seems the cleanest to me but would require some thinking on the cache layout transition. Edited: and I've just seen that #7319 has been created 😫 Don't mind me 😖 |
Make sure ``pip wheel`` never outputs pure python wheels with a python implementation tag. Better fix/workaround for `pypa#3025 <https://github.com/pypa/pip/issues/3025>`_ by using a per-implementation wheel cache instead of caching pure python wheels with an implementation tag in their name. Fixes pypa#7296
Make sure ``pip wheel`` never outputs pure python wheels with a python implementation tag. Better fix/workaround for `pypa#3025 <https://github.com/pypa/pip/issues/3025>`_ by using a per-implementation wheel cache instead of caching pure python wheels with an implementation tag in their name. Fixes pypa#7296
A tricky issue I discovered while re-reading
WheelBuilder.build
.I got to wonder why the python tag of the built wheel would depend on whether we were doing pip install (should_unpack=True) or pip wheel (should_unpack=False).
With pip 19.3.1, do this (the chosen distribution name is a pure python sdist that has no wheel PyPI):
Notice the cp37 tag.
Now, empty the cache and do:
Notice the py3 tag.
So depending on whether the wheel was installed and cached before, the result of
pip wheel
is different.This behaviour was apparently introduced in 0e240d7.
Now with systematic caching introduced in #7285, the behavior is subtly different: a py3 or cp37 wheel gets cached depending on whether pip install or pip wheel is executed first. Whereas before #7285, only cp37 could be cached, never py3.
I'm not too sure what to do with that yet, as I don't really understand the motivation of 0e240d7.
The text was updated successfully, but these errors were encountered: