On 29 May 2017 at 20:09, Nathaniel Smith email@example.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). But for end user installs, and for building wheels for distribution, I'd argue that isolated builds are essential.
 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.