One nice thing about providing a “put your work in this directory” setting for 
all tasks is that only the front end has to know how and where to create it, 
and how and when to clean it up later. Users may want to configure this across 
all projects, regardless of the backend in use.

Permitting this directory to be the source tree implicitly requires backends to 
support “in place” builds (i.e. you should put output files in a matching 
structure under that directory in case it really is the source tree). In this 
case, front ends need to be responsible for (not) running rmtree and backends 
should not blindly delete everything (or else they’ll get bug reports from very 
upset users).

Cheers,
Steve

Top-posted from my Windows phone at EuroPython

From: Thomas Kluyver
Sent: Monday, July 10, 2017 9:14
To: distutils-sig@python.org
Subject: Re: [Distutils] A possible refactor/streamlining of PEP 517

On Mon, Jul 10, 2017, at 07:01 AM, Nick Coghlan wrote:
> So I think we have pretty solid evidence that the reason the
> procedural "build directory preparation" hook wasn't sitting well with
> people was because that isn't the way build systems typically model
> the concept, while a "build directory" setting is very common (even if
> that "setting" is "the current working directory when configuring or
> running the build").

Hooray! :-)

Do we want to also provide a build_directory for the build_sdist hook?
In principle, I don't think making an sdist should involve a build step,
but I know that some projects do perform steps like cython code gen or
JS minification before making the sdist. I think this was a workaround
to ease installation before wheel support was widespread, and I'd be
inclined to discourage it now, so my preference would be no
build_directory parameter for build_sdist. Backends which insist on
generating intermediates at that point can make a temp dir themselves.

Then I guess that the choice between building a wheel directly and
attempting to build an sdist first (with direct fallback) is one for
frontends, and doesn't need to be specified.

Thomas
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

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

Reply via email to