On 22 June 2018 at 18:01, Brett Cannon <br...@python.org> wrote: > > On Fri, 22 Jun 2018 at 09:35 Pradyun Gedam <pradyu...@gmail.com> wrote: >> [...] > > I think the precise wording is there by not having any wording. ;) If > 'requires' was meant to be optional then the PEP would have said that.
FWIW, that's my view too. >> I can think of at least 2 options for behavior when build-system.requires >> is missing: >> >> 1. Consider a missing build-system.requires equivalent to either a missing >> pyproject.toml or build-system.requires = ["setuptools", "wheel"]. >> >> 2. Making the build-system table mandatory in pyproject.toml. >> >> I personally think (2) would be fine -- "Explicit is better than >> implicit." > > > And I think that's what pip's warning is saying the future will be, but they > aren't quite yet ready to be that strict yet with their users (which I can > understand). Precisely. We currently do accept a missing key, but the presence of pyproject.toml triggers a user-visible change in behaviour (build isolation). That is how this question came to light. The current warning is precisely intended as a deprecation warning that we're heading towards implementing (2) but we want to give people a chance to prepare. The main concern is that tools like towncrier and black *only* allow configuration to be specified in pyproject.toml, meaning that projects using those tools are using that file just as a tool config file, rather than for its stated purpose of build system configuration. IMO, that's an unfortunate choice that's been made by those tools (essentially, they have interpreted pyproject.toml as a "common location for configuration data" rather than a build config file) but that's their choice. Projects can pretty easily address the warning just by adding [build-system] requires = ["setuptools", "wheel"] to their pyproject.toml (that's what the pip project itself has done). The only case where this is an issue is where the project simultaneously needs to avoid the new build isolation mechanism - and honestly I think that's both a pretty rare situation, and not something we want to be supporting long-term anyway. I've started referring to the "no pyproject.toml, no build isolation" behaviour as the "legacy code path" to emphasise that it's only retained to support projects that haven't yet moved to the newer standards. Paul -- Distutils-SIG mailing list -- distutils-sig@python.org To unsubscribe send an email to distutils-sig-le...@python.org https://mail.python.org/mm3/mailman3/lists/distutils-sig.python.org/ Message archived at https://mail.python.org/mm3/archives/list/distutils-sig@python.org/message/VQX7DGPFSFKALV4FPQ24GFE4RRB3NUIQ/