From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:470:142:3::10]:45276) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ipfwJ-0005wY-CF for guix-patches@gnu.org; Thu, 09 Jan 2020 17:06:04 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ipfwI-00029W-1Z for guix-patches@gnu.org; Thu, 09 Jan 2020 17:06:03 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:47232) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1ipfwH-00028S-Sm for guix-patches@gnu.org; Thu, 09 Jan 2020 17:06:01 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1ipfwH-000630-N4 for guix-patches@gnu.org; Thu, 09 Jan 2020 17:06:01 -0500 Subject: [bug#38846] [PATCH 0/4] Move 'HACKING' to the manual, and a proposal for commit access Resent-Message-ID: From: Ludovic =?UTF-8?Q?Court=C3=A8s?= References: <20200101162945.4946-1-ludo@gnu.org> Date: Thu, 09 Jan 2020 23:05:35 +0100 In-Reply-To: (zimoun's message of "Mon, 6 Jan 2020 22:44:38 +0100") Message-ID: <87h814s2ts.fsf@gnu.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: zimoun Cc: GNU Guix maintainers , 38846@debbugs.gnu.org --=-=-= Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable Hello! zimoun skribis: >>>From the v1.0.1 to now, the repartition of committers which are not the a= uthors: > > 361 > 78 > 65 > 61 > 59 > 54 > 52 > 47 > 44 > 43 > 37 > 21 (x2) > 11 > 9 > 8 > 7 (x2) > 6 > 5 (x3) > 4 (x2) > 3 > 2 (x3) > 1 (x3) > > which should be compared to the number of commits per author also > committer (first 10): > > 1463 > 1162 > 886 > 670 > 618 > 335 > 204 > 166 > 161 > 150 I had overlooked that; interesting, though I=E2=80=99m not sure what conclu= sion(s) to draw. Perhaps we should look at how these numbers evolve over time? Related to that, attached is a script I wrote a while back to view the number of reviews per committer (ah ha!), like so: --8<---------------cut here---------------start------------->8--- scheme@(guile-user)> (define r (reviewers repo)) scheme@(guile-user)> ,pp (sort (map car r) <) $3 =3D (0 ;; long tail omitted=E2=80=A6 1 1 1 1 2 2 2 2 2 4 5 5 6 9 9 9 10 11 13 13 17 18 19 30 37 37 38 40 40 45 48 51 59 63 72 84 85 88 99 181 186 264 287 506 526 1620) --8<---------------cut here---------------end--------------->8--- This is for all-time commits, so not all that representative, but could be used as a starting point for the statistician in you. :-) Ludo=E2=80=99. --=-=-= Content-Type: text/plain Content-Disposition: inline; filename=reviewers.scm Content-Description: the code (use-modules (git) (git repository) (git reference) (git oid) (git tag) (git commit) (git structs) ;signature-email, etc. (srfi srfi-1) (srfi srfi-26) (ice-9 match) (ice-9 vlist)) (define commit-author* (compose signature-name commit-author)) (define commit-committer* (compose signature-name commit-committer)) (define-syntax-rule (false-if-git-error exp) (catch 'git-error (lambda () exp) (const #f))) (define* (fold-commits proc seed repo #:key (start (reference-target (repository-head repo))) end) "Call PROC on each commit of REPO, starting at START (an OID), and until END if specified." (let loop ((commit (commit-lookup repo start)) (result seed)) (let ((parent (false-if-git-error (commit-parent commit)))) (if parent (if (and end (oid=? (commit-id parent) end)) (proc parent result) (loop parent (proc parent result))) result)))) (define (reviewers repo) "Return a list of review count/committer pairs." (define vhash (fold-commits (lambda (commit result) (if (string=? (commit-author* commit) (commit-committer* commit)) result (vhash-cons (commit-committer* commit) #t result))) vlist-null repo)) (define committers (delete-duplicates (fold-commits (lambda (commit result) (cons (commit-committer* commit) result)) '() repo))) (map (lambda (committer) (cons (vhash-fold* (lambda (_ count) (+ 1 count)) 0 committer vhash) committer)) committers)) (define (reviewer< r1 r2) (match r1 ((count1 . name1) (match r2 ((count2 . name2) (< count1 count2)))))) (libgit2-init!) (define repo (repository-open ".")) --=-=-=--