More metrics for crate maintenance status in crates.io

When searching in crates.io, there may be dozens of crates that meet my requirement. There are two standards for me to pick one crate to use: whether the crate is popular (i.e. total downloads), and whether the crate is still maintained (i.e. last update date). However, for some fields that are not generally used, the total downloads number is small, and it is important to pick a crate that is still under good maintenance.

However, I think current metric for maintenance status is not enough. There are many reasons for a crate to have its last update one year ago or older:

  • The crate does have completed functionalities, and the maintainer answers the questions of users in GitHub issues frequently, while no new updates are released since no new feature is requested
  • Due to the low downloads number and long ago last-update, fewer users tend to use this crate, thus no new issues found, and the crate is "dead" although the owner is still willing to maintain it if bug found or feature requested.

Both situations still indicate the crate is under good maintenance, while even though I can go to GitHub repo to check whether it is in situation 1, and email author to check situation 2, we still cannot get a good view of maintenance in crates.io directly. Even for current metric, i.e. last update date, some crate authors tend to bump dependencies merely to keep the last update date new, which I don't think it is a good practice.

Should we add some new metrics to indicate whether this crate is under good maintenance, or the author is still willing to maintain it?

I don't know how you could reliably detect that, not automatically at least. There was a field in Cargo.toml for this. But that depends on the author doing a final update to indicate it is no longer maintained. What if the author died?

So I don't think this discussion will go anywhere unless you have a specific proposed solution on mind that we can discuss the pros and cons of.

2 Likes

Thank you for the response. The badges field does indicate the maintenance status.

Search ranking on lib.rs takes maintenance into account, using many signals beyond just the badge field.

3 Likes

Is this behind the scene or some quantities that we can observe except the ranking itself?

Not quite. Some of the heuristics are just part of the ranking algorithm calculation.

Crates that are very very dead will be grayed out and/or marked [deprecated]:

There's reverse dependencies page that shows a chart with the number of active (not outdated themselves) users, which illustrates abandonement nicely:

2 Likes

maybe there could be a button that the crate maintainer has to click once a year with email reminders and if they haven't clicked it in 1.5 yr (so there's some leeway if they're e.g. on vacation), then the crate automatically gets marked unmaintained.

2 Likes