On 11 May 2016 at 10:39, Brett Cannon <br...@python.org> wrote:
> Donald, Nathaniel, and I have finished our proposed PEP for specifying a
> projects' build dependencies. The PEP is being kept at
> https://github.com/brettcannon/build-deps-pep, so if you find spelling
> mistakes and grammatical errors please feel free to send a PR to fix them.
>
> The only open issue in the PEP at the moment is the bikeshedding topic of
> what to name the sub-section containing the requirements: `[package.build]`
> or `[package.build-system]` (we couldn't reach consensus among the three of
> us on this). Otherwise the three of us are rather happy with the way the PEP
> has turned out and look forward to this being the first step towards
> allowing projects to customize their build process better!

I prefer [package.build-system]. My rationale for that is that the
build system may have *its own* configuration mechanism, separate from
this file, and I don't want people to get confused between a project's
"build settings" and its "build system identification".

Take the default case: for a distutils/setuptools based project, the
actual build settings are the arguments to setup() in setup.py, *not*
these new settings in pyproject.toml. By contrast, the settings in
[package.build-system] are the ones that tell pip and other installers
what is needed to make "setup.py bdist_wheel" work (and, in the
future, will tell them when to invoke something other than "setup.py
bdist_wheel" to do the binary build)


> For the vast majority of Python projects that rely upon setuptools,
> the ``pyproject.toml`` file will be::
>
>   [package.build-system]
>   requires = ['setuptools', 'wheel']  # PEP 508 specifications.

It would be worthwhile showing an example of using the new mechanism
to bootstrap a project that relies on numpy.distutils.

> Open Issues
> ===========
>
> Name of the build-related sub-table
> -----------------------------------
>
> The authors of this PEP couldn't decide between the names
> ``[package.build]`` and ``[package.build-system]``, and so it is an
> open issue over which one to go with.

"package.build-system", for the reason given above (i.e. "build"
conflicts with the project's actual build settings).

> Rejected Ideas
> ==============
>
> Other semantic version key names
> --------------------------------
>
> Names other than ``semantics-version`` were considered to represent
> the version of semantics that the configuration file was written for.
> Both ``configuration-version`` and ``metadata-version`` were both
> considered, but were rejected due to how people may confuse the
> key as representing a version of the files contents instead of the
> version of semantics that the file is interpreted under.

Would you be open to using schema-version rather than
semantic-version, and then formally defining the format via jsonschema
and/or JSL [1]?

Cheers,
Nick.

[1] The latter is like an ORM for jsonschema: https://pypi.python.org/pypi/jsl

-- 
Nick Coghlan   |   ncogh...@gmail.com   |   Brisbane, Australia
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
https://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to