Skip to content

Commit a890b16

Browse files
authored
Merge pull request #20 from aboutcode-org/adaaaam--healthycode-README-updates
Reorganize README.md and grimoirelab-metrics.md
2 parents 9793c20 + b3248f6 commit a890b16

3 files changed

Lines changed: 606 additions & 292 deletions

File tree

‎METRICS.md‎

Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
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

Comments
 (0)