Announcement: pip 24.3 release!

On behalf of the PyPA, I am pleased to announce that the pip team has just released pip 24.3.

This is the 4th and last release of pip for the year 2024. You can read more about our versioning, deprecation policy, and release process here .

Highlights

This is a small release with error handling improvements, support for PEP 730 iOS wheels, and bug fixes.

Please consult our changelog for more information.

Additionally with this release, get-pip.py does not install setuptools and wheel anymore on Python 3.12+, aligning with the behavior of ensurepip and venv. The get-pip issue has more information on the rationale for this change.

Thanks

As with all pip releases, a significant amount of the work was contributed by pip’s user community. Many thanks to all who have contributed, whether through code, documentation, issue reports and/or discussion. Your help keeps pip improving, and is hugely appreciated.

Cheers,

Stéphane Bidoul

21 Likes

And 24.3.1 is out, fixing a regression in handling of nested requirement files.

7 Likes

And belatedly, the write-up for the changes in pip 24.3 is now available:

Please enjoy!

4 Likes
  • 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