[Distutils] comparison of configuration languages

Nick Coghlan ncoghlan at gmail.com
Mon May 9 09:28:49 EDT 2016


On 9 May 2016 at 01:43, Donald Stufft <donald at stufft.io> wrote:
> Overall, my suggestion here would be to have a file called ``pymeta.toml`` (or
> ``meta.toml``)

pymeta.toml would be fine by me.

I don't really buy the "collision with Debian build tool" argument
against "pybuild" (if I did, I'd be objecting to "pymeta" colliding
with an existing PyPI package), so it's mainly the fact the metadata
in this file covers more than just building has soured me on it.

> and have it look like::
>
>     [dependencies]
>     build = [
>         "setuptools",
>         "wheel>=1.0",
>     ]
>
> If at some point we decide we need to add a bootstrap_requires (and then the
> ability to add dynamic build requirements) we can do that by just saying that
> if you plan on having dynamic build requirements, you need to omit the build
> key under the [dependencies] section.

Looking at my previous ideas for semantic dependencies in PEP 426,
what if we start in the near term by defining development
requirements?

That can then be used to hold arbitrary development dependencies
(metadata generation, sdist creation, test execution, wheel build,
docs build, etc), everything that you need to work on, build, and test
the software, but don't need if you just want to run the published
releases.

We may later decide that we want to break that down and separate out
specific requirements for sdist creation and for wheel creation, but
we can handle that by saying that if there's no more specific
dependency definition for an operation, then the tools will fall back
to pre-installing all the listed development dependencies.

That is, someone might write:

     [dependencies]
     develop = [
         "setuptools",
         "wheel>=1.0",
         "sphinx",
         "pytest",
   ]

And it would be useful not only for running setup.py commands, but
setting up their local dev environment in general.

(Having docs build and test dependencies listed would be entirely
acceptable for the RPM spec autogeneration case, since we just have
the BuildRequires/Requires split at the RPM level, and often need the
docs dependency to generate man pages, and the test dependencies to
run the unit tests in the %check scriptlet)

Cheers,
Nick.

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


More information about the Distutils-SIG mailing list