Ranking all projects by a total score can provide a much deeper understanding of the ecosystem. While quantifying the state and health of a project remains challenging, using a multidimensional index creates a more comprehensive picture. A repository’s total score is a composite index of three dimensions: size, community and activity. Each dimension contains several indicators, represented by an index used to rank projects relative to each other. Each dimension index is referred to as a score.


Fig. 22 - The relationship between the dimensions and indicators within the ranking.#

For example, the activity score ranks each project using an index composed of Total Commits Last Year, Issues Closed Last Year, Day Until Last Issue Closed, and Last Release Data, which is normalised by 1. The weighted sum of all scores (activity, community, and size) is referred to as the “total score”. The figure above shows the relationship between the dimensions and indicators within the ranking (for implementation detail, see this code cell.)

Unlike stars, which can provide insight into a project’s overall popularity, ranking by total score unveils unpopular but otherwise strong projects. For example, larger projects like EnergyPlus suddenly rises to the top. However, as with any index, there are limitations. In this case, monolithic software developments have a higher probability of achieving a high score, meaning that projects which rely more on a modular approach (i.e., projects distributed across multiple repositories) may be significantly underrepresented.

The ranking of the projects according to their activity rating highlights the young projects that are still developing rapidly. DeepTreeAttention in particular stands out here, which is mainly developed by a single person. Other young projects such as Ozon3, cmip6-downscaling or PowerSimulations.jl show not only a very high activity but the DDS also shows a strong growth of the community of this young projects.

The real value of such health analytics comes into play when development and community data is combined with usage data. Unfortunately, this data is currently only available to a limited extent via Python dependencies. Further work is required to extend usage metrics to include other software package managers and survey methods.


Click the project name and go directly to the repository.