`project.classifiers[10]` must be trove-classifier
christophfink opened this issue · 3 comments
Describe the bug
Building the current (v0.7.11, v0.7.12) versions fails in cythonize due to an ostensibly wrong formatting of the new license descriptor in pyproject.toml, if validate-pyproject happens to be installed.
To Reproduce
Steps to reproduce the behavior
- have validate-pyproject in your environment (e.g., when building with
--no-isolation
, it is not pulled in when building in abuild
chroot) - unpack the source tar
- run
python -m build
Expected behaviour
build passes successfully
System
- OS: Arch Linux (up-to-date rolling release)
- Architecture: x86_64
- Library version: 0.7.11, 0.7.12
- Python version: 3.12
Additional context
This is, at this time, an issue mostly for pushing a new PKGBUILD to the Arch AUR repository, as the recommended way of building Python packages there is to use --no-isolation
. It could be circumvented. However, this is also indicative of either the BlueOak licenses not being recognised in the PyPi ontology, or of a typo somewhere, both of which should be fixed anyway
You can also run validate-pyproject pyproject.toml
to receive the same error.
* Getting build dependencies for wheel...
Compiling src/simplification/cutil.pyx because it changed.
[1/1] Cythonizing src/simplification/cutil.pyx
validate_pyproject.api.load_builtin_plugin defines `tool.distutils` schema
validate_pyproject.api.load_builtin_plugin defines `tool.setuptools` schema
configuration error: `project.classifiers[10]` must be trove-classifier
DESCRIPTION:
`PyPI classifier <https://pypi.org/classifiers/>`_.
GIVEN VALUE:
"License :: OSI Approved :: Blue Oak Model License (BlueOak-1.0.0)"
OFFENDING RULE: 'format'
DEFINITION:
{
"type": "string",
"format": "trove-classifier"
}
Traceback (most recent call last):
File "/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in <module>
main()
File "/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 357, in main
json_out["return_val"] = hook(**hook_input["kwargs"])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/pyproject_hooks/_in_process/_in_process.py", line 134, in get_requires_for_build_wheel
return hook(config_settings)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/setuptools/build_meta.py", line 325, in get_requires_for_build_wheel
return self._get_build_requires(config_settings, requirements=['wheel'])
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/setuptools/build_meta.py", line 295, in _get_build_requires
self.run_setup()
File "/usr/lib/python3.12/site-packages/setuptools/build_meta.py", line 311, in run_setup
exec(code, locals())
File "<string>", line 31, in <module>
File "/usr/lib/python3.12/site-packages/setuptools/__init__.py", line 103, in setup
return distutils.core.setup(**attrs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 159, in setup
dist.parse_config_files()
File "/usr/lib/python3.12/site-packages/setuptools/dist.py", line 627, in parse_config_files
pyprojecttoml.apply_configuration(self, filename, ignore_option_errors)
File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py", line 72, in apply_configuration
config = read_configuration(filepath, True, ignore_option_errors, dist)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py", line 133, in read_configuration
validate(subset, filepath)
File "/usr/lib/python3.12/site-packages/setuptools/config/pyprojecttoml.py", line 61, in validate
raise ValueError(f"{error}\n{summary}") from None
ValueError: invalid pyproject.toml config: `project.classifiers[10]`.
configuration error: `project.classifiers[10]` must be trove-classifier
ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Sorry, closing this for now as it seems to be related to an outdated version of validate-pyproject
packaged for Arch