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
Slowness
Get to upgrade to virtualenv 20
Caching wheels generated during tests – for Windows antivirus!!!
TODO: TP to write short summary on importlib-metadata thing and explain what he wants, maybe the GSoC student can help on the work.
Windows CI boxes: do they allow symlinks?
TODO: Need to check this (Pradyun).
- 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