-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Fix copy of files from .data dir of wheels if the files already exist #1371
Conversation
I don't agree with this: if the wheel contains duplicate entries, then it's broken. And the failure on Windows is correct and we should instead make sure the installation fails similarly on Linux. |
But |
Pip will happily overwrite existing file in a number of circumstances, hardly the behavior expected of a package manager. |
Umm.. pip is an widely used package manager... And even the "wheel" package works:
So I can't open a ticket to selenium saying their wheel distribution is broken - because it doesn't look like it is. |
At the very least I think this behavior should raise a warning on any OS where files are overwritten. |
Pip, setuptools, and wheel have different implementations, so a wheel package can be invalid and still installs successfully with one of those. For example some of the older PyQ5 wheels were created with invalid |
Aren't setuptools, pip and wheel all part of the Python packaging alliance? Wasn't the whole point of the wheel format to be well-defined and well-documented (as opposed to eggs)? If there are differences between the reference implementation, the de facto package manager and other implementations - shouldn't these differences be reconciled? What is the correct process to resolve this? |
Yes; First step, maybe ask @ncoghlan if he has an opinion on the matter. It may be an easy call for him to make. If it's not clear-cut and obvious, then the proper thing to do is raise an issue with packaging problems, and it will be settled there. |
I think a packaging-problems issue would be a good option here, as another case where this might come up is with files that differ only by case, which will work on case sensitive file systems, but fail on case insensitive ones. |
Thanks. Opened pypa/packaging-problems#152 |
I'm going to close this for now, but happy to re-open if that's what's determined to be the best course in the upstream discussion. |
See issue #1362.
From "rename" docs:
To make the behavior the same on both platforms, this PR manually removes existing files before rename.