PackagingWG/2020-04-22-pip

Legacy Wiki Page

This page was migrated from the old MoinMoin-based wiki. Information may be outdated or no longer applicable. For current documentation, see python.org.

Resolver Dev Syncup (22 April 2020)

Participants: Paul, Pradyun, Tzu-ping

Agenda

- Goals

  • When will we be “done”?

    • Paul: IMO, the first key milestone is when all the tests pass. After that, I think depends on user survey feedback.

    • Paul: Also, how does “when all the tests pass” link to Ilan’s work? Do we expect him to deliver new tests for additional resolution scenarios? I thought he was going to…

    • Pradyun: I think we do, yea. There’s a whole bunch of issues we’ve got in zazo’s issue tracker, that really need to move into a YAML test.

- Remaining functionality (prioritization)

  • (from last week)

    • user installs (may be solved by https://github.com/pypa/pip/pull/7997 )

    • upgrade strategy (need to emit a warning/error for this)

      • TP: I want to replace it with a new flag –strategy ( https://github.com/pypa/pip/issues/8085 )

      • Two existing, plus “install minimum possible version”. Implement the mechanism, decide on how to expose it later.

        • “install minimum possible version” – new feature, not on roadmap for resolver, may never happen :P

    • constraints (has error message)

    • wheel cache ( https://github.com/pypa/pip/pull/8066 )

    • error messages (see below)

    • circular dependency (has error message)

General principle, we should implement the mechanisms and leave UX for follow-up discussions.

“What are we allowed to upgrade”:

  • - Internal inconsistencies in what the user asks for - just reject (easy) - Request conflicts with what’s installed, and no –upgrade flag - can just reject as well - When we can upgrade, –upgrade is too blunt a tool, we need to know *what* we are allowed to upgrade

    • - Initially, pass into the API a list of individual packages we’re allowed to upgrade. Work out how to present that as a UI later

Everyone likes XPath we should do more of that! (NOT!!!!)

Talked about hypothesis for testing the resolver / resolvelib.

Talked about tests

- Error messages

  • Paul getting frustrated at the complexity of the problem.

  • Need more points of contact / discussions with UX team would be good.

  • Talked about https://pypistats.org/packages/pip, and how sharing it with the UX folks helped

- Visualizing graph exploration

  • Pradyun spent some time on this – got tied up in other work, so it’s on the back burner

- Augumenting REQUESTED as a distributed MANIFEST

  • Store some decomposed form of a requirement?

  • Whatever we come up with in the [metadata] table discussion?

- PEP 610 + new resolver ( https://github.com/pypa/pip/pull/8005 )

- Broader discussions:

  • pip inspect{.backtick}: bundle together all environment introspection functionality into a single command.

    • pip check, pip list, pip freeze, pip show

    • new feature requests we’ve seen: “tree view”

    • Pradyun: [describes the above]

    • Paul: Makes sense.

    • Tzu-Ping: Makes sense.

    • Paul: We can probably do something similar to this for pip’s index interaction stuff.

      • Pradyun: That’s TP’s proposal for a ‘pip discover’ command! We can make something like pip index{.backtick} for that!

  • Talked about pip wheel

    • Let Paul come up with a paragraph to redescribe what wheel does and fix the docs and the command description

  • pip search: https://github.com/pypa/pip/issues/5216