dropping `setuptools` and `wheel` deps from `pip`
In the new packaging scheme for python, pip no longer has setuptools and wheel as dependencies. Many of conda-forge's recipes rely on this transitive dependence (roughly ~20% according to this comment). Further, external users of pip also rely on this currently (see, e.g., pytorch). We'd like to move away from this in order to treat setuptools and wheel more consistently with respect to other build backends like flit, hatchling, etc.
To do this, we have arrived at the following transition plan, pulled from the original issue:
- [x] add the deps back for now (https://github.com/conda-forge/pip-feedstock/pull/125)
- [x] make an announcement that these deps will be dropped as follows (per @isuruf's comment below, https://github.com/conda-forge/conda-forge.github.io/pull/2268)
- dropped from pip on python 3.13 with the release of python (2024-10-01)
- dropped from pip on python < 3.13 at the completion of the python 3.13 migration
- [x] have the linter hint for missing build backends (https://github.com/conda-forge/conda-smithy/pull/2039)
- [x] add allow list in the linter for backends themselves (https://github.com/conda-forge/conda-smithy/pull/2046)
- [ ] possibly create a mini-migrator in the bot to add these deps as needed (see https://github.com/regro/cf-scripts/issues/2888, though this task may have some subtle issues associated with it)
- [x] upon the release of python 3.13, remove the deps from pip for python 3.13 (https://github.com/conda-forge/pip-feedstock/pull/126)
- [ ] once python 3.13 migrator is done, remove the deps for pip on python < 3.13 (we will only do this for new releases of pip and leave older ones alone)
cc @conda-forge/pip @conda-forge/core for comments
closes https://github.com/conda-forge/pip-feedstock/issues/124
I think we should make a pip package that drops wheel and setuptools for python>=3.13, but keep them for python<3.13 at the beginning. Then drop wheel and setuptools for python<3.13 after the 3.13 migrator is done.
I think we should make a pip package that drops wheel and setuptools for python>=3.13, but keep them for python<3.13 at the beginning. Then drop wheel and setuptools for python<3.13 after the 3.13 migrator is done.
SGTM! I have adjusted the text above.
There wouldn't happen to be a way to silence the linter on this issue? https://github.com/conda-forge/pdm-backend-feedstock/ is its own build backend and as such works fine absent setuptools/wheel but still trips the warning on every PR.
We can add an allow list in the linter.
That would be amazing.