Problem
Installing scylla-driver from source (git) fails with:
configuration error: `project.license` must be valid exactly by one definition (2 matches found):
Root Cause
The pyproject.toml uses the PEP 639 SPDX license expression format:
This format is only supported by setuptools >= 77. However, the [build-system] section requires only setuptools>=70:
[build-system]
requires = ["setuptools>=70", "Cython"]
When a downstream project constrains setuptools to <75 (e.g., via build-constraint-dependencies), setuptools 74 sees the SPDX string and interprets it as matching both the old dict-style and new string-style license definitions, causing the error.
Suggested Fix
Either:
- Bump the minimum setuptools to
>=77 in [build-system].requires
- Or use the old format:
license = {text = "Apache-2.0"}
Option 2 is more compatible with downstream consumers that pin older setuptools versions.
Reproduction
pip install "setuptools>=70,<75"
pip install "scylla-driver @ git+https://github.com/scylladb/python-driver.git@dk/fix-for-proxy-access-2"
Problem
Installing
scylla-driverfrom source (git) fails with:Root Cause
The
pyproject.tomluses the PEP 639 SPDX license expression format:This format is only supported by setuptools >= 77. However, the
[build-system]section requires onlysetuptools>=70:When a downstream project constrains setuptools to
<75(e.g., viabuild-constraint-dependencies), setuptools 74 sees the SPDX string and interprets it as matching both the old dict-style and new string-style license definitions, causing the error.Suggested Fix
Either:
>=77in[build-system].requireslicense = {text = "Apache-2.0"}Option 2 is more compatible with downstream consumers that pin older setuptools versions.
Reproduction