# About health

Understanding the quality of an Open Source Project is no easy task. Debricked's Open Source Health metrics can help you gain an understanding of key aspects of any Open Source Project. In this documentation we go in depth on how the metrics work and are constructed.

# What is a metric?

Simply put, a metric is a measurement of a key aspect of a open source projects overall quality, such as it's contributors or it's popularity.

The underlying datamodel works by aggregating data points into submetrics that are then aggregated into a metric. We call these:

  • Features: the lowest level datapoint
  • Practices: the aggregated submetrics
  • Metrics: the final aggregation of practices

You can think of a Metric as the area that you want to investigate (ie. Is the project popular? or Is there a healthy contributor community? , Practices as the questions you want answered (ie. How experienced are the contributors? or How long do contributors stay with the project?). The features are the datapoint that it's all built on.

Between each layer there are weights that determine the impact of any given feature on a practice, and of any given practice on a metric.

You can see the datamodel of each metric illustrated in this documentation, under that metrics subsection.

# Contributors

Open Source projects consists of contributors. When deciding what open source to bring in to your software, it is important to inspect and analyse the contribotors of a project.

Contributor metric Contributor metric data model illustration.

# Contributor Experience

This practice describes the contributor experience in a specific repository. Experienced contributors tend to write more efficient, more secure, and usable code, and should therfore be prefered.

The following features are measured:

  • Contributor Influence: Feature describing how much attention the contributors attract to the repo.
  • External Pull Requests Merged per Developer: Feature describing the average number of pull requests merged in other projects.

# Contributor Efficiency

This practice describes the contributor efficiency in a specific repository. Efficiency is measured by looking at the rate of which the contributors code, merge pull requests, and close issues.

The following features are measured:

  • Closed Issues per Developer: Feature describing the average number of issues closed per dev the past 52 weeks.
  • Pull Requests Merged per Developer: Feature describing the average number of pull requests merged per dev the past 52 weeks.
  • Developer Velocity: Feature describing the average coding speed of the developers. Calculated as lines of code merged/closed per week, averaged over the past 10 weeks.

# Contributor Diversity

This practice describes the diversity in the contributing community for a specific repository. Diversity is measured by looking at the rate new contributors, the rate of contribution per contributor, total number of contributors and the contributor trend.

The following features are measured:

  • Total Contributors: Feature describing the total number of contributors.
  • Contributor Trend: Feature describing the change in contributors, averaged over 10 weeks.
  • New Contributors: Feature describing how many new contributors (with their first merged pull request within the past year) a repository has.
  • Developers per Commit: Feature describing how many developers there are per commit.
  • Contribution Skew: Feature describing the contribution skewness in terms of how many pull requests was contributed by many one-time contributors, or few very active contributors. The raw score is none-linear and varies between 0.5 and 1.0, where values > 0.8 means contributions are distributed on many contribotors, and scores < 0.6 means that very few contributors developed most of the project.

# Contributor Activity

This practice describes how active the contributors of a repository are. The contributors are the people who contributes to the development and their activity is measured with features that analyze the current volume of commits, closed issues, and pull requests, as well as the trend of said volume.

The following features are measured:

  • Recent Commits: Feature describing how many new commits has been made to the master branch within the last 10 weeks.
  • Commits Trend: Feature describing the linear change in commits per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Recent Pull Requests: Feature describing how many new pull requests has been made within the last 10 weeks.
  • Pull Requests Trend: Feature describing the linear change in pull requests per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Recently Closed Issues: Feature describing how many issues has been closed within the the past 10 weeks.
  • Closed Issues Trend: Feature describing the linear change in closed issues per week for the past 21 weeks, that is, whether it is increasing or decreasing."

# Core Team Commitment

This practice describes how committed the core team is to the project.

The following features are measured:

  • Recent Core Team Commits: Feature describing how many new commits the core team has contributed to the master branch within the past 10 weeks.
  • Core Team Commits Trend: Feature measuring the linear trend of the number of commits the core team have made to the master branch in the last 21 weeks.
  • Core Team Issue Closing: Feature measuring how many issues the core team has closed the past 10 weeks.
  • Recent Merges: Feature measuring how many pull requests has been merged the past 10 weeks.
  • Merges Trend: Feature describing the linear change in merged pull requests per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Company Involvement: Feature measuring the highest ratio of commits from the same company past period 21 weeks.

# Contributor Longevity

This practice describes the longevity of the contributors. If the developers are contributing long-term, then it might be a sign that the project has been proven valuable.

The following features are measured:

  • Developer Lifetime: Feature to measure the average time a developer contributes regularly to the repository.
  • Loyal Developer Commits: Feature measuring the number of commits made by loyal/long-term developers.

# Popularity

The popularity of a repository is a rather crucial indicator of the health of a project. It signifies interest from both developers and users alike, pointing towards viability and continued development.

Popularity Metric Popularity metric data model illustration.

# Usage

This practice describes the usage of a repository is among open source consumers.

The following features are measured:

  • Total Downloads: Feature describing the total number of times a repository has been downloaded through its respective package manager.
  • Total Forks: Feature describing the total number of times a repository has been forked.

# Developer Popularity

This practice describes how popular the repository is among the developers. More popular repositories attract more and more skilled developers to contribute."

The following features are measured:

  • Total Stargazers: Feature describing the total number of stargazers (stars).
  • Total Watchers: Feature describing the total number user watching this repository. Watchers will be notified about activity on the watched repository.
  • Contributor Influence: Feature describing how much attention the contributors attract to the repo.
  • Contributor Trend: Feature describing the change in contributors, averaged over 10 weeks.

# Community Activity

This practice describes how active the community of a repository is. In this case, community means both contributors and users and the activity is measured with features that analyze the current volume of commits, issue, and pull requests, as well as the trend of said volume.

The following features are measured:

  • Recent Commits: Feature describing how many new commits has been made to the master branch within the last 10 weeks.
  • Commits Trend: Feature describing the linear change in commits per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Recent Issues: Feature describing how many new issues has been posted within the last 10 weeks.
  • Issues Trend: Feature describing the linear change in posted issues per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Recent Pull Requests: Feature describing how many new pull requests has been made within the last 10 weeks.
  • Pull Requests Trend: Feature describing the linear change in pull requests per week for the past 21 weeks, that is, whether it is increasing or decreasing.
  • Recently Closed Issues: Feature describing how many issues has been closed within the the past 10 weeks.
  • Closed Issues Trend: Feature describing the linear change in closed issues per week for the past 21 weeks, that is, whether it is increasing or decreasing."

# Ecosystem Buzz

This practice describes the buzz of a particular OSS in different parts of the ecosystem. A higher buzz implies that you as a user will get better support from platforms such as Stackoverflow."

The following features are measured:

  • Total Discussions on Stackoverflow: Feature describing the total number of seach hits a repository/package on Stackoverflow.