setuptools_scm
setuptools_scm copied to clipboard
Consistency of documentation of what version of setuptools is required
Currently there are references to the required version being:
>=60>=61>=62>=64
At various places in the docs/code.
Additionally, there is a comment that states:
https://github.com/pypa/setuptools_scm/blob/ceca2352f09ed22f825f45a392cca5aff83c6aff/docs/index.md?plain=1#L16-L17
However, the pyproject.toml does include setuptools as a runtime dependency, but does so with no pin, allowing broken environments to exist:
https://github.com/pypa/setuptools_scm/blob/ceca2352f09ed22f825f45a392cca5aff83c6aff/pyproject.toml#L48
Making these sources consistent would be appreciated, as it is rather hard to tell what I actually need to do as a user.
In my case, build isolation was getting most recent setuptools but then installing into an env that had older setuptools, and we have setuptools_scm as an optional dependency to get updated version numbers for editable installs. But because nothing pinned a version for runtime, it warned (which turned into errors in the test suite).
The issue was also reported from NumPy CI when building ninja: https://github.com/scikit-build/ninja-python-distributions/issues/226#issuecomment-2495844812
The PyPI ninja distribution has no direct dependency on setuptools. The dependency comes from scikit-build-core when using dynamic metadata which adds setuptools-scm as a build dependency (but not setuptools).
As noted by @ksunden, is there any reason not to add a lower bound pin on setuptools in pyproject.toml dependencies ?
For a while there was
But modern tooling is more avaliable since quite a while
the 9.0 release will be the last release with non-pinned setuptools for legacy deployment reasons- the 10.0 release will pin setuptools 80 as minimum