Hey!

On Tue, Aug 21, 2018 at 7:51 PM Tzu-ping Chung <uranu...@gmail.com> wrote:
>
> Speaking of Zazo[1], I actually found its abstraction extremely similar to 
> our current
>
> abstraction, ResolveLib[2]. I’m not sure it’s coincidence, we took 
> inspiration from
>
> similar sources, or this is simply the right way to do it, but how the logic 
> matches
>
> is quite surprising to me.

A quick skim at the abstractions of ResolveLib, it does abstract in
lot of the same
ways that I intended for zazo. It is a pleasant surprise to me too.

I have more thoughts on this but I'll avoid going into any more detail
here. I'll
be happy to have a chat with you elsewhere (off list, GH tracker etc)
on this and
collaborate here.

> I’m quite sure we would be able to find some way to consolidate efforts once 
> we
>
> find the chance, but for the moment, progress in ResolveLib (and by extension
>
> Pipenv) would likely benefit pip developing a proper resolver (be it Zazo or
>
> otherwise).
>
>
> TP
>
>
> [1]: https://github.com/pradyunsg/zazo
> [2]: https://github.com/sarugaku/resolvelib
>
>
>
> Sent from Mail for Windows 10
>
>
>
> From: Dan Ryan
> Sent: 21 August 2018 22:03
> To: Tzu-ping Chung
> Cc: Chris Jerdonek; distutils sig
> Subject: Re: [Distutils] Re: pipenv and pip
>
>
>
> There was a specific bug related to pipenv-only functionality which is why 
> the vcs ref is obtained. Pip now by default prefers ephemeral wheels, while 
> pipenv maintains a copy of editable repos currently. The work Tzu Ping has 
> been discussing and the work in pipenv currently are separate. You can also 
> not simply read some lines of pipenv and assume there should be a 1-1 
> functional equivalence. Sometimes we will have overlap and sometimes we will 
> have bugs. In the specific case you mentioned, we simply make sure to check 
> out whatever version is requested in the Pipfile before doing resolution and 
> handing off the results to pip for installation.  So while it may seem like 
> we are simply doing things over again that pip already handles, we have 
> different motivations and while we very likely have plenty of bugs, there is 
> more context than that we did something that pip also does.
>
>
>
> In any event, I’m not sure this mailing list is the right place to do code 
> reviews; we would happily accept any feedback if you make it on the project 
> itself.  Pipenv has a lot of cleanup work to do. We are in the process of 
> tackling that now. If you have ideas for how to tackle that, we would love to 
> hear them :)
>
>
> With regard to zazo — it’s been mentioned to us many times but we’ve been in 
> touch with Pradyun as I mentioned and he said he was very busy and couldn’t 
> coordinate efforts at all on the resolver front.

While I didn't really say that, I understand you might have been
interpreted what I
said as that. None the less, I'll be happy to coordinate on this front
moving forward. :)

> Zazo isn’t actually an implementation, it’s an abstraction layer. We built a 
> directed graph and layered a resolver on top of it.

zazo is intended to be something along those lines, an abstraction that allows
multiple libraries to interface with it, while providing a single well
tested core provided
the resolution capabilities. This separated the resolution logic from
the rest of the
codebase pretty well, which was a concern since pip didn't really do
that (at all)
earlier. Cleaning up the technical debt that has piled up over the
years in pip is
something I've been doing in the time I'm have had to work on pip.

> Since this is a primary functionality pipenv has always wanted to offer (as 
> far as my understanding went) and has always basically failed at because of 
> various tooling issues, we have been working for the last 4-8 weeks pretty 
> much in seclusion trying to tackle this.

That's the sort of time I've not really had to work on zazo since
after GSoC, for
various non-technical reasons. I'm glad someone has made the time to
look into this.
I'll be happy to help any way I can.

Pradyun

>
> Dan Ryan // pipenv maintainer
>
> gh: @techalchemy
>
--
Distutils-SIG mailing list -- distutils-sig@python.org
To unsubscribe send an email to distutils-sig-le...@python.org
https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/
Message archived at 
https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/UH6KMBA4FOVQEHHAWGHWKRORICY722FH/

Reply via email to