conda-forge.github.io icon indicating copy to clipboard operation
conda-forge.github.io copied to clipboard

dropping `setuptools` and `wheel` deps from `pip`

Open beckermr opened this issue 1 year ago • 5 comments

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

beckermr avatar Jul 31 '24 21:07 beckermr

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.

isuruf avatar Jul 31 '24 21:07 isuruf

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.

beckermr avatar Jul 31 '24 21:07 beckermr

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.

theAeon avatar Aug 30 '24 15:08 theAeon

We can add an allow list in the linter.

beckermr avatar Aug 30 '24 15:08 beckermr

That would be amazing.

theAeon avatar Aug 30 '24 15:08 theAeon