[Distutils] Provisionally accepting PEP 517's declarative build system interface

C Anthony Risinger c at anthonyrisinger.com
Fri Jun 2 23:53:17 EDT 2017

On Fri, Jun 2, 2017 at 3:58 PM, Thomas Kluyver <thomas at kluyver.me.uk> wrote:

> On Fri, Jun 2, 2017, at 06:14 PM, Donald Stufft wrote:
> The steps here would basically be (for building from something that isn’t
> already a .tar.gz or a .whl):
> That sounds OK to me. I think the only remaining point of contention is
> whether the build_sdist hook should make an archive or an unpacked
> directory. I'm not entirely sold, but Nick's point about not having to
> specify the archive format is enough that I've changed my PR to specify an
> unpacked sdist.

This isn't a question directed at what I've quoted here, but seems as good
of place as any.

I want to make sure I understand what I'd need to do, as a user, in a post
PEP 517 world. Say I wanted to accomplish the following three things:

* Generate version info from my VCS
* Generate .h and .c from .pyx or cffi's out-of-line API mode
* Use an alternative build process for a platform distutils isn't behaving
with (ignore this requirement if it leads to problems answering, we can
just as well assume distutils here)

Since I can only define one entrypoint for build-system.build-backend, I
can't point directly at setuptools_scm (or equiv) as it only achieves the
first, I can't point directly at cython or cffi (or equiv) as it only
achieves the second, and I can't point directly at my-custom-backend or
distutils as it only achieves the third... right? If I added setuptools_scm
and cffi to build-system.requires, will it have an opportunity to somehow
do something useful before my-custom-backend begins its work?

Does this mean, for many situations, unless a single backed supports all
the things I want to do automatically to my source tree prior to building,
I need to write a local wrapper build-system backend, in my project, that
farms out build API calls to each of the backends above, myself? Can I call
it setup.py?

I'm not suggesting the above is good or bad, or even suggesting it wouldn't
be an improvement over what we have now, I'm just trying to think through
how it works and how I'd end up doing things.


C Anthony
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.python.org/pipermail/distutils-sig/attachments/20170602/32b685c9/attachment.html>

More information about the Distutils-SIG mailing list