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

Thomas Kluyver thomas at kluyver.me.uk
Sat Jun 3 05:45:40 EDT 2017


On Sat, Jun 3, 2017, at 03:14 AM, Nathaniel Smith wrote:
> If the pip devs don't trust build systems in general, but (as
> suggested by copy_files discussion) are ok with trusting them if they
> promise to be super trustworthy, alternate proposal:
> - add a 'in_place_build_safe = True' hook, which indicates that the
> build system has been carefully written so that this will generate the
> same result as building an sdist and then building that; pip checks
> for this to decide whether to build in place or to build an sdist
> first.

I would use this for flit if it becomes part of the spec. I can see the
rationale for not trusting build systems from the frontend's point of
view, but it does feel like all potential build systems are being
subjected to the same constraints we need for distutils/setuptools.

> One thing that's not clear to me: a crucial use case for sdists is (1)
> download, (2) unpack, (3) patch the source, possibly adding new files,
> (4) build and install. (After all, the whole reason we insist on
> distributing sdists is that open source software should be modifiable
> by the recipient.) Does flit currently support this, given the
> reliance on VCS metadata?

Flit does support that, so long as step 4 never needs to build an sdist.
Producing the sdist is the only operation for which flit needs the VCS.

This is why I'm doggedly arguing that building and installing should be
possible without invoking any 'sdist' hook. ;-)

Thomas


More information about the Distutils-SIG mailing list