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

Paul Moore p.f.moore at gmail.com
Mon May 29 16:01:07 EDT 2017


On 29 May 2017 at 20:09, Nathaniel Smith <njs at pobox.com> wrote:
> With a random numpy checkout on my laptop and a fully-primed ccache,
> some wall-clock timings:
>
> no-op incremental build (python setup.py build): 1.186 seconds
>
> python setup.py sdist: 3.213 seconds
> unpack resulting tarball: 0.136 seconds
> python setup.py build in unpacked tree: 7.696 seconds
>
> So ccache makes the sdist-and-build a mere 10x slower than an in-place
> incremental build.

These numbers are useful to know, but ignore the fact that the two
operations could give completely different results (because files in
the current directory that don't get put into the sdist could affect
the build). I have no particular opinion on whether "do an inplace
build" is something pip should offer (although it seems like something
a developer would need, and I don't see why "setup.py bdist_wheel"
followed by "pip install the_wheel" isn't sufficient in that case[1]).
But for end user installs, and for building wheels for distribution,
I'd argue that isolated builds are essential.

Paul

[1] Of course, this ignores the case of editable builds, but again, I
don't think that they should dictate the behaviour of the normal case.


More information about the Distutils-SIG mailing list