On 27 June 2018 at 22:09, Pradyun Gedam <pradyu...@gmail.com> wrote:
>
> On Wed, Jun 27, 2018 at 9:15 PM Paul Moore <p.f.mo...@gmail.com> wrote:
>>
>> On 27 June 2018 at 15:59, Pradyun Gedam <pradyu...@gmail.com> wrote:

>> >
>> > Assuming we are going to disallow missing build-requires,
>> > I think a better way for this would be to allow a user to override
>> > build-requires on a per-package basis. It'd be a more verbose
>> > and also clearer about which packages are needing some sort
>> > of work-around to install, pushing packages to just directly
>> > specify build-requires in future releases.
[...]
>> 1. Project has pyproject.toml with build-system.requires specified. No
>> problem, full PEP 518 behaviour (and pip uses build isolation).
>> 2. Project has pyproject.toml but no build-system.requires, Illegal,
>> confirmed by this discussion, so terminate with an error (pip currenly
>> warns, but will move to an error after a deprecation period).
>> 3. Project has no pyproject.toml. Old-style project, PEP 518 says that
>> the default is [setuptools, wheel]. Pip will actually use the legacy
>> (no build isolation) code path, which is a backward compatibility
>> choice. I'm not actually sure PEP 518 needs to even comment on this
>> case, as such projects clearly don't conform to that PEP and tools
>> like pip will of necessity have to handle them as "legacy".
>>
>> The only case where I can see your "per-package overrides" fitting in
>> would be (3), which is outside the scope of PEP 518 and so really a
>> pip-only issue.
>
> I am suggesting it for (2).

But Brett clearly stated that he views PEP 518 as stating that the
build-system.requires key in pyproject.toml is *not* optional. And I
think that's the correct reading of the PEP.

Projects that want to use pyproject.toml for tool settings can, and
should, just set build-system.requires (presumably to ['setuptools',
'wheel'] as they obviously don't need a non-default value).

>  I'll elaborate on the tracker.

OK. But I'm going to take the view that having explicitly requested
clarification on distutils-sig, if we want to do anything other than
reject a pyproject.toml with a missing build-system.requires as
invalid, we need to first of all get the PEP changed. And for that
we'll have to have a good use case to justify the change. Personally,
I don't see the value.

>> > This is already a feature request for pip for a different use case
>> > and I think it's a reasonable request.
>>
>> What's the issue number? I don't recall seeing anything like this.
>
> https://github.com/pypa/pip/issues/4582

I found that discussion confusing at the time, and on rereading I
don't think my view has changed :-(

I'm going to be offline for a week or two, but if you do raise a
tracker item, I'll pick it up once I return.
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/BR7R5EG5PXGYOCI2MPLYBZWNYFX36SWE/

Reply via email to