On Fri, Jun 2, 2017 at 3:58 PM, Thomas Kluyver <thomas@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