{"id":17464,"date":"2022-01-30T23:24:18","date_gmt":"2022-01-30T22:24:18","guid":{"rendered":"https:\/\/daniel.haxx.se\/blog\/?p=17464"},"modified":"2022-01-30T23:24:18","modified_gmt":"2022-01-30T22:24:18","slug":"1000-commit-authors","status":"publish","type":"post","link":"https:\/\/daniel.haxx.se\/blog\/2022\/01\/30\/1000-commit-authors\/","title":{"rendered":"1,000 commit authors"},"content":{"rendered":"\n<div class=\"wp-block-image\"><figure class=\"alignright size-full is-resized\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/05\/curl-symbol.png\" alt=\"\" class=\"wp-image-8943\" width=\"212\" height=\"185\" srcset=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/05\/curl-symbol.png 789w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/05\/curl-symbol-200x175.png 200w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/05\/curl-symbol-450x394.png 450w, https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2016\/05\/curl-symbol-768x672.png 768w\" sizes=\"auto, (max-width: 212px) 100vw, 212px\" \/><\/figure><\/div>\n\n\n\n<p>In the <a href=\"https:\/\/curl.se\/\">curl project<\/a> we <a href=\"https:\/\/daniel.haxx.se\/blog\/2010\/03\/23\/curl-goes-git\/\" data-type=\"post\" data-id=\"1624\">switched to using git for source code control in March 2010<\/a>. Since then we have exact tracking of every commit author to the project. In the times before git, we used CVS which doesn&#8217;t properly separate committers from authors.<\/p>\n\n\n\n<p>The number of commit authors in curl has gradually been increasing over time.<\/p>\n\n\n\n<p><strong>1998-03-20<\/strong>: 1 author recorded in the premiere curl release. It actually took until May 30th 2001 for the second recorded committer (partly of course because we used CVS). 1167 days to bump up the number one notch.<\/p>\n\n\n\n<p><strong>2014-05-06<\/strong>: 250 authors took 5891 days to reach.<\/p>\n\n\n\n<p><strong>2017-08-18<\/strong>: 500 authors required additional 1200 days<\/p>\n\n\n\n<p><strong>2019-12-20<\/strong>: 750 authors was reached after only 854 more days<\/p>\n\n\n\n<p><strong>2022-01:30<\/strong>: reaching 1000 authors took an additional 772 days.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-30-at-22-45-04-curl-Project-status-dashboard.png\"><img loading=\"lazy\" decoding=\"async\" width=\"2842\" height=\"1599\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-30-at-22-45-04-curl-Project-status-dashboard.png\" alt=\"\" class=\"wp-image-18383\"\/><\/a><\/figure><\/div>\n\n\n\n<p>Jan-Piet Mens became the thousandth author by providing <a href=\"https:\/\/github.com\/curl\/curl\/pull\/8354\">pull-request #8354<\/a>.<\/p>\n\n\n\n<p>These 1,000 authors have done in total 28,163 commits. This equals 28.2 commits on average while the median commit author only did a single one &#8211; more than 60% of the authors are one-time committers after all! Only fourteen persons in the project have authored more than one hundred commits.<\/p>\n\n\n\n<p>It took us 8,717 days to reach 1,000 authors, making it one new committer in the project per 8.7 days on average, over the project&#8217;s life time so far. The latest 250 authors have &#8220;arrived&#8221; at a rate of one new author per 3.1 days.<\/p>\n\n\n\n<p>In 2021 we had more commit authors than ever before and also more first-timers than ever. It will certainly be a challenge to reach that same level or maybe even break the record again in 2022.<\/p>\n\n\n\n<p>It took almost 24 years to reach 1,000 authors. How long until we double this?<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"visualized-on-video\">Visualized on video<\/h2>\n\n\n\n<p>To celebrate this occasion, I did a fresh <a href=\"https:\/\/gource.io\/\">gource<\/a> video of curl development so far; for the duration of the first 1,000 committers. I spiced it up by adding 249 annotations of source related facts laid out in time.<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio\"><div class=\"wp-block-embed__wrapper\">\n<iframe loading=\"lazy\" title=\"curl history, the first 1000 commit authors\" width=\"474\" height=\"267\" src=\"https:\/\/www.youtube.com\/embed\/HLIaFLXwAnY?feature=oembed\" frameborder=\"0\" allow=\"accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share\" referrerpolicy=\"strict-origin-when-cross-origin\" allowfullscreen><\/iframe>\n<\/div><\/figure>\n\n\n\n<p>Credits: the music is from <a href=\"https:\/\/www.bensound.com\">bensound.com<\/a>.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"github-can-t-count\">GitHub can&#8217;t count<\/h2>\n\n\n\n<p>If you look at the <a href=\"https:\/\/github.com\/curl\/curl\">curl\/curl<\/a> repository on GitHub, it appears to be short of a few hundred committers. It says 792 right now.<\/p>\n\n\n\n<div class=\"wp-block-image\"><figure class=\"aligncenter size-full is-resized\"><a href=\"https:\/\/github.com\/curl\/curl\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/daniel.haxx.se\/blog\/wp-content\/uploads\/2022\/01\/Screenshot-2022-01-30-at-23-22-48-Issues-\u00b7-curl-curl.png\" alt=\"\" class=\"wp-image-18386\" width=\"368\" height=\"226\"\/><\/a><\/figure><\/div>\n\n\n\n<p>This is because GitHub can&#8217;t count commit authors. The theory is that they somehow ignore committers that do not have GitHub accounts. My author count is instead based on plain git access and standard git commands run against a plain git clone:<\/p>\n\n\n\n<pre class=\"wp-block-preformatted\">$ git shortlog -s | wc -l\n1000<\/pre>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the curl project we switched to using git for source code control in March 2010. Since then we have exact tracking of every commit author to the project. In the times before git, we used CVS which doesn&#8217;t properly separate committers from authors. The number of commit authors in curl has gradually been increasing &hellip; <a href=\"https:\/\/daniel.haxx.se\/blog\/2022\/01\/30\/1000-commit-authors\/\" class=\"more-link\">Continue reading <span class=\"screen-reader-text\">1,000 commit authors<\/span> <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":5,"featured_media":13350,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[7],"tags":[33],"class_list":["post-17464","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-curl","tag-curl-and-libcurl"],"_links":{"self":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/17464","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/users\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/comments?post=17464"}],"version-history":[{"count":36,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/17464\/revisions"}],"predecessor-version":[{"id":18387,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/posts\/17464\/revisions\/18387"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media\/13350"}],"wp:attachment":[{"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/media?parent=17464"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/categories?post=17464"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/daniel.haxx.se\/blog\/wp-json\/wp\/v2\/tags?post=17464"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}