Reclaim Inactive Package Names through Community Voting

As Rust continues to grow and mature, should we empower the official team or the community to make more decisions?
For instance, there's the well-known case of the "request" package name being held by a crate that hasn't been updated for nine years, forcing the actually widely-used library to adopt "reqwest" as its name simply due to the uniqueness requirement of package names.
This situation seems rather absurd, and it's making it increasingly difficult for new package authors to choose concise and accurate names for their packages (regardless of how good their packages might be).
Therefore, I propose that we should establish certain mechanisms to reclaim these valuable package names that are currently unused or abandoned.

Therefore, I propose we should implement mechanisms to reclaim valuable package names.

I suggest that someone should be able to apply for name reclamation through the community when all of the following conditions are met:

  1. :

    • Has not been updated for 12 months, or
    • Was created within the last 6 months and has fewer than five non-author Issues or PRs (these numbers are approximate, meant to indicate low activity)
  2. The proposal demonstrates that the new crate is a superior successor to the original one

  3. Other compelling evidence that supports the reclamation request

Rust consistently avoids carrying historical baggage, clearly, this should also be considered as.

2 Likes

No it is not. It just makes it impossible to publish them on crates.io, which is not the only external source supported by cargo.

As for 1) There may be stable packages that are concise and self-contained and done, so they don't need any updates after 12 months.

12 Likes

I’d say this goes a bit too far.

It’s already notable IMO that for a while now, many of the name squatting crates do actually get deleted every so often; and since recently-ish crate authors can also delete crates themselves under certain conditions.

I think each such step should be small, and leave some time to observe the effects it has…

As a fun exercise, you can watch what crates were recently deleted in the crates index repo, which sometimes includes some concise/good names being reclaimed.

Interestingly, even in the single-letter crates category some apparently squatted, deleted and re-claimed crates are fairly recent actually ^^

7 Likes

Technically not, but in practice nobody is going to use your library if it's not on crates.io.

3 Likes

It's free software. I don't gain anything from others using it.

No comment about how difficult it is to find good available names on crates.io but not publishing on crates.io has another downside. If your crate is not on crates.io, anyone using your crate as a dependency also cannot publish on crates.io. Since, as far as I know, crates.io does not allow external dependencies.

2 Likes

The decision might indeed appear somewhat drastic, but this firmness seems necessary - much like how we reclaimed "gen" as a reserved keyword in Rust 1.85.

When facing future possibilities, we should implement a garbage collection mechanism to ensure Rust's healthy development before ambiguities arise.

While original crate authors do have the right to claim those excellent names, there's a corresponding responsibility to maintain them properly. This imbalance between ownership and maintenance obligations doesn't align with Rust's philosophy of responsible stewardship.

3 Likes

Heresy! Oh wait, you mean for package names. :yum:

There's still a tension here that literally any use of an "abandoned" package name, at any time means removing it is a breaking change; you should be able to check out your code as of 10 years ago and still build it. (Not to mention package mirrors/caches that can get arbitrarily large)

I'm impressed that it's already being looked at, therefore!

5 Likes

It never hurts to ask. Twice the squatter was willing to hand over the name after a polite request.

5 Likes

Maybe - but I think that is a cool memorable name :slight_smile:

Also - it's a good reminder that crates.io is not the standard library. One day it will be cleared out - when Amazon stops sponsoring it.

4 Likes

Perhaps it is a cool memorable name, but for newcomers, the confusion they experience might be the most genuine reality.

I believe we should strive to prevent such confusion from arising.

Crates.io has existed long before AWS knew about the existence of Rust and will continue to exist when AWS drops sponsoring. By the time AWS could potentially consider to stop sponsoring it, I expect https://github.com/rust-lang/rfcs/pull/3724 or something similar to be fully implemented making mirroring of crates.io possible without having to trust the entity mirroring it, which would significantly reduce load on upstream crates.io if other big players start mirroring crates.io for builds running on their CI platform.

3 Likes

not expected from natural selection

Note that I can't think of a single thing that we do through community voting right now. They're just too prone to brigading or other kinds of popularity contests to use them to make decisions.

Surveys to collect feedback, FCPs to make sure anyone can weight in, etc? Absolutely. But deciding based on open polls? No.

17 Likes

Yes, what you say makes a lot of sense. My original intention was to solve the problem of crate name squatting. As for how to solve it, what I proposed is just a preliminary solution. If there is a more democratic method that is independent of status or position, that would naturally be the best.

Something being inactive (or simply not needing an update) does not mean the name is being squatted. There is already a formal policy for squatting.

3 Likes

Is there a formal theorem along the lines of "All the good names are taken"? The longer a system persists and accepts new users, the greater scarcity of good names.

This is a common experience across a number of sectors, not just crate names or user handles. Our local housing developers complain that all the good street names are taken.

1 Like
1 Like

Relevant proposal:

This is an interesting concept, and definitely relevant. Although all the cases I had in mind fall under the human-readable value category. The dynamic I had in mind is more derivative of Malthusian scarcity, except the resource everybody is using, the set of available names, only shrinks and never grows. The more successful the system becomes (i.e. the more participation increases), the more likely it is that all the good names are taken.

Note that the private commercial sector wrestles very actively with this gorilla. If someone wanted to hire me as a speaker, they could offer to venmo me money for an uber to the airport, put me up in an air-bnb, and zoom my talk all over the world, and I would understand what they meant. Not to put a band-aid on the issue.

2 Likes