-
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
Make it more clear that legacy dependency resolver is still default under Python 2 #9194
Comments
This is an intentional choice. pip's new dependency resolver is stricter across the board and makes significant changes to how we treat package metadata and dependency information. We know that this can be potentially disruptive for various projects. The major benefits from the stricter dependency resolver will slowly become more visible in the future, and we expect that projects would be updated to with better metadata and dependency declarations. Many Python 2 users won't be able to upgrade to newer releases of various projects (since many upstream projects on PyPI have dropped Python 2 support). Given that Python 2 will likely stay alive in various capacities in a lot of places, and that this is our last Python 2 compatible release (ignoring bugfixes), we did not want to be unnecessarily disruptive to those users. Our anecdotal experience showed that most major applications with Python 2 support would not have benefited with the new resolver, and that improved our error reporting in resolution errors is non-disruptive overall. It is still possible to opt-in to the new resolver on Python 2 (with |
Thank you for the explanation. I understand the choice. Similar is in release notes https://pip.pypa.io/en/stable/news/#id21 (different strategy for Python 2 not mentioned):
Therefore please consider updating documentation regarding Python 2 default resolver to be more visible for the end users. |
Thank you @pradyunsg for your clear explanation! I'll follow up by pointing at #8937 (comment) and #8664 (comment) for more background discussion. @wasilukm Thanks for the suggestion. I definitely agree that we did not communicate clearly enough about the Python 2 behavior, and I take at least partial responsibility for that. I have some followup stuff to do to mitigate this and have listed them at #8936 (comment) . |
Partially addresses pypa#9194. Signed-off-by: Sumana Harihareswara <sh@changeset.nyc>
I've made pull request #9269 to improve the documentation and highlight in more places that Python 2 environments will still default to the old resolver. Once it is merged, there will be a new In that pull request I've also added a link to the Python 2 sunsetting FAQ to the pip Python 2 support policy. |
Closing since this was be a part of 20.3's bugfix releases. :) |
It seems that pip 20.3 under Python 2.7 still uses legacy resolver as default one. I'm executing following:
As contrary for Python 3 I get:
I would expect similar output on Python 2 and Python 3
The text was updated successfully, but these errors were encountered: