|
| 1 | +## Project Health Metrics |
| 2 | + |
| 3 | +This is the list of the metrics generated by this tool: |
| 4 | + |
| 5 | +### Pony factor |
| 6 | + |
| 7 | +The metric is defined as the number of individuals, who produce up to the |
| 8 | +first 50% of the total number of code contributions (in descending order) |
| 9 | +within a given time period. |
| 10 | + |
| 11 | +A low Pony Factor implies a high dependency on these individuals, making the |
| 12 | +project vulnerable if they were to leave. |
| 13 | + |
| 14 | +*Also known as: Lottery Factor, Bus Factor, Contributor Absence Factor.* |
| 15 | + |
| 16 | +CHAOSS definition of the [Contributor Abscence Factor](https://www.chaoss.community/kb/metric-contributor-absence-factor/). |
| 17 | + |
| 18 | +### Elephant factor |
| 19 | + |
| 20 | +The metric is defined as the number of unique organizations producing up to the |
| 21 | +first 50% of the total number of code contributions (in descending order) |
| 22 | +within a given time period. |
| 23 | + |
| 24 | +It was first defined by Bitergia, and it applies the concept of the |
| 25 | +Pony Factor metric and takes it to contributing Organizations. |
| 26 | + |
| 27 | +Contributions are focused on Git commits, and the organization |
| 28 | +is determined by the email address of the commit author. |
| 29 | + |
| 30 | +CHAOSS definition of the [Elephant Factor](https://www.chaoss.community/kb/metric-elephant-factor/). |
| 31 | + |
| 32 | +### Number of contributing organizations |
| 33 | + |
| 34 | +This metric quantifies the total number of distinct organizations whose members |
| 35 | +have made contributions to an open source project over a specified period. |
| 36 | + |
| 37 | +Contributions are focused on Git commits, and the organization |
| 38 | +is determined by the email address of the commit author. |
| 39 | + |
| 40 | +CHAOSS definition of the [Organizational Diversity](https://www.chaoss.community/kb/metric-organizational-diversity/). |
| 41 | + |
| 42 | +### Number of organizations contributing recently |
| 43 | + |
| 44 | +This metric quantifies the number of unique organizations whose members have |
| 45 | +actively made contributions to an open source project within the last 90 days. |
| 46 | + |
| 47 | +Contributions are focused on Git commits, and the organization |
| 48 | +is determined by the email address of the commit author. |
| 49 | + |
| 50 | +CHAOSS definition of the [Organizational Diversity](https://www.chaoss.community/kb/metric-organizational-diversity/) |
| 51 | +filtered by a specific timeframe. |
| 52 | + |
| 53 | +### Number of recent contributors |
| 54 | + |
| 55 | +This metric quantifies the total count of unique individuals who contributed |
| 56 | +within the last 90 days. |
| 57 | + |
| 58 | +CHAOSS definition of [Contributors](https://www.chaoss.community/kb/metric-contributors/) filtered by a |
| 59 | +specific timeframe. |
| 60 | + |
| 61 | + |
| 62 | +### Number of recent commits |
| 63 | + |
| 64 | +This metric counts the total number of commits made to the project within the |
| 65 | +last 90 days. |
| 66 | + |
| 67 | +CHAOSS definition of [Code Changes Commits](https://www.chaoss.community/kb/metric-code-changes-commits/) filtered by |
| 68 | +the last 90 days. |
| 69 | + |
| 70 | +### Contributor Growth Rate |
| 71 | + |
| 72 | +This metric measures the growth rate of active contributors, defined as the |
| 73 | +number of people sending one or more code contributions (in this case, |
| 74 | +Git commits) in a given period. |
| 75 | + |
| 76 | +To calculate it, the period is split into two halves, and the number of active |
| 77 | +contributors in each half is compared. The growth rate is the difference |
| 78 | +between the second half and the first half, divided by the number of active |
| 79 | +contributors in the first half. |
| 80 | + |
| 81 | +```math |
| 82 | +GrowthRate (t_1, t_2) = \frac{C_a(t_2) - C_a(t_1)}{C_a(t_1)} |
| 83 | +``` |
| 84 | + |
| 85 | +### Contributor Growth |
| 86 | + |
| 87 | +This metric measures the growth of active contributors, defined as the |
| 88 | +number of people sending one or more code contributions (in this case, |
| 89 | +Git commits) in a given period. |
| 90 | + |
| 91 | +To calculate it, the period is split into two halves, and the number of active |
| 92 | +contributors in each half is compared. Growth is the difference between the |
| 93 | +second half and the first half. |
| 94 | + |
| 95 | +```math |
| 96 | +Growth (t_1, t_2) = C_a(t_2) - C_a(t_1) |
| 97 | +``` |
| 98 | + |
| 99 | +### Number of active branches |
| 100 | + |
| 101 | +This metric refers to the count of branches within a project's version control |
| 102 | +repository (for this case, Git) that have seen recent development activity, |
| 103 | +usually indicated by new commits. |
| 104 | + |
| 105 | +CHAOSS definition of [Branch Lifecycle](https://www.chaoss.community/kb/metric-branch-lifecycle/). |
| 106 | + |
| 107 | +### Days since last commit |
| 108 | + |
| 109 | +This metric shows the number of days since the last commit was submitted to the |
| 110 | +repository or the project. |
| 111 | + |
| 112 | +CHAOSS definition of [Code Changes Commits](https://www.chaoss.community/kb/metric-code-changes-commits/) |
| 113 | +taking into account the last commit activity. |
| 114 | + |
| 115 | +### Presence of an adopters file in a standard location |
| 116 | + |
| 117 | +This metric verifies the existence of a file containing the full text of |
| 118 | +the project's adopters. |
| 119 | + |
| 120 | +Standard practice dictates that this file is named `ADOPTERS`, `ADOPTERS.md`, |
| 121 | +or `ADOPTERS.txt`, and is located in the root directory of the project's |
| 122 | +source code repository. |
| 123 | + |
| 124 | +### Presence of a license file in a standard location |
| 125 | + |
| 126 | +This metric verifies the existence of a file containing the full text of |
| 127 | +the project's chosen open source license. |
| 128 | + |
| 129 | +Standard practice dictates that this file is named `LICENSE`, `LICENSE.md`, |
| 130 | +`LICENSE.txt`, or `COPYING` (a convention historically used by GNU projects) |
| 131 | +and is located in the root directory of the project's source code repository. |
| 132 | + |
| 133 | +CHAOSS definition of [License Declared](https://www.chaoss.community/kb/metric-licenses-declared/). |
| 134 | + |
| 135 | +### Rate of contributors contributing infrequently vs. regularly |
| 136 | + |
| 137 | +This metric involves categorizing contributors based on the frequency, |
| 138 | +consistency, and intensity of their contributions over a defined period. It aims |
| 139 | +to distinguish between individuals who contribute episodically |
| 140 | +(infrequent contributors) and those who engage with the project consistently |
| 141 | +and often substantially (regular or core contributors). |
| 142 | + |
| 143 | +The CHAOSS community, for instance, defines |
| 144 | +"[Occasional Contributors](https://www.chaoss.community/kb/metric-occasional-contributors/)" as |
| 145 | +"people who make contributions to a project on an irregular basis". |
| 146 | + |
| 147 | +### Number of contributors who have contributed in previous periods |
| 148 | + |
| 149 | +This metric, often referred to as "returning contributors" or as an indicator |
| 150 | +of "contributor retention," counts the number of unique individuals who were |
| 151 | +active contributors in the last 90 days and had also made contributions in one |
| 152 | +or more defined previous periods. |
| 153 | + |
| 154 | +### Rate of commits over specified periods |
| 155 | + |
| 156 | +This metrics calculates the rate of commits between the last 90 days and |
| 157 | +the last year. The purpose of this metrics is having an estimation of how |
| 158 | +distributed contributions are, and the "momentum" of the project. |
| 159 | + |
| 160 | +### Number of commits per repository |
| 161 | + |
| 162 | +Activity for each of the Git repositories analyzed. |
| 163 | + |
| 164 | +CHAOSS definition of [Code Changes Commits](https://www.chaoss.community/kb/metric-code-changes-commits/) filtered |
| 165 | +by repository. |
| 166 | + |
| 167 | +### Number of developers per repository |
| 168 | + |
| 169 | +Unique participants producing commits in a given repository. |
| 170 | + |
| 171 | +CHAOSS definition of [Contributors](https://www.chaoss.community/kb/metric-contributors/) filtered |
| 172 | +by repository. |
| 173 | + |
| 174 | +### File type metrics (code, documentation, or others) |
| 175 | + |
| 176 | +Type of activity done by developers, mainly split into code, documentation, and others. |
| 177 | + |
| 178 | +### Commit size metrics (added and removed lines) |
| 179 | + |
| 180 | +This provides an overview of the usual size of the code review processes and good practices |
| 181 | +when submitting code. |
| 182 | + |
| 183 | +CHAOSS uses the metric [Change Request Commits](https://www.chaoss.community/kb/metric-change-request-commits/) |
| 184 | +as a way to use this as a filter. |
| 185 | + |
| 186 | +### Message size metrics (total, mean, and median) |
| 187 | + |
| 188 | +This metrics provides information about how extensive a developer is providing information about the |
| 189 | +change in the commit. |
| 190 | + |
| 191 | +### Frequency metrics for commits |
| 192 | + |
| 193 | +This allows to understand the consistency of developers when producing code. |
| 194 | + |
| 195 | +### Developer categories (core, regular and casual) |
| 196 | + |
| 197 | +This metric structures the developers by their activity and consistency. The core developers produce |
0 commit comments