On Tue, 25 Sep 2018 at 12:53, Chris Jerdonek <chris.jerdo...@gmail.com> wrote:
>
> On Tue, Sep 25, 2018 at 3:47 AM, Tzu-ping Chung <uranu...@gmail.com> wrote:
> > We are using pip internals for things pip wasn’t implemented for. 
> > Specifically,
> > Pipenv uses pip’s package-fetching functions to implement its 
> > platform-agnostic
> > resolver. pip does not have this, so there’s no functional overlap here. 
> > Those
> > utilities are used to build something that doesn’t exist in pip, so there’s 
> > no
> > duplicated efforts.
> >
> > My recent focus on making sense of packaging implementations and splitting 
> > out
> > parts of pip is exactly to prevent potential duplicated efforts. If we 
> > can’t use pip
> > internals, let’s make things we want to use *not* internal!
>
> I don't see this practice of "splitting out parts of pip" actually
> being followed so far though, and I want to tell you how it's leading
> to duplicated efforts right now -- even for the PR's I happen to be
> working on today.

[...]

> So by creating implementations of functions separate from pip instead
> of splitting them out of pip, it's leading to duplicated work for
> people working on pip's code base. A process of splitting something
> out of pip would I think involve a process more like what I'm
> following -- namely to refactor functionality in pip *first* so it can
> be used separately, and then pull that out so you only have one
> implementation at any point in time. Otherwise, you wind up creating
> two versions of similar functionality that not only need to be created
> twice, but also later reconciled if the plan is merge them back
> together.

This is a very good point, and thanks for the concrete example. For
the record, I'm also a little annoyed that pipenv have been doing all
this work in isolation. There's been very little communication between
the pip and pipenv projects, and I think that's contributed to the
problem. I, for one, wasn't even aware for a long time that they were
embedding their own copy of pip. When we made pip's internals in
private in pip 10, we got essentially no feedback from anyone saying
that it would be a problem, and finding out that it had a sufficiently
major impact on pipenv that they had to embed the old version of pip
*after* the release was (to put it politely) suboptimal :-(

Having said all this, this thread is the start of an attempt to work
better together and I think we should be glad that it's happening and
try to make it work. But I don't think we've got off to a particularly
good start and it will need work. In particular, I'd like to see an
attempt from *both* projects to clarify our goals - I've been speaking
solely for myself so far, it would be good to get the other pip
developers' views and set out a sort of roadmap, and for pipenv to do
the same.

Paul
--
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/OGXUNDRBLTNPOWLLFBVF45SW4SRGYSPP/

Reply via email to