A write-up of what's new in pip 24.2 — or why legacy editable installs are deprecated

Hi all,

You haven’t seen me much here, but matter of fact, I joined the pip triage team earlier this year in April!

About a month ago, we released pip 24.2. This release included neat improvements and one important deprecation (the deprecation of legacy setup.py develop editable installs). While the changelog is an accurate summary of the changes, the changelog is often hard to parse if you aren’t already experienced in packaging and it simply lacks a lot of detail, too. So, I thought a post discussing the changes in detail would be useful and interesting. I tried my best to strike a balance between including the technical details where I could, but also explaining things in a way where you didn’t have to be a tenured packaging expert to understand everything :slightly_smiling_face:

This isn’t anything official. pip doesn’t have a blog, and I’m linking to my personal site here, but I do think it’s valuable to have more detailed communications for a foundational piece of the packaging ecosystem. I make no promises that this will continue, but I’d love to write future pieces if I can.

Please enjoy!

(P.S. Yes, I only discuss the reasoning behind the deprecation of legacy editable installs at a surface level. I included that in title mostly as a way to grab attention to the most important change in the release. Don’t worry, I do link to Paul Ganssle’s thorough post on the deprecation of setup.py which you should read if you haven’t!)

(P.S.S. while you’re already here, if you want to know what’s planned for pip 24.3, you can check out the 24.3 GitHub milestone. Note that it’s not set in stone, more things will be added and a few others will likely be removed.)

15 Likes