[Distutils] PEP for specifying build dependencies

Nathaniel Smith njs at pobox.com
Wed May 11 19:01:49 EDT 2016


On Wed, May 11, 2016 at 11:32 AM, Brett Cannon <brett at python.org> wrote:
[...]
> the file is for the project, not just the package(s) the project
> contains ("package" is an overloaded term and I don't want to contribute to
> that with the filename; I can live with the build details being in relation
> to a package in the project and thus named [package], but other things that
> may end up in this file might not relate to any package in the project).

We went back and forth on the overloaded "package" name a bit while
drafting too, and eventually just gave up and went ahead because it's
not that important.

To me this feels similar to situations I've encountered in the past,
where I've spent a bunch of time debating between two things, and it
turned out that the reason we couldn't agree was because both
proposals were wrong and a third solution was much better :-).

I still don't think the [package] name part is worth arguing about
much, but throwing this out there in case it turns out to be that
"third way" that suddenly makes everyone go "a-ha!":

If you think about it, really the stuff in [package.build-system] is
there to tell pip how to run the build system. It's associated with
building the project/package, sure, but that's not what makes it
special -- everything that goes in this file will be associated with
building or developing the project/package: [tool.flit],
[tool.coverage], [tool.pytest], [tool.tox], whatever. The build-system
stuff could easily and comfortably have gone into
[tool.pip.build-system] instead... *except* that we don't want it to
be specific to pip, we want it to be a piece of shared/common
configuration that's defined by a shared process (PEPs) and used by
*multiple* tools. That's why it doesn't belong in [tool.pip].

Or another way to put it, contrasting [tool.*] versus [package.*] is
kinda weird, because those categories aren't actually contradictory --
it's like having categories [red] versus [square].

So, proposal: maybe we should rename the [package] namespace to
something that reflects what distinguishes it from [tool], like:

  [standard.build-system]

or

  [common.build-system]

or

  [shared.build-system]

-n

-- 
Nathaniel J. Smith -- https://vorpus.org


More information about the Distutils-SIG mailing list