[Distutils] PEP 517: Open questions around artifact export directories

Nick Coghlan ncoghlan at gmail.com
Sat Jun 10 13:14:07 EDT 2017

On 11 June 2017 at 02:59, Donald Stufft <donald at stufft.io> wrote:
> We have a few possible cases where the build-the-wheel backend is going to
> be called:
> 1) We’re creating a wheel ahead of time to publish somewhere.
> 2) We’re creating a wheel JIT that we’re going to cache.
> 3) We’re creating a wheel JIT that we’re not going to cache.


> Ultimately allowing the front end to do this gives us flexibility, the
> backend doesn’t know why we’re building the wheel so it can’t make decisions
> to try and optimize the workflow that it goes through, it can only do the
> same thing every time. However if we allow the frontend to manage that, then
> the frontend, which does know why we’re building things, can alter what it
> does with those results depending on what it expects to be done with them.
> Keeping it in the backend doesn’t really buy us much of anything, except
> that a handful of backend authors don’t have to make relatively minor
> adjustments to their code base. In a vacuum I can’t see any compelling
> reason to have the backend do the archiving at all and the only reason I
> think we’re talking about it is that’s just how the backends work now— but
> again, changing that is almost certainly going to be extremely trivial to
> do.

Thanks for spelling those out - that's the intuition that prompted me
to make the suggestion, but without working through the specifics I
wasn't confident enough in the idea to specifically request that
Thomas make the update.

Thomas - I agree with Donald's reasoning here, so would you mind
updating the PEP accordingly? I think it's OK if that means that the
initial PEP 517 support in the existing backends builds the archive
and then unpacks it:

- future PEP 517 backends still won't need to include support for
their own wheel building
- existing backends can do pack-and-unpack if that's easier for them,
and defer refactoring until later
- some backends may simply never be refactored, and that's between the
backend developers and their users
- for setuptools, `bdist_wheel` is actually provided by Daniel Holth's
wheel project, and that could potentially gain a
`bdist_wheel_unpacked` command


Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia

More information about the Distutils-SIG mailing list