On Fri, 22 Jun 2018 at 12:51 Paul Moore <p.f.mo...@gmail.com> wrote: > 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.
I view it as Black and Towncrier consider themselves tools as part of the build process and now helped us push pyproject.toml faster. :) > 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. > Yeah, fixing the problem is two lines of boilerplate, so hopefully the complains should be minimal.
-- 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/77Q22ZJBYFSGCEHW6OASC5YIGYJ77NDB/