On 28 June 2018 at 11:37, Nathaniel Smith email@example.com wrote:
So my inclination is to plan on ending up with build-system.requires defaulting to ["setuptools", "wheel"], and build-system.backend defaulting to "setuptools". Hopefully we'll eventually get to a place where ~no-one uses these defaults, but carrying around the code to handle the defaults isn't really a burden.
While I was going to post to say I liked this approach, after a bit of reflection, I realised I prefer Thomas Kluyver's suggestion: instead of taking "pyproject.toml" as indicating a build-isolation compatible sdist file, instead make "pyproject.toml with a build-system table" the marker for that case.
If you don't have a build-system table at all, then you'll continue to get the legacy sdist handling, allowing the addition of other tool config without impacting the way your sdist gets built.
If you do add a build-system table, then you have to populates the "requires" field properly, even if you're using setuptools as your build backend.
That way, the "build-system.backend defaults to setuptools" behaviour is only there to support pyproject.toml files that have already opted in to build isolation by writing:
[build-system] requires = ["setuptools", "wheel"]