Chapel repository report
Overall statistics (on the date 2020-12-01)
Number of PRs: 12440
Number of merged PRs: 11775
Number of closed (non merged PRs): 637
Number of mergers (those who can accept and merge PR): 34
Number of PR authors: 134
Top mergers
10 rows × 2 columns
mergedBy | cnt | |
---|---|---|
String? | Int64 | |
1 | mppf | 1789 |
2 | ronawho | 1648 |
3 | bradcray | 1367 |
4 | lydia-duncan | 1071 |
5 | vasslitvinov | 803 |
6 | benharsh | 780 |
7 | ben-albrecht | 704 |
8 | noakesmichael | 681 |
9 | gbtitus | 539 |
10 | daviditen | 476 |
Top authors
10 rows × 2 columns
author | cnt | |
---|---|---|
String | Int64 | |
1 | mppf | 1794 |
2 | ronawho | 1660 |
3 | bradcray | 1391 |
4 | lydia-duncan | 982 |
5 | vasslitvinov | 818 |
6 | benharsh | 764 |
7 | noakesmichael | 707 |
8 | gbtitus | 553 |
9 | ben-albrecht | 517 |
10 | daviditen | 466 |
PR dynamics
New PRs each year
7 rows × 2 columns
create_year | cnt | |
---|---|---|
Int64 | Int64 | |
1 | 2014 | 1077 |
2 | 2015 | 1988 |
3 | 2016 | 1995 |
4 | 2017 | 2230 |
5 | 2018 | 1991 |
6 | 2019 | 1721 |
7 | 2020 | 1438 |
Merged PRs
Here you can see all merged PRs aggregated by the year of their creation. Comparing with the previuos table, you can estimate ratio of merged to created PRs. Of course, this statistics is skewed, since older PRs have more time to be merged, that is why later we compare number of closed or merged PRs during some period of time (1 month or 1 year).
7 rows × 2 columns
create_year | cnt | |
---|---|---|
Int64 | Int64 | |
1 | 2014 | 1031 |
2 | 2015 | 1885 |
3 | 2016 | 1888 |
4 | 2017 | 2103 |
5 | 2018 | 1903 |
6 | 2019 | 1627 |
7 | 2020 | 1338 |
Plot of new and merged PR, aggregated by the year of PR creation
Ratio of merged/created PRs
Mergers dynamic
On this plot you can see various types of "mergers" aggregated by the year when they were active (i.e. they were actually merging PRs).
Active unique mergers
means number of unique users, who were accepting PRs during each year.
New mergers
for some year, means number of users who were merging PRs and made their first merge this year,
New mergers each year
6 rows × 2 columns
first_merge_year | cnt | |
---|---|---|
Int64 | Int64 | |
1 | 2014 | 16 |
2 | 2015 | 5 |
3 | 2016 | 4 |
4 | 2017 | 2 |
5 | 2019 | 5 |
6 | 2020 | 2 |
Authors dynamic
On this plot you can see number of active PR authors, i.e. they were actually creating PRs during corresponding year.
Active unique authors
means number of unique users, who were creating PRs during each year.
New authors
for some year means number of users who were creating PRs and made their first PR this year.
By comparing this plot with the mergers
plots, you can maje correspondence between flow of authors and PRs on one hand and adequacy of merging efforts on the other hand.
By comparing with the dynamics of New PRs
you can estimate average number of PRs per author and as a result PR efforts of an average author.
Quantiles of PR number per new author
This one is expanding on previous plot, by estimating amount of PRs generated by new authors during the year after first PR. For example, you can see, that starting from 2017 more than a half (median) authors generated only one PR.In terms of retention it means, that more than half of new authors never returns to PR activity.
Quantiles of waiting time (hours) of PR close/merge
In this table and related plot you can see how long it took to wait till PR is closed (which can be either rejecting or merging) in different years. Since waiting time is heavily skewed we are using quantiles, q1 is 5% quantile, q2 is 25% quantile, q3 is median(50% quantile), q4 is 75% quantile. We do not used 95% quantile, since it went to infinity in 2019 (more than 5% of PRs were never closed). This data can be read as follows: it took 21 hour for half PRs to be closed in 2014 and 78 hours in 2019.
N.B.: y axis is in log scale, so linear growth on the plot means exponential growth in absolute values.
7 rows × 5 columns
year | q1 | q2 | q3 | q4 | |
---|---|---|---|---|---|
Int64 | Float64 | Float64 | Float64 | Float64 | |
1 | 2014 | 0.00361111 | 0.0388889 | 0.425833 | 6.65 |
2 | 2015 | 0.00638889 | 0.144306 | 0.720139 | 8.88312 |
3 | 2016 | 0.00972222 | 0.273056 | 1.62694 | 22.5712 |
4 | 2017 | 0.0216389 | 0.168125 | 1.47361 | 28.1273 |
5 | 2018 | 0.0184722 | 0.358194 | 3.14833 | 50.1911 |
6 | 2019 | 0.0925 | 0.476944 | 4.95528 | 71.2994 |
7 | 2020 | 0.0854722 | 0.478681 | 4.54139 | 93.2172 |
PRs with long close time
in this table and plot, you can see number and ratio of PRs that has waited longer then one month (or one year) to be closed or they are still open up to this moment. For example, out of 1826 PRs created in 2014 only 253 (13.8%) PRs were closed after one month after creation. On the contrary out of 2042 PRs created in 2019 515(25%) were not closed during one month after creation.
Year 2020 is skewed for the statistics of 1 year since for many PRs one year is not over yet. So it should not be taken into account and was removed from the corresponding plot. But 1 month statistics for 2020 is acceptable.
7 rows × 6 columns
year | cnt | cnt_month_wait | cnt_year_wait | ratio_month_wait | ratio_year_wait | |
---|---|---|---|---|---|---|
Int64 | Int64 | Int64 | Int64 | Float64 | Float64 | |
1 | 2014 | 1077 | 14 | 0 | 0.0129991 | 0.0 |
2 | 2015 | 1988 | 36 | 0 | 0.0181087 | 0.0 |
3 | 2016 | 1995 | 43 | 0 | 0.0215539 | 0.0 |
4 | 2017 | 2230 | 49 | 1 | 0.0219731 | 0.00044843 |
5 | 2018 | 1991 | 47 | 0 | 0.0236062 | 0.0 |
6 | 2019 | 1721 | 78 | 3 | 0.0453225 | 0.00174317 |
7 | 2020 | 1438 | 95 | 26 | 0.066064 | 0.0180807 |
State of the first PR of new authors.
Here you can find what has happened with the first PR of new authors. Generally PR can be in one of three states: Open, Merged or Closed (i.e. Rejected). Of course this statistics is skewed, since it older PR has more chances to be in Merged or Rejected state.
7 rows × 9 columns
year | merged_cnt | closed_cnt | open_cnt | pr_cnt | rejected_cnt | ratio | open_ratio | rejected_ratio | |
---|---|---|---|---|---|---|---|---|---|
Int64 | Int64 | Int64 | Int64 | Int64 | Int64 | Float64 | Float64 | Float64 | |
1 | 2014 | 18 | 23 | 0 | 23 | 5 | 0.782609 | 0.0 | 0.217391 |
2 | 2015 | 8 | 12 | 0 | 12 | 4 | 0.666667 | 0.0 | 0.333333 |
3 | 2016 | 11 | 16 | 0 | 16 | 5 | 0.6875 | 0.0 | 0.3125 |
4 | 2017 | 12 | 19 | 0 | 19 | 7 | 0.631579 | 0.0 | 0.368421 |
5 | 2018 | 11 | 15 | 0 | 15 | 4 | 0.733333 | 0.0 | 0.266667 |
6 | 2019 | 17 | 22 | 0 | 22 | 5 | 0.772727 | 0.0 | 0.227273 |
7 | 2020 | 12 | 26 | 1 | 27 | 14 | 0.444444 | 0.037037 | 0.518519 |
Core and non-core developers
PRs by developer group
In the following table and plot is shown number of PR aggregated by the year of creation and whether it was created by someone from core team (developers who can merge PRs) and other contributors. other_ratio
field is a ratio of PRs made by non core developers to the all PRs.
7 rows × 4 columns
year | Core | Other | other_ratio | |
---|---|---|---|---|
Int64 | Int64? | Int64? | Float64 | |
1 | 2014 | 1062 | 15 | 0.0139276 |
2 | 2015 | 1958 | 30 | 0.0150905 |
3 | 2016 | 1822 | 173 | 0.0867168 |
4 | 2017 | 2111 | 119 | 0.0533632 |
5 | 2018 | 1894 | 97 | 0.0487192 |
6 | 2019 | 1586 | 135 | 0.0784428 |
7 | 2020 | 1251 | 187 | 0.130042 |
Median waiting times by developer group
Here you can see median waiting time of PRs split by developer group. You can compare it with overall median times presented in "Quantiles of waiting time" section. The same definition of waiting time is used.
7 rows × 3 columns
year | Core | Other | |
---|---|---|---|
Int64 | Float64? | Float64? | |
1 | 2014 | 0.397778 | 46.2669 |
2 | 2015 | 0.687917 | 40.7868 |
3 | 2016 | 1.25111 | 19.8503 |
4 | 2017 | 1.17667 | 117.386 |
5 | 2018 | 2.56944 | 123.003 |
6 | 2019 | 3.23736 | 273.862 |
7 | 2020 | 2.54972 | 292.739 |