git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Taylor Blau <me@ttaylorr.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Linus Arver via GitGitGadget <gitgitgadget@gmail.com>,
	git@vger.kernel.org, Linus Arver <linusa@google.com>
Subject: Re: [PATCH] RFC: add MAINTAINERS file
Date: Tue, 26 Mar 2024 19:39:41 -0400	[thread overview]
Message-ID: <ZgNcvR8STOUxxc1e@nand.local> (raw)
In-Reply-To: <xmqqsf0gvjrg.fsf@gitster.g>

On Sat, Mar 23, 2024 at 12:19:15PM -0700, Junio C Hamano wrote:
>  - Is the project big enough to require this (especially for the
>    purpose of (1)), or would
>
>    $ git shortlog -n --no-merges --since=24.months -- path-to-file
>
>    be sufficient and more importantly the value that it will keep
>    current automatically outweigh the benefit of having this file
>    that can go stale?  To answer this question, we'd need to know
>    the turnover rates of past project contributors, of course.  If
>    it is too high, having such a list may help for (1) and (3)
>    above.

I might be biased, but I think that we are not quite there, yet.
Subjectively, I find myself working in areas where I mostly know who to
CC based on what parts of the tree that I'm touching. But in the cases
where I do not, the shortlog --since=2.years.ago is usually pretty
small.

The output below lists number of individuals in the right-hand column,
and the number of files with that many individuals having touched it in
the last two years in the left-hand column:

    for f in $(git ls-files **/*.{c,h})
    do
      git shortlog -s --since-as-filter=2.years.ago -- $f | wc -l \
        || return 1
    done |
    sort -n | uniq -c | sort -rnk1
        192 1
        160 0
        112 2
         94 3
         80 4
         68 5
         40 6
         30 9
         27 8
         25 7
         19 11
         12 10
         11 12
          5 17
          5 14
          3 13
          2 18
          2 16
          1 22
          1 20
          1 19
          1 15

So a vast majority of *.ch files have fewer than 10 individuals working
on it in the past two years. By my count, there are 891 total source
files matching **/*.{c,h}, 828 of which have fewer than 10 people
working on it.

IOW, ~92.3% of the project is touched by no more than 9 people in the
last two years.

That kind of scale doesn't strike me as something that needs something
like a MAINTAINERS file to help make sense of it. It's possible that
some of the files that see more contributors might need some sort of
aide, but there are so few of them I have a hard time imagining it.

>  - How binding is it for a contributor to be on this list as an area
>    expert?  Will there be concrete "expected response time"?  It can
>    be different for each area expert, of course.  I'd expect better
>    from those who work on Git as a major part of their job and
>    contributes some part of their work product back to the upstream,
>    than from folks who do Git as a hobby.  Is each contributer
>    expected to volunteer to be on this list, with self declared
>    service level target?

I share your concern here, too.

Another thought that comes to mind is the difference between
"maintainer" and "reviewer". For a file with, say, 4 committers in the
past two years, I imagine that as the maintainer that you'd give about
equal weight to any of their reviews (with obvious exceptions, like if
someone had showed up in the shortlog over a much longer period, or had
significantly more or substantial patches in a given area).

Those kinds of things are hard to quantify exactly, and perhaps that is
the point of a MAINTAINERS file. But I think quantifying those things
matters a lot more when you have dozens or more individuals contributing
to files across the tree, and the numbers above show that (at least for
a large majority of the project) we're simply not there yet.

Thanks,
Taylor


  parent reply	other threads:[~2024-03-26 23:39 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-23  3:27 [PATCH] RFC: add MAINTAINERS file Linus Arver via GitGitGadget
2024-03-23 19:19 ` Junio C Hamano
2024-03-25  2:51   ` Junio C Hamano
2024-03-27  5:33     ` Linus Arver
2024-03-27  7:17     ` Patrick Steinhardt
2024-03-30 18:03       ` Linus Arver
2024-03-30 21:44         ` Junio C Hamano
2024-04-01 21:33       ` Taylor Blau
2024-04-01 22:13         ` Junio C Hamano
2024-04-02  0:22           ` Linus Arver
2024-04-02  5:39           ` Patrick Steinhardt
2024-04-02  5:46             ` Eric Sunshine
2024-04-02  5:59               ` Patrick Steinhardt
2024-03-26 22:24   ` Linus Arver
2024-03-26 23:39   ` Taylor Blau [this message]
2024-03-27  0:05     ` Junio C Hamano
2024-03-27  4:32   ` Linus Arver
2024-03-27 13:29     ` Junio C Hamano
2024-03-30 17:59       ` Linus Arver
2024-04-02  6:22         ` Patrick Steinhardt
2024-04-04  0:47           ` Linus Arver
2024-04-02  7:00       ` Patrick Steinhardt
2024-04-02 17:00         ` Junio C Hamano

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=ZgNcvR8STOUxxc1e@nand.local \
    --to=me@ttaylorr.com \
    --cc=git@vger.kernel.org \
    --cc=gitgitgadget@gmail.com \
    --cc=gitster@pobox.com \
    --cc=linusa@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).