Announcement: pip 20.1b1 beta release

On behalf of the PyPA, I am pleased to announce a beta release of pip, pip 20.1b1 has been released.

The highlights for this release are:

  • Significant speedups when building local directories, by changing behavior to perform in-place builds, instead of copying to temporary directories.
  • Significant speedups in pip list --outdated, by parallelizing network access. This is the first instance of parallel code within pip’s codebase.
  • A new pip cache command, which makes it possible to introspect and manage pip’s cache directory.
  • Better pip freeze for packages installed from direct URLs, enabled by the implementation of PEP 610.

We would be grateful for all the testing that users could do, to ensure that when pip 20.1 is released, it’s as solid as we can make it. You can install this beta by running python -m pip install --pre --upgrade pip.

This release also contains an alpha version of pip’s next generation resolver. It is off by default because it is unstable and not ready for everyday use.

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 support that enabled the work on the new resolver.

17 Likes

Congratulations on the release! Speaking of the parallel code in pip list, effectively Nikolay Korolev’s patch also parallelized pip list --uptodate.

2 Likes

If you’re curious about the alpha version of pip’s new resolver, please visit this GitHub issue about the resolver, what doesn’t work yet, and what kind of testing would help us out.

1 Like

You can upgrade to this beta with python -m pip install -U --pre pip. The --pre is necessary because this is a prerelease.

pip install flake8-import-order==0.17.1 flake8==3.5.0 --unstable-feature=resolver
...
Installing collected packages: pyflakes, pycodestyle, flake8-import-order, flake8
Successfully installed flake8-3.5.0 flake8-import-order-0.17.1 pycodestyle-2.3.1 pyflakes-1.6.0

vs

pip install flake8-import-order==0.17.1 flake8==3.5.0
...
ERROR: flake8 3.5.0 has requirement pycodestyle<2.4.0,>=2.0.0, but you'll have pycodestyle 2.5.0 which is incompatible.
Installing collected packages: pycodestyle, flake8-import-order, pyflakes, flake8
Successfully installed flake8-3.5.0 flake8-import-order-0.17.1 pycodestyle-2.5.0 pyflakes-1.6.0

This is gold

7 Likes

In case anyone else doesn’t notice this initially like me, the first example is the new resolve and the second is what pip does currently. Notice how with the new resolver it selected pycodestyle 2.3.1 versus 2.5.0 which is an incompatibility.

1 Like

pip 20.1 has been released! You can install it by running python -m pip install --upgrade pip.

Huge thanks to all who have helped by testing the beta release! During this beta, we were able to identify and fix regressions as well as improve newly added functionality, based on reports and feedback from our testers. You can find more details in the changelog.

2 Likes