[Distutils] A possible refactor/streamlining of PEP 517

Nathaniel Smith njs at pobox.com
Sat Jul 15 04:16:04 EDT 2017


On Jul 14, 2017 5:30 PM, "Ralf Gommers" <ralf.gommers at gmail.com> wrote:



On Sat, Jul 15, 2017 at 9:31 AM, Daniel Holth <dholth at gmail.com> wrote:

> I proposed the build directory parameter because the copytree hook made no
> sense to me. It is not a perfect substitute but perhaps a configurable
> build directory is nice on its own without having to satisfy all older
> arguments in favor of copytree. I think true in-place builds are the
> oddball (for example 2to3 or any build where sources have the same name as
> outputs needs a build directory to put the translated .py files, otherwise
> it would overwrite the source). What people think of as in-place builds in
> distutils are usually just builds into the default build directory.
>

That's not the interesting part, it doesn't matter if a build is done in
build/lib*/etc inside the repo or outside, what matters is that the final
build artifacts are placed back in the source tree. So a C extension will
have .c files in the tree, and after an inplace build it will have .c and
.so (but no .o !).


Ugggh well this might be one of our problems right here.... I had totally
forgotten about that sense of "in place build".

In case this has been a source of confusion:

There's one thing called an "in place build", like `setup.py build -i`,
where the idea is to convert the working source tree itself into something
you can put on your python path. It's related to doing "development" or
"editable" installs like `setup.py develop` or `pip install -e`. As far as
I know, absolutely everyone is happy to defer all discussion of this to a
future PEP.

And then there's another thing called an "in place build", as opposed to an
"out of place" build. In this case the distinction is just that an in-place
build stores intermediate build artifacts somewhere inside the source tree,
so that future builds using that source tree can take advantage of them,
while an out-of-place build stores them in some other designated directory.
This is the distinction I've been thinking of in all these emails.

-n
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170715/6cbef5d4/attachment.html>


More information about the Distutils-SIG mailing list