[Distutils] Provisionally accepting PEP 517's declarative build system interface

Paul Moore p.f.moore at gmail.com
Tue May 30 14:23:38 EDT 2017

On 30 May 2017 at 17:17, Donald Stufft <donald at stufft.io> 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

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[1]. 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?


[1] 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.

More information about the Distutils-SIG mailing list