Package metrics

As @logankilpatrick notes in his recent blog post, the package manager is one of the best features of Julia.
There are many well known, and actively developed packages.
However, there are some packages which are either completely unmaintained, or have many open issues.
I think it would be great if the package manager could help the developer by providing key metrics for packages.
An initial list of package metrics that could be collected periodically:

  • developer provided features, such as short description and keywords related to the functionality of the package
  • open statistics, such as time from last commit (perhaps adding the Julia version that was available when the last commit was made), number of open issues, etc.
  • code analysis statistics, such as documentation for exported functions, unit tests, and possibly test coverage (even if not full code coverage, just list the percentage of exported functions that are called in the unit tests)
  • usage statistics, since the packages are downloaded by the package manager, it could collect usage statistics.
    In order to make sure that no private statistics are collected, the data can be gathered using differential-privacy techniques (e.g. Apple’s collection of user data).

With this data available to the package manager, a search option could be added: searching for keywords would return a list of packages with relevant “maturity” scores.