[Distutils] PEP for specifying build dependencies

Nick Coghlan ncoghlan at gmail.com
Thu May 12 03:01:12 EDT 2016


On 12 May 2016 at 11:33, Donald Stufft <donald at stufft.io> wrote:
> I don't really think of it as package vs tool, I think of it as an implicit
> <standard stuff> vs an explicit <third party stuff>. I think it makes the
> file
> uglier to have the <standard stuff> explicit, particularly since I think the
> example should really be something like:
>
>     [standard.package.build-system]
>     requires = ["setuptools", "wheel"]
>
>     [tool.flake8]
>     ...
>
> Because the value of the [package] namespace isn't that it separates us from
> the [tool] namespace (we could get that easily without it), but that it
> separates us from *other*, non packaging related but "standard" stuff that
> might be added in the future.

In that case though:

1. semantics-version isn't about the package, it's about the
pyproject.toml file itself.
2. build-system feels like it could readily be top level as well,
regardless of what other sections we added later

That would make the example in the PEP
===============
semantics-version = 1  # Optional; defaults to 1.

[build-system]
requires = ["setuptools", "wheel"]  # PEP 508 specifications.
===============

So I'm not clear on what the [package] namespace is buying us over
just having [build-system] as a top level namespace (it would be
different with a section name of "build" - for that, [package.build]
reads nicely, and you can mostly ignore that it creates a nested
namespace TOML. As noted elsewhere, I don't like "build" though -
we're not configuring the build, we're specifying what's needed to run
the build system in the first place).

Cheers,
Nick.

-- 
Nick Coghlan   |   ncoghlan at gmail.com   |   Brisbane, Australia


More information about the Distutils-SIG mailing list