<div dir="auto">Okay, but I would like to hear Paul's response to that first.</div><div class="gmail_extra"><br><div class="gmail_quote">On Aug 25, 2017 12:54 AM, "Nick Coghlan" <<a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 25 August 2017 at 14:33, xoviat <<a href="mailto:xoviat@gmail.com">xoviat@gmail.com</a>> wrote:<br>
> Just this morning, Paul said the following:<br>
><br>
> That step's the problem. If the frontend does that it can potentially<br>
> be copying a lot of unneeded stuff (VCS history, for example). We<br>
> tried that with pip and it was a major issue. That problem is the<br>
> *whole point* of all the discussions about the various proposals that<br>
> ended up with build_tree.<br>
><br>
> I took that to mean that we were trusting the backend to do the right thing.<br>
> And most people agreed with that. I don't personally care but there does<br>
> seem to be some miscommunication here.<br>
<br>
Folks are wanting the "right thing" to be defined in the spec, but<br>
that's the wrong place for it, since "the right thing" will be use<br>
case dependent. So I'm now saying "stop trying to define what the<br>
right thing is (beyond producing standards compliant artifacts), and<br>
instead just define a usable thing, run with it, and let consensus on<br>
'the right thing' emerge over time".<br>
<br>
Donald and Paul originally didn't like that notion, but then Paul<br>
realised that pip had never actually tried implementing the "always<br>
build an sdist first" approach. That means pip's notion of "the right<br>
thing" can be adequately captured as "source tree -> sdist -> wheel"<br>
producing the same results as "source tree -> wheel", and pip can<br>
strongly encourage that behaviour in backend implementations by always<br>
trying build_sdist first, and only falling back to calling build_wheel<br>
directly if build_sdist raises NotImplementedError.<br>
<br>
Particular *frontends* (including pip) may further refine their<br>
definition of the "right thing" to categorically disallow source tree<br>
changes, but that's something they can do over time based on the bug<br>
reports they actually receive, rather than needing to be mandated a<br>
priori in the interface specification.<br>
<br>
Cheers,<br>
Nick.<br>
<br>
--<br>
Nick Coghlan | <a href="mailto:ncoghlan@gmail.com">ncoghlan@gmail.com</a> | Brisbane, Australia<br>
</blockquote></div></div>