On behalf of the PyPA, I am pleased to announce that we have just released pip 20.3, a new version of pip. You can install it by running python -m pip install --upgrade pip
.
This is an important and disruptive release – we explained why in a blog post last year. We even made a video about it.
Highlights
-
DISRUPTION: Switch to the new dependency resolver by default. (#9019) Watch out for changes in handling editable installs, constraints files, and more: https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-resolver-in-20-3-2020
-
DEPRECATION: Deprecate support for Python 3.5 (to be removed in pip 21.0) (#8181)
-
DEPRECATION: pip freeze will stop filtering the pip, setuptools, distribute and wheel packages from pip freeze output in a future version. To keep the previous behavior, users should use the new
--exclude
option. (#4256) -
Substantial improvements in new resolver for performance, output and error messages, avoiding infinite loops, and support for constraints files.
-
Support for PEP 600: Future ‘manylinux’ Platform Tags for Portable Linux Built Distributions. (#9077)
-
Documentation improvements: Resolver migration guide, quickstart guide, and new documentation theme.
-
Add support for MacOS Big Sur compatibility tags. (#9138)
The new resolver is now on by default. It is significantly stricter and more consistent when it receives incompatible instructions, and reduces support for certain kinds of constraints files, so some workarounds and workflows may break. Please see our guide on how to test and migrate, and how to report issues. You can use the deprecated (old) resolver, using the flag --use-deprecated=legacy-resolver
, until we remove it in the pip 21.0 release in January 2021.
You can find more details (including deprecations and removals) in the changelog.
User experience
Command-line output for this version of pip, and documentation to help with errors, is significantly better, because you worked with our experts to test and improve it. Contribute to our user experience work: sign up to become a member of the UX Studies group (after you join, we’ll notify you about future UX surveys and interviews).
What to expect in 21.0
We aim to release pip 21.0 in January 2021, per our usual release cadence. You can expect:
- Removal of Python 2.7 and 3.5 support
- Further improvements in the new resolver
- Removal of legacy resolver support
Thanks
As with all pip releases, a significant amount of the work was contributed by pip’s user community. Huge thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated.
Specific thanks go to Mozilla (through its Mozilla Open Source Support Awards) and to the Chan Zuckerberg Initiative DAF, an advised fund of Silicon Valley Community Foundation, for their funding that enabled substantial work on the new resolver.
That funding went to Simply Secure (specifically Georgia Bullen, Bernard Tyers, Nicole Harris, Ngọc Triệu, and Karissa McKelvey), Changeset Consulting (Sumana Harihareswara), Atos (Paul F. Moore), Tzu-ping Chung, Pradyun Gedam, and Ilan Schnell. Thanks also to Ernest W. Durbin III at the Python Software Foundation for liaising with the project.