-
-
Notifications
You must be signed in to change notification settings - Fork 629
Open
Labels
Description
Pip-tools seems incompatible with PEP 639-compatible license specifications in pyproject.toml
. Trying to implement that causes pip-tools to fail when parsing the file.
With a pip-tools compatible pyproject.toml file, new setuptools versions say this:
/tmp/build-env-jaz9xswi/lib/python3.13/site-packages/setuptools/config/_apply_pyprojecttoml.py:82: SetuptoolsDeprecationWarning: `project.license` as a TOML table is deprecated
!!
********************************************************************************
Please use a simple string containing a SPDX expression for `project.license`. You can also use `project.license-files`. (Both options available on setuptools>=77.0.0).
By 2026-Feb-18, you need to update your project and remove deprecated calls
or your builds will no longer be supported.
See https://packaging.python.org/en/latest/guides/writing-pyproject-toml/#license for details.
********************************************************************************
!!
So there are about 7 months left, until setuptools becomes incompatible with pip-tools.
Following the link given by setuptools gives a suggested fix:
[project]
license = "GPL-3.0-or-later"
# or
license = "MIT AND (Apache-2.0 OR BSD-2-Clause)"
Trying to apply this by replacing the license table in my project's pyproject.toml
file results in the reported failure to run.
Environment Versions
- Linux
- Python version:
Python 3.13.3
- pip version:
25.1.1
- pip-tools version:
7.4.1
Steps to replicate
- Have a PEP 639-compliant license specifier in pyproject.toml
- Run pip-compile
Expected result
Compiled requirements generated
Actual result
pip-tools compile outputs:
Backend subprocess exited when trying to invoke get_requires_for_build_wheel
Failed to parse /home/thomas/Projekte/MTGProxyPrinter/pyproject.toml