On 30 May 2017 at 17:17, Donald Stufft email@example.com wrote:
This is a long standing issue with pip that people hit with semi regularity— refusing to fix it is user hostile. Personally I don’t really have much interest in seeing something land in pip that prevents fixing issues that we’re currently seeing— the other pip devs may disagree with me, but as it stands I would be -1 on implementing this PEP as it stands without additional work (either in a stand alone PEP, or as part of this PEP, though I prefer as part of this PEP).
Just to chime in as "another pip developer" I agree that this is something we need to solve, and I'm -1 on anything that makes doing so harder.
I assume that no-one is trying to insist that pip shouldn't do the build in a temporary directory? That's existing pip behaviour and writing a PEP that doesn't support it isn't going to get very far. So the question is, what does the PEP need to do? Not saying anything means that pip can't implement the PEP without abandoning any hope of improving copy times (at least until a follow-up PEP is agreed). So PEP 517 languishes unused until we resolve that issue and write that follow-up PEP. That seems pointless. Surely it's better to cover the issue now.
Maybe all we need to do is to make it the backend's job, and say "the backend MUST copy the source tree to an isolated temporary directory when building". But as Donald says, that means that tools to build sdists have to replicate that logic. So surely it's better to factor out the "define the set of files needed for a build" into a build backend API that both tools can use?
 There's an implied assumption here that we need tools to build sdists - either backends do it themselves, or something else does. I think both Donald and I take that as a given, because if you don't have source bundles (call them that if you don't like the term sdist) on PyPI, then people whose systems don't match the supplied wheels are out of luck. Also, from a policy point of view, I'd be bothered by PyPI being used to distribute binary only packages - we're an open source community, after all.