On Sun, Jun 24, 2018 at 8:20 AM Nick Coghlan <ncoghlan@gmail.com> wrote:
On Sat, 23 Jun 2018, 03:08 Brett Cannon, <brett@python.org> wrote:
The JSON schema is for "illustrative purposes only", so it should not be viewed as part of the spec.
Yeah, that's exactly what I pointed out to the user in the pip issue
On 23 June 2018 at 07:47, Pradyun Gedam <pradyunsg@gmail.com> wrote: tracker
as well.
Something you may want to consider is that while PEP 518 explicitly specifies that a missing pyproject.toml should be interpreted as "build-system.build-requires=['setuptools', 'wheel']", there's nothing that specifically prohibits an installer from offering a "default-for-missing-build-requires" setting.
Right now, `pip` effectively defaults that hypothetical setting to "['setuptools', 'wheel']", with the proposed change being to switch it to "[]" instead (which better aligns with the intent of PEP 518).
However, the new semantics mean that some sdist releases of some projects will become uninstallable. Making the installer level setting explicit rather than hypothetical would allow anyone affected to deal with that problem without either being stuck on the older version of pip, or being forced to concurrently upgrade to newer versions of the affected projects.
Cheers, Nick.
-- Nick Coghlan | ncoghlan@gmail.com | Brisbane, Australia
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. This is already a feature request for pip for a different use case and I think it's a reasonable request. Sure, it is extra hoops to jump through but in the long term it makes things fairly frictionless since everyone will start specifying build-system.requires -- if there's a missing build-system.requires, use the override mechanism to use setuptools and wheel (and anything else possibly) to build it. Pradyun