[Distutils] Fwd: Re: PEP 517 again

Nick Coghlan ncoghlan at gmail.com
Fri Aug 25 01:54:09 EDT 2017

On 25 August 2017 at 14:33, xoviat <xoviat at gmail.com> wrote:
> Just this morning, Paul said the following:
> That step's the problem. If the frontend does that it can potentially
> be copying a lot of unneeded stuff (VCS history, for example). We
> tried that with pip and it was a major issue. That problem is the
> *whole point* of all the discussions about the various proposals that
> ended up with build_tree.
> I took that to mean that we were trusting the backend to do the right thing.
> And most people agreed with that. I don't personally care but there does
> seem to be some miscommunication here.

Folks are wanting the "right thing" to be defined in the spec, but
that's the wrong place for it, since "the right thing" will be use
case dependent. So I'm now saying "stop trying to define what the
right thing is (beyond producing standards compliant artifacts), and
instead just define a usable thing, run with it, and let consensus on
'the right thing' emerge over time".

Donald and Paul originally didn't like that notion, but then Paul
realised that pip had never actually tried implementing the "always
build an sdist first" approach. That means pip's notion of "the right
thing" can be adequately captured as "source tree -> sdist -> wheel"
producing the same results as "source tree -> wheel", and pip can
strongly encourage that behaviour in backend implementations by always
trying build_sdist first, and only falling back to calling build_wheel
directly if build_sdist raises NotImplementedError.

Particular *frontends* (including pip) may further refine their
definition of the "right thing" to categorically disallow source tree
changes, but that's something they can do over time based on the bug
reports they actually receive, rather than needing to be mandated a
priori in the interface specification.


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Distutils-SIG mailing list