Test pip’s alpha resolver and help us document dependency conflicts

Hello! It’s Bernard and Nicole here from the pip team.

What’s this research about?

The team is working on the improving the way that pip resolves package dependency conflicts and would like feedback from users who have projects with complex dependencies. By complex dependencies we mean projects that:

  • have at least 10 package dependencies
  • some package are pinned to specific versions
  • that you always have a dependency issue when installing it
  • you have to put in hacks, workarounds, or fixes

Objective

Currently, we’re trying to discover all the ways in which pip‘s dependency resolver fails, so that we can work out what error messages and/or debugging information we should display.

We hope to get some results in the next 2 weeks. The research will be running after these 2 weeks – please do try this out, and file an issue.

What we’d like you to do

On a project with a lot of dependencies and/or where you’ve had dependency problems in the past:

  1. Upgrade pip to the latest version – 20.2b1 – by running pip install —upgrade —pre pip (you can check your version with pip -V or pip --version)
  2. Use pip’s alpha resolver to install the project. You can do this by adding the option --unstable-feature=resolver when running pip
  3. If the project installs without a problem, do what you can to break it! For example, add more packages, or fiddle with the versions of your packages. If you’ve put in workarounds, remove them!
  4. If you are able to generate an error, we’d like you to open a ticket on the pip issue tracker. Please include as much information as you can about what caused the error, e.g.:
    • Your terminal output, including the error message (if one is displayed)
    • Any inputs to pip, for example:
      • Package requirements: CLI arguments and/or your requirements.txt file
      • Already installed packages, outputted via pip freeze
    • we’d appreciate if you tag us in the Github issue – Bernard (@ei8fdb) and Nicole (@nlhkabu).

It would be great if you could also include your dependency tree (outputted via pipdeptree)

For users installing packages from a private repository or local directory, please try your best to describe your setup. We’d like to understand how to reproduce the error locally, so would need (at a minimum) a description of the packages you are trying to install, and a list of dependencies for each package.

How we will use your feedback

We will use your error report to create a list of error use cases. We may also contact you for follow up questions, or to discuss the kind of help you might need to resolve the error(s).

If you want to get in touch

We appreciate your time and help on this issue! If you need any help, or have any questions, please don’t hesitate to get in touch with me by email, here in the comments, or Twitter (I’m @bernardtyers) – we’ll be happy to talk it over it with you.

Bernard and Nicole for the pip team


Comments

Leave a Reply