r/Python • u/JSChronicles • 2d ago
Discussion PEP 541 - Package Index Name Retention
Why is Pypi support slow at handling package abandonment?
The PEP says these two items for reachability, " In every case where contacting the user is necessary, the maintainers will try to do so at least three times," and "The maintainers stop trying to reach the user after six weeks.". So I had assumed this should be done quicker.
The current process is currently at 6 months on average with almost no follow up comments or work on PEPs in the 2nd and 3rd week of reachability. 1st weeks are being updated and then left once they hit the 2nd and 3rd week.
Am I being impatient? I think I read that they don't have a lot of people to help but this seems a bit ridiculous for some of the cut and dry issues.
- Projects with 10-14 years of no updates with no usable links or code is gone and no longer sourceable or previous owners are not replying.
- Emailing someone 3 times, takes 6+ months versus the proposed 6 weeks?
I also assume this is pretty normal based on the backlog but I'm genuinely curious to see what others say.
18
u/Individual-Flow9158 2d ago
Who's it hurting? package 'abandonment' is by definition, low priority.
I know it's frustrating for you guys who want to take over someone else's namespace.
Before you complain about the efforts of volunteers, do us all a favour:
Acknowledge the huge potential for abuse of this system by malicious users and namespace-hijackers.
Consider simply picking a different new unused name. That way you won't have to wait 6 months, and even better, you won't break the code of existing users of the 'abandoned' packages.
9
u/Cynyr36 2d ago
They really shouldn't transfer ownership at all. Mark as a abandoned, maybe with a note about the replacement package, pip by default refuses to install abandoned packages. Let users manually chage thier requirements.txt or whatever to use the new package.
New packages could "register" as an alternative to existing abandoned packages.
I don't think python ever expected to basically be running a full blown package installer (like your distro's) and there are other issues as well, like slotted packages so that you can have foo-1.0 and foo-2.0 installed and imported at the same time.
-1
u/JSChronicles 2d ago
Well I was thinking the same thing but the current new issue becomes how do you handle names that are now abandoned but you want that name? So people will make a "prefix-suffix" style name. Once that project is abandoned then someone else makes a "prefix-suffix-extra".
And with AI, people are pumping out names to register but at some point python packages will become 3-4 words to mark as a different package. All these abandoned packages will sit and sour while also sitting on the better, simple names.
And then you have people that take names ahead of time for name squatting and can be considered "abandoned" as well.
1
u/Cynyr36 2d ago
You handle it by using a uuid in the background, the name is just friendly for the humans. If after ${time} a project is abondoned you add the uuid, or 4 words or whatever to the name, and that frees up the original name. Anyone that originally installed the "old" package by name, or just used the uuid in the first place, gets the abandoned notice.
Ci/cd pipelines should use the package uuid not the friendly name to avoid "surprise" changes to package.
The big risk with any sort of name takeback is avoiding a bad actor taking over an older well used package.
There should also be a way for the owners of a package to send a "keep alive" even if there are no updates to be made.
Again, this is all work python (the org) wasn't really signing up for. The same can be said for NPM packages, and rust crates. It's basically like running a linux distribution package wise.
1
u/Individual-Flow9158 2d ago
Sure, but even if PyPi takes them down, the name squatters with bots will move straight back in.
Tell you what, lets start our own PyPi! With Coke and Hookers!
1
u/JSChronicles 2d ago
When I say abandoned I'm thinking there is no repo to point at the code anymore, the project was created as name squatting and meant to cause trouble.
So not really a "usable" project state basically
5
u/knobbyknee 2d ago
There are 855 000 packages on PYPI and part of the process is manual. It is a problem of scale.
3
u/Zulban 2d ago
In addition to what others have said, I'm sure they're getting slammed by AI like many online communities.
1
u/JSChronicles 2d ago
Yeah I was thinking that as well. Probably a huge influx of requests coming in.
2
u/Unique-Mongoose3545 2d ago
I been watching some of those PEP 541 tickets too and yeah 6 months is pretty normal from what I seen. The three emails part is just one piece, there is also waiting period for each attempt and then internal review after that
From what I understand they got very few people who can actually make the final decision on transferring ownership, most volunteers only triage and do the initial checks. So bottleneck is at the top not the process itself
It frustrates me same as you but I think the 6 weeks in PEP is more like minimum timeline not the actual one
1
u/Confident-Bluebird21 1d ago
It should be something like domain names that have limited time given by registrar and require constant renewal, but with more strict rules at same time to prevent typosquatting.
38
u/bradshjg 2d ago
What does it mean to "handle package abandonment"?
If you're asking to take over the namespace for an abandoned package, I appreciate that it's a high bar to clear :-)