Packaging/2020-05-11-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.

11 May

Participants:

  • Paul

  • Pradyun

  • TP

Agenda:

- Pradyun is happy that someone else closed the meeting notes like he’s been doing for so long! (with [syntax])

- UX + Pradyun syncups!

  • Circular dependency figured out

  • UX team + Ilan will collect test cases

  • Main problem now:

    • What metrics to use for the “too complicated” error?

    • TP: Maximum versions tried per package, sounds perfect!

      • Everyone agrees. Paul: Doesn’t sound like it’d be too difficult in resolvelib.

    • Paul: When we do the finder logic in the provider, there’s never any reason we’d return 2 compatible ones.

      • will ask on Zulip, since this is a bigger topic that might not need much discussion or need lots of discussion. :)“)

- PubGrub:

  • TP: Was reading PubGrub before this call. Current takeaway is that Python specifiers is missing – negation: Django > 3.0{.backtick} to Django <= 3.0{.backtick}. We’d need to implement negation (non trivial!)

  • TP: Implementing incompatibility tracking would be better; since it’s significantly faster.

  • TP: Does not make sense to switch to PubGrub now (Python packaging logic lacks negation, which is essential for PubGrub)

- What are we working on next?

  • Paul: Couple/Three of things

    • Tidying up anything that comes out of the constraints issue (2 failing tests that TP found)

      • As long as it works for OpenStack, what we should do is remove those tests, and declare that constraints aren’t meant to do that anyway.

      • Will add / improve documentation.

        • Only valid as "project <= version"{.backtick} and similar forms.

        • Pradyun: Validation?

          • Paul: Don’t want to get side-tracked by that entire discussion – will do if it’s easy. Will come back with “let’s not bother” if it’s hard.

    • Documentation of update mode (reminded by an issue mention/notification)

      • Will have another pass.

      • Wanna get some writeup that talks about what we do. The longer I take, the more annoyed at this situation.

      • Wanna be less annoyed at how complicated it is!

    • Refactoring Requirements-bit, so that they’re on the provider instead.

      • It also makes sense to move upgrade_strategy{.backtick}.

      • Have the factory be responsible for get the candidates from Finder.

      • Provider puts them in the correct order.

      • All ordering logic in Provider. All internal-interaction with Factory.

        • Pradyun: we should document this structure is being taken.

        • TP: since we need to rewrite find_matches{.backtick}, I was planning on adding a new class for it – your plan sounds equally good.

        • Paul: This is where the question about more-than-one-candidate-per-question.

      • Particularly, when it’s doing the matching by versions etc in the sorting.

      • It might be easier if the factory to return 1 candidate per version.

      • [Pradyun (note taker) got distracted/zoned out]

      • Paul: That sounds like what we wanna do.

  • TP:

    • Yanked

    • find_matches(){.backtick} rewrite

      • Might conflict with Paul’s planned refactor.

      • Paul: Tell me to stop, if there’s conflicts.

      • TP: I will likely be introducing a new class.

    • TP: need to look at the tests.

    • Pradyun: we should look at all the issues, and write down something about this.

      • Paul: would be really nice.

      • TP: I tried doing that – I got stuck on the constraints

      • [we talk about how we get stuck while doing this – it’s horrible or I can try this (few minutes later) this is horrible]

      • while we’re looking at the tests, it would be nice to finally thrash out how “old resolver test” vs “new resolver” tests should work.

        • might be check the environment.

        • Add a --new-resolver{.backtick} option in pytest and check that throughout the suite

          • interaction with YAML tests

  • Pradyun

    • Actually triage issues (lol)

      • Did a bit last week, but had to walk away after getting frustrated with the in-place builds responses (and landing on #5599).

    • Get 20.1.1 out.

      • Reverting in-place-builds.

        • PR

        • Paul: we’ve got to do it, because of the issues.

          • We’ve had a couple of people who’ve come in and say “this is cool!”

          • Should give a heads up to those people.

          • Reopen issues, telling people why we had to do the revert.

          • Paul to do this on one issue. Pradyun will copy-paste on others, after reverting.

    • Wrap up visualization stuff

      • Put it in a library / tool, instead of a bunch of file in my local resolvelib.

    • Look at the failures

      • Note down what’s happening here.

      • Need to put a clock or something, to keep me from digging too deep.

    • Look into the .[extras]{.backtick} (stretch goal)

    • TP: I’d be very impressed if you make it past the first 2 bullets this week.

    • Paul: Yea, that’s a lot of stuff.

  • Constraints – covered above