Announcement: pip 24.3 release!

  • This will only affect you if you’re using setuptools to package your project

That sounds a bit scary… because I guess an overwhelming majority of packages have setuptools at their build backend. Maybe I would phrase something like the following (assuming I understood things correctly) and also add links to the Python packaging user guide (good for SEO and probably more reader-friendly than links to GitHub issues):

  • You will see this deprecation notice if the package you are trying to install has setuptools as its build backend AND:
    • EITHER this package does not have a valid build system declaration, thus pip will opt-out of the modern mechanisms and run setup.py directly as required ;
    • OR this package’s build system declaration explictly requests a version setuptools older than version 64 which lacks support for the modern editable installation mechanism (PEP 660).
  • The easiest way to address the deprecation is to add a pyproject.toml file that declares your package’s build system to be setuptools (see the guide “How to modernize a setup.py based project?” for more details).
  • You can keep your setup.py file. It’s a configuration file for setuptools, and setuptools still supports it. pip simply won’t be running it directly anymore, delegating to setuptools (see the discussion “Is setup.py deprecated?” for more details).
    • If you wish, you can migrate your packaging setup to pyproject.toml entirely, but this isn’t necessary
1 Like