curl / Development / Project status dashboard

Dashboard

Daily updated graphs showing the state of the curl project in as much detail as possible.
[1 column] [3 columns] [5 columns] [data view]

Each image below links to the corresponding CSV file with recently updated source data. The first and last lines of data is shown on the right.

days-per-release data

days per release
1998-03-20;0;0.0
1998-04-03;13;6.5
1998-04-15;12;12.0
1998-04-30;15;12.5
1998-05-13;13;13.0
...
2020-04-29;48;54.0
2020-06-24;56;56.0
2020-07-01;7;56.0
2020-08-19;49;49.0
2020-10-14;56;49.0
release date - days since previous release - 7 release median number

This data comes from the main curl changelog's stored release dates.

cmdline-options-over-time data

cmdline options over time
1998-03-20;24
1998-08-27;29
1999-05-22;46
1999-09-13;48
2000-03-21;48
...
2020-06-23;232
2020-06-30;232
2020-08-19;232
2020-10-14;234
2020-12-01;235
date - number of command line options

This data comes the counter in RELEASE-NOTES in git at the time of releases. The time from before we started doing that, the count has been manually counted.

protocols data

protocols
1996-10-01;HTTP;1
1997-06-01;GOPHER;2
1997-08-01;FTP;3
1998-06-01;HTTPS;4
1998-11-01;TELNET;5
...
2010-05-12;RTMPS;22
2014-11-29;SMB;23
2014-11-29;SMBS;24
2020-04-14;MQTT;25
2020-12-01;;25
date - protocol added - accumlated number of protocols supported

This data comes from a list curated by hand.

contributors data

contributors
1998-07-30;7
1999-09-13;30
2000-08-21;48
2001-06-07;67
2001-09-23;73
...
2020-06-23;2202
2020-06-30;2210
2020-08-19;2239
2020-10-14;2270
2020-12-01;2283
date (month) - accumulated number of authors until then

The data comes from the git repository.

bugbounty data

bugbounty
CVE-2000-0973;2000-10-13;0;0
CVE-2003-1605;2003-08-03;0;0
CVE-2005-0490;2005-02-21;0;0
CVE-2005-3185;2005-10-13;0;0
CVE-2005-4077;2005-12-07;0;0
...
CVE-2019-5482;2019-09-11;1000;250
CVE-2019-5481;2019-09-11;1200;200
CVE-2020-8169;2020-06-24;1600;400
CVE-2020-8177;2020-06-24;2300;700
CVE-2020-8231;2020-08-19;2800;500
CVE id - date of publication - accumulated bounty - invidual bounty

This information comes from curl-www/docs/vuln.pm.

todo data

todo
2000-08-21;17;0
2000-08-30;17;0
2000-09-28;15;0
2000-10-16;17;0
2000-12-04;20;0
...
2020-06-23;127;75
2020-06-30;129;75
2020-08-19;131;77
2020-10-14;134;79
2020-12-01;134;93
date - TODO items - KNOWN_BUGS items

This data comes from parsing the two files in git at the time of releases (and currently). The scripts understand the file format used for these files.

contribs-release data

contribs release
2003-11-01;48;48
2004-01-22;40;44
2004-03-18;30;40
2004-04-26;25;35
2004-06-02;21;30
...
2020-04-29;65;65
2020-06-23;59;65
2020-06-30;16;65
2020-08-19;52;59
2020-10-14;63;59
date - number of contributors in that release - 7 release median

The data for this comes from the RELEASE-NOTES file in git at the time of releases. It can be noted that since this is per-release and some releases are done very quickly in time after a previous one, it is just natural that such releases have much fewer contributors.

authors-per-month data

authors per month
2010-01-01;6;6.00
2010-02-01;6;6.00
2010-03-01;14;8.67
2010-04-01;13;9.75
2010-05-01;13;10.40
...
2020-07-01;22;20.58
2020-08-01;25;21.00
2020-09-01;16;20.00
2020-10-01;15;19.75
2020-11-01;13;18.92
date (month) - authots that month - 12 month author average

The data comes from the git repository.

tests data

tests
2000-03-14;0
2000-03-21;0
2000-03-21;0
2000-08-21;0
2000-08-30;0
...
2020-06-23;1364
2020-06-30;1368
2020-08-19;1374
2020-10-14;1387
2020-12-01;1388
date - number of tests

This data comes from counting the test files present in git at the time of releases.

ci-jobs data

ci jobs
2013-10-17;2;2;0;0;0;0
2016-07-28;4;4;0;0;0;0
2017-06-14;8;8;0;0;0;0
2017-08-09;11;11;0;0;0;0
2017-08-13;11;11;0;0;0;0
...
2020-06-23;85;27;3;23;16;16
2020-06-30;85;27;2;23;16;17
2020-08-19;88;29;2;23;16;18
2020-10-14;89;30;2;23;16;18
2020-11-30;90;30;3;23;16;18
date - all jobs accumulated - travis - cirrus - appveyor - azure pipelines - github actions

The data comes from parsing the CI services instruction meta data files as stored in git.

coreteam-per-year data

coreteam per year
1999-01-01;0
2000-01-01;1
2001-01-01;2
2002-01-01;2
2003-01-01;1
...
2016-01-01;10
2017-01-01;13
2018-01-01;10
2019-01-01;9
2020-01-01;9
date (year) - number of core team members

The data comes from the git repository. A "core team" member is everyone who did 10 or more commits to the main git repository within the same calendar year.

deltaloc data

deltaloc
1999-12-01;19213;19213.0;100.0000,19213
2000-01-01;-794;9209.5;50.0000,18419
2000-02-01;518;6312.3;33.3333,18937
2000-03-01;315;4813.0;25.0000,19252
2000-04-01;62;3862.8;20.0000,19314
...
2020-07-01;364;701.2;0.4168,168234
2020-08-01;1135;719.0;0.4245,169369
2020-09-01;-1261;586.4;0.3488,168108
2020-10-01;1;566.8;0.3371,168109
2020-11-01;747;486.8;0.2883,168856
date (month) - number of lines added that month - 12 month average number of added lines - the average amount as a share of total number of code - total number of lines of code

The data counts lines added and removed to files in src, lib and include over time, in the git repository.

commits-per-month data

commits per month
1999-12-01;1;1.00
2000-01-01;22;11.50
2000-02-01;42;21.67
2000-03-01;70;33.75
2000-04-01;17;30.40
...
2020-07-01;76;123.33
2020-08-01;125;120.58
2020-09-01;142;120.33
2020-10-01;82;120.33
2020-11-01;94;121.83
date (month) - commits that month - 12 month commit count average

The data comes from the git repository.

vulns-plot data

vulns plot
none;1998-03-20;0
CVE-2000-0973;2000-10-13;1
CVE-2003-1605;2003-08-03;2
CVE-2005-0490;2005-02-21;3
CVE-2005-3185;2005-10-13;4
...
CVE-2019-5481;2019-09-11;92
CVE-2020-8169;2020-06-24;93
CVE-2020-8177;2020-06-24;94
CVE-2020-8231;2020-08-19;95
now;2020-12-01;95
CVE id - announce date - index

This data comes from curl-www/docs/vuln.pm.

github-monthly data

github monthly
2010-10-01;2;2;0;2.0;0.0;
2010-11-01;1;1;0;1.5;0.0;
2010-12-01;2;2;0;1.7;0.0;
2011-01-01;1;1;0;1.5;0.0;
2011-02-01;3;3;0;1.8;0.0;
...
2020-07-01;119;79;40;81.3;48.9;
2020-08-01;141;93;48;82.2;50.9;
2020-09-01;134;99;35;82.6;48.6;
2020-10-01;119;74;45;84.0;48.5;
2020-11-01;118;76;42;84.8;47.9;
date (month) - join total count this month - number of created PRs this month - number of created issues this month - 12 month average created PRs - 12 month average created issues

This data is fetched from github daily using their API, then stored and massaged by scripts on our server.

daniel-vs-rest data

daniel vs rest
1999-12-01;100.00;0.00;100.00
2000-01-01;100.00;0.00;100.00
2000-02-01;100.00;0.00;100.00
2000-03-01;100.00;0.00;100.00
2000-04-01;100.00;0.00;100.00
...
2020-07-01;57.08;42.92;43.42
2020-08-01;57.09;42.91;58.40
2020-09-01;57.21;42.79;80.28
2020-10-01;57.24;42.76;64.63
2020-11-01;57.28;42.72;69.15
date - accumulated commit count - Daniel's share - everyone else's share

The data comes from the git repository.

mail data

mail
2000-01-01;0;2;0.0;2.0
2000-02-01;0;71;0.0;36.5
2000-03-01;0;82;0.0;51.7
2000-04-01;0;27;0.0;45.5
2000-05-01;0;117;0.0;59.8
...
2020-07-01;75;37;98.1;36.7
2020-08-01;46;24;95.4;34.8
2020-09-01;91;42;93.0;36.6
2020-10-01;90;35;91.7;38.8
2020-11-01;97;33;90.8;39.1
date (a month really) - curl-library mails - curl-users mails - 12 month curl-library average - 12 month curl-users average

This data is extracted from the mailing archives as stored on the web server.

http-versions data

http versions
1998-03-20;HTTP/1.0;1
1999-05-22;HTTP/0.9;2
2001-03-22;HTTP/1.1;3
2013-09-01;HTTP/2;4
2019-08-01;HTTP/3;5
...
2020-12-01;;5
date - HTTP version

This data comes from a manually maintained file. Based on code inspection.

cve-time data

cve time
CVE-2000-0973 1 396 937
CVE-2003-1605 2 1091 1961
CVE-2005-0490 3 1607 2530
CVE-2005-3185 4 808 2763
CVE-2005-4077 5 590 2819
...
CVE-2019-5482 91 3843 7844
CVE-2019-5481 92 993 7844
CVE-2020-8169 93 601 8131
CVE-2020-8177 94 3787 8131
CVE-2020-8231 95 2750 8187
CVE id - index - CVE age - project age

This data comes from curl-www/docs/vuln.pm.

The "CVE age" is the number of days the annnouced vulnerability had been present in source code when announced. Project age is how old the project was in number of days at the time that vulnerability was announced.

github-age data

github age
2010-10-01;3.0;3.0;3.0
2010-11-01;1.0;1.0;2.0
2010-12-01;1.0;1.0;1.7
2011-01-01;0.0;0.0;1.2
2011-02-01;3.0;3.0;1.6
...
2020-07-01;3.0;22.6;18.0
2020-08-01;2.0;12.4;18.4
2020-09-01;2.0;19.1;19.2
2020-10-01;2.0;6.4;17.6
2020-11-01;2.0;12.3;16.9
This data is fetched from github daily using their API, then stored and massaged by scripts on our server.

The scripts counts integer days so an issue is always "present" at least one day.

vulns-releases data

vulns releases
1998-03-20;4.0;0
1998-04-03;4.1;0
1998-04-15;4.2;0
1998-04-30;4.3;0
1998-05-13;4.4;0
...
2020-04-29;7.70.0;3
2020-06-24;7.71.0;1
2020-07-01;7.71.1;1
2020-08-19;7.72.0;0
2020-10-14;7.73.0;0
date - version - number of known vulnerabilities

This data comes from the release.csv table.

ci-platforms data

ci platforms
2017-06-14;8;6;2;0;0
2017-08-09;11;6;5;0;0
2017-08-13;11;6;5;0;0
2017-10-04;15;9;6;0;0
2017-10-23;15;9;6;0;0
...
2020-06-23;85;34;15;33;3
2020-06-30;85;35;15;33;2
2020-08-19;88;37;16;33;2
2020-10-14;89;38;16;33;2
2020-11-30;90;38;16;33;3
date - all jobs accumulated - travis - linux - mac - windows - freebsd

The data comes from parsing the CI services instruction meta data files as stored in git.

symbols data

symbols
2009-03-02;303
2009-05-18;427
2009-08-12;428
2009-11-04;428
2010-02-09;451
...
2020-06-23;965
2020-06-30;965
2020-08-19;970
2020-10-14;1019
2020-12-01;1030
date - number of symbols in the file

The symbols are counted in the symbols-in-versions file in git at the time of releases.

vulns-per-year data

vulns per year
1998-01-01;0;0
1999-01-01;0;0
2000-01-01;1;1
2001-01-01;0;1
2002-01-01;0;1
...
2016-01-01;24;60
2017-01-01;12;72
2018-01-01;12;84
2019-01-01;8;92
2020-01-01;3;95
date (year) - vulns within that year - accumulated number of vulns

The data comes from the vuln.pm file.

firsttimers data

firsttimers
2010-01-01;6;6.00
2010-02-01;6;6.00
2010-03-01;14;8.67
2010-04-01;13;9.75
2010-05-01;13;10.40
...
2020-07-01;22;20.58
2020-08-01;25;21.00
2020-09-01;16;20.00
2020-10-01;15;19.75
2020-11-01;13;18.92
date (month) - first time committers that month - 12 month average first time committers

This data comes from git repository.

files data

files
2000-03-14;110
2000-03-21;111
2000-03-21;111
2000-08-21;136
2000-08-30;137
...
2020-06-23;3278
2020-06-30;3285
2020-08-19;3300
2020-10-14;3312
2020-11-30;3323
date - number of files

This data comes from counting the files present in git at the time of releases.

loc data

loc
1998-03-18;2200
1998-09-20;3379
1999-05-22;12289
1999-09-13;14060
1999-11-23;14826
...
2020-07-01;168234;364
2020-08-01;169369;1135
2020-09-01;168108;-1261
2020-10-01;168109;1
2020-11-01;168856;747
date - lines of code

Lines of code means lines in the src, lib and include directories and is extracted from the git history of the repository.

docs data

docs
2000-05-22;6235
2000-05-26;6331
2000-05-29;6589
2000-05-30;6588
2000-06-02;6588
...
2020-11-19;80480
2020-11-22;80493
2020-11-23;80502
2020-11-24;80504
2020-12-01;80504
date - lines of documentation

This data comes from checking the docs/ subdiretory in git.

commits-per-year data

commits per year
1999-01-01;1
2000-01-01;709
2001-01-01;1346
2002-01-01;937
2003-01-01;1218
...
2016-01-01;1232
2017-01-01;1381
2018-01-01;1083
2019-01-01;1263
2020-01-01;1355
date (year) - commit authors this year

The data comes from the git repository

authors data

authors
1999-12-29;0;1;0.00
2001-05-30;0;2;0.00
2001-05-31;0;3;0.00
2001-08-09;0;4;0.00
2002-08-03;0;5;0.00
...
2020-10-15;539;837;64.40
2020-10-26;540;838;64.44
2020-11-19;541;839;64.48
2020-11-20;542;840;64.52
2020-12-01;542;840;64.52
date - single commit authors - total authors - the single authors' share among all authors

The data comes from the git repository

api-calls data

api calls
2000-08-21;31
2005-02-01;46
2005-05-16;46
2005-10-13;46
2006-02-27;46
...
2020-06-23;82
2020-06-30;82
2020-08-19;82
2020-10-14;85
2020-12-01;85
date - number of API calls

The number of calls is extracted by parsing the include/curl.h file in git at the time of past releases

github-open data

github open
2010-10-01;2;2;0;1.0;1;1
2010-11-01;1;1;0;1.0;1;1
2010-12-01;2;2;0;1.0;2;1
2011-01-01;1;1;0;1.0;2;1
2011-02-01;3;3;0;2.0;4;1
...
2020-07-01;119;79;40;75.0;87;61
2020-08-01;141;93;48;66.0;70;53
2020-09-01;134;99;35;53.5;60;37
2020-10-01;119;74;45;44.0;61;35
2020-11-01;118;76;42;50.5;61;43
date (month) - joined total open this month - number of open PRs this month - number of open issues this month - median number of i+p open this month - max number open - minimum number open

This data is fetched from github daily using their API, then stored and massaged by scripts on our server.

tls-backends data

tls backends
1998-03-20;;0
1998-06-01;OpenSSL;1
2005-04-01;GnuTLS;2
2007-02-01;NSS;3
2010-05-01;PolarSSL;4
...
2018-10-01;-axTLS;12
2019-03-08;AmiSSL;13
2019-11-01;BearSSL;14
2020-01-16;-PolarSSL;13
2020-12-01;;13
date - TLS backend - accumlated number of backends supported

This data comes from a list curated by hand.

authors-per-year data

authors per year
1999-01-01;1;1
2000-01-01;1;0
2001-01-01;4;3
2002-01-01;4;1
2003-01-01;3;1
...
2016-01-01;110;72
2017-01-01;133;95
2018-01-01;158;112
2019-01-01;156;108
2020-01-01;131;89
date (year) - number of commit authors that year - number of first time commit authors that year

Data from the git repository

bugfix-frequency data

bugfix frequency
1998-03-20;0;0.000
1998-04-03;3;0.214
1998-04-15;7;0.269
1998-04-30;8;0.195
1998-05-13;10;0.185
...
2020-04-29;6073;2.312
2020-06-24;6209;2.359
2020-07-01;6227;2.509
2020-08-19;6327;2.476
2020-10-14;6462;2.415
date - accumulated number of bugfixes through time - average number of fixes per release over the last 5 releases

This data comes from parsing the RELEASE-NOTES file in git at the time of each release.

lines data

lines
1999-12-01;37273;0;0;0;37273
2000-01-01;37810;0;10960;0;26850
2000-02-01;39181;0;11739;0;27442
2000-03-01;41627;0;13327;0;28300
2000-04-01;42256;0;13513;0;28743
...
2020-07-01;582657;521710;381240;219807;503320
2020-08-01;585885;522898;383072;220392;505319
2020-09-01;589716;524392;389219;221077;503812
2020-10-01;591526;525021;392943;221286;502318
2020-11-01;596352;525256;396118;221476;504014
date (month) - Daniel's added lines - others' added lines - Daniel's deleted lines - others' deleted lines - total amount of lines present

The data comes from analyzing the git changes and includes all files and directories.

setopts data

setopts
2000-08-21;59
2000-10-16;63
2001-09-23;82
2002-10-01;100
2003-07-28;107
...
2020-06-23;277
2020-06-30;277
2020-08-19;277
2020-10-14;278
2020-12-01;284
date - number of options curl_easy_setopt accepts

The number of options comes from parsing the include/curl.h header file from git as it changed over time.


Updated 2020-12-01 04:16:01 UTC


The scripts for generating all these images are available at github.com/curl/stats.