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?