On Fri, Jul 7, 2017 at 4:05 AM, Paul Moore <p.f.mo...@gmail.com> wrote:
> On 7 July 2017 at 11:30, Nathaniel Smith <n...@pobox.com> wrote:
>> Is it absolutely necessary to get this into the first PEP?
>
> As far as I'm concerned, it's no more than a restating (and
> simplification?) of all the discussions around building out of tree
> via creating an sdist and unpacking it, or having the various prepare
> files hooks. It's always been there and always been a requirement.

...? The text I was replying to was about adding a new argument to
build_wheel that backends would have to check for and do special
things based on. I mean, I really do see the attraction of requiring
all build systems to support "build directories", that potentially
enables some neat things like caching the directories across builds,
but it's clearly a novel technical proposal, and one that's actually
attempting to go beyond the rest of the world's build system
state-of-the-art at a time when we're still trying to catch up with
the capabilities of like, automake circa 2000.

> Also, out of tree builds are something that pip is planning on
> implementing, and for us it's therefore necessary to have hooks that
> let us do that. The current version of the PEP provides those hooks,
> and we're planning on using them to do out of tree builds. This new
> suggestion is basically backend authors saying "you don't need to do
> the out of place builds, we're willing to take responsibility for
> that". If you're saying that you're not happy with that, then all that
> will end up happening is we revert to the previous approach, and pip
> implements out of tree builds based on that (and I guess you have the
> same argument all over again on the PR for the pip change...)

I am resigned to pip doing whatever it wants :-). At this point I just
want to get something clean and functional landed that we can build on
with a minimum of warts that we end up regretting later. If there's no
way to land a workable build_wheel without this extra stuff, then OK;
that's why I asked. But if it can be split into a future PEP then I
think we should.

> Also, please note that the proposal doesn't *prohibit* in-place
> builds, quite the opposite, it allows backends to decide when asked
> how to implement both in-place and out of place builds (where the
> current tree allows backends to decide how to do in place builds and
> how to copy trees, and leaves the frontend to decide how to implement
> out of place builds, typically via something like a tree copy and
> subsequent in-place build).

It mandates that all backends implement both in-place and out-of-place
builds, including those backends which can do in-place builds
correctly (e.g. projects that produce compiled artifacts but which
accurately tell when they need to rebuild). Which is a little
surprising, because what we actually care about is correct builds, and
out-of-place builds are just one possible strategy for that. It's
certainly one approach, but I don't feel confident that we can quickly
and accurately determine that it's *the* best approach that we want to
commit to forever.

-n

-- 
Nathaniel J. Smith -- https://vorpus.org
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to