On Thu, 28 Jun 2018, 04:38 Nathaniel Smith, email@example.com wrote:
- We could say that build-system.build-backend is mandatory, and error
out if it's missing. But that will break the world (probably even more so than making build-system.requires mandatory now will break the world, since by the time this happens there will be more pyproject.toml files in the wild). [...]
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.
In the second option - we might never get to the place where no-one uses it because, why would anyone add the boilerplate if not writing it achieves the desired result?
Another option exists and I think that's what pradysung was suggesting - error out (after the grace period), and when something breaks direct people to use the --force-build-requires=setuptools flag to fix it "Right Now" and file a ticket with the package to get the "Real Fix". And make the flag work on a per-package basis (like the only-binary flag)
The same can be done with build-backend (PEP will need to change to disallow it missing)