On behalf of the PyPA and the pip team, 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`.
[Cross-posted to https://discuss.python.org/t/announcement-pip-20-3-release/5948 which will be easier to read in a web browser and to link to.]
This is an important and disruptive release -- we [explained why in a blog post last year](https://pyfound.blogspot.com/2019/12/moss-czi-support-pip.html). We even made [a video about it](https://www.youtube.com/watch?v=B4GQCBBsuNU).
* **DISRUPTION**: Switch to the new dependency resolver by default. (#9019) Watch out for changes in handling editable installs, constraints files, and more:
* **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](https://pip.pypa.io/en/latest/user_guide/#changes-to-the-pip-dependency-reso...). 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](https://pip.pypa.io/en/stable/news/).
## 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](https://bit.ly/pip-ux-studies) (after you join, we'll notify you about future UX surveys and interviews).
## What to expect in 20.1
We aim to release pip 20.1 in January 2021, per our [usual release cadence](https://pip.pypa.io/en/latest/development/release-process/#release-cadence). You can expect:
* Removal of [Python 2.7](https://pip.pypa.io/en/latest/development/release-process/#python-2-support) and 3.5 support * Further improvements in the new resolver * Removal of legacy resolver support
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](https://www.mozilla.org/en-US/moss/) Awards) and to the [Chan Zuckerberg Initiative](https://chanzuckerberg.com/eoss/) 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](https://simplysecure.org/) (specifically Georgia Bullen, Bernard Tyers, Nicole Harris, Ngọc Triệu, and Karissa McKelvey), [Changeset Consulting](https://changeset.nyc/) (Sumana Harihareswara), [Atos](https://www.atos.net) (Paul F. Moore), [Tzu-ping Chung](https://uranusjr.com), [Pradyun Gedam](https://pradyunsg.me/), and Ilan Schnell. Thanks also to Ernest W. Durbin III at the Python Software Foundation for liaising with the project.
## What to expect in 20.1
We aim to release pip 20.1 in January 2021, per our [usual release cadence]( https://pip.pypa.io/en/latest/development/release-process/#release-cadence).
You can expect:
- Removal of [Python
and 3.5 support
- Further improvements in the new resolver
- Removal of legacy resolver support
A small correction: the next pip release is 21.0, not 20.1.
Incidentally, I should have mentioned here earlier:
pip 20.3 turned the new resolver on by default for Python 3 users. When users use pip 20.3 in a Python 2 environment, the old dependency resolver is still the default. Python 2 users should also note that pip 21.0 in January will remove Python 2 support: https://pip.pypa.io/en/latest/development/release-process/#python-2-support .