git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: Measuring Community Involvement (was Re: Contributor Summit planning)

From
Jeff King <peff@peff.net>
Date
Aug 14, 2018, 19:36 UTC
Message-ID
<20180814193646.GC28452@sigill.intra.peff.net>
In-Reply-To
<3f0da3cd-0929-4aad-2c50-92c9d6c660e5@gmail.com>
On Tue, Aug 14, 2018 at 01:43:38PM -0400, Derrick Stolee wrote:
Show 10 quoted lines
> On 8/13/2018 5:54 PM, Jeff King wrote:
> > So I try not to think too hard on metrics, and just use them to get a
> > rough view on who is active.
> 
> I've been very interested in measuring community involvement, with the
> knowledge that any metric is flawed and we should not ever say "this metric
> is how we measure the quality of a contributor". It can be helpful, though,
> to track some metrics and their change over time.
> 
> Here are a few measurements we can make:
Thanks, it was nice to see a more comprehensive list in one spot.

It would be neat to have a tool that presents all of these automatically, but I think the email ones are pretty tricky (most people don't have the whole list archive sitting around).

Show 7 quoted lines
> 2. Number of other commit tag-lines (Reviewed-By, Helped-By, Reported-By,
> etc.).
> 
>     Using git repo:
> 
>     $ git log --since=2018-01-01 junio/next|grep by:|grep -v
> Signed-off-by:|sort|uniq -c|sort -nr|head -n 20

At one point I sent a patch series that would let shortlog group by trailers. Nobody seemed all that interested and I didn't end up using it for its original purpose, so I didn't polish it further. But I'd be happy to re-submit it if you think it would be useful.

The shell hackery here isn't too bad, but doing it internally is a little faster, a little more robust (less parsing), and lets you show more details about the commits themselves (e.g., who reviews whom).

> 3. Number of threads started by user.

You have "started" and "participated in". I guess one more would be "closed", as in "solved a bug", but that is quite hard to tell without looking at the content. Taking just the last person in a thread as the closer means that an OP saying "thanks!" wrecks it. And somebody who rants long enough that everybody else loses interest gets marked as a closer. ;)

> If you have other ideas for fun measurements, then please let me know.

I think I mentioned "surviving lines" elsewhere, which I do like this (and almost certainly stole from Junio a long time ago):

  # Obviously you can tweak this as you like, but the mass-imported bits
  # in compat and xdiff tend to skew the counts. It's possibly worth
  # counting language lines separately.
  git ls-files '*.c' '*.h' :^compat :^contrib :^xdiff |
  while read fn; do
    # eye candy
    echo >&2 "Blaming $fn..."
    # You can use more/fewer -C to dig more or less for code moves.
    # Possibly "-w" would help, though I doubt it shifts things more
    # than a few percent anyway.
    git blame -C --line-porcelain $fn
  done |
  perl -lne '/^author (.*)/ and print $1' |
  sort | uniq -c | sort -rn | head
The output right now is:
  35156 Junio C Hamano
  22207 Jeff King
  17466 Nguyễn Thái Ngọc Duy
  12005 Johannes Schindelin
  10259 Michael Haggerty
   9389 Linus Torvalds
   8318 Brandon Williams
   7776 Stefan Beller
   5947 Christian Couder
   4935 René Scharfe
which seems reasonable.
-Peff
Previous: Derrick StoleeNext: Stefan Beller
Message 23 of 47 in “Contributor Summit planning”
  1. Jeff KingAug 13, 2018
  2. Derrick StoleeAug 13, 2018
  3. Jeff KingAug 13, 2018
  4. Johannes SchindelinAug 27, 2018
  5. Derrick StoleeAug 27, 2018
  6. Johannes SchindelinAug 28, 2018
  7. Jonathan NiederAug 28, 2018
  8. Jonathan NiederAug 28, 2018
  9. Johannes SchindelinAug 29, 2018
  10. Jeff KingAug 29, 2018
  11. Johannes SchindelinAug 29, 2018
  12. Stefan BellerAug 13, 2018
  13. Christian CouderAug 14, 2018
  14. Jeff KingAug 14, 2018
  15. Ævar Arnfjörð BjarmasonAug 13, 2018
  16. Jeff KingAug 13, 2018
  17. Junio C HamanoAug 13, 2018
  18. Stefan BellerAug 13, 2018
  19. Jeff KingAug 13, 2018
  20. Stefan BellerAug 13, 2018
  21. Jeff KingAug 13, 2018
  22. Measuring Community Involvement (was Re: Contributor Summit planning)Derrick Stolee, Aug 14, 2018
  23. Jeff KingAug 14, 2018
  24. Stefan BellerAug 14, 2018
  25. Jeff KingAug 14, 2018
  26. Eric WongAug 15, 2018
  27. Junio C HamanoAug 14, 2018
  28. Johannes SchindelinAug 27, 2018
  29. Duy NguyenAug 15, 2018
  30. Johannes SchindelinAug 27, 2018
  31. Duy NguyenAug 14, 2018
  32. Jeff KingAug 14, 2018
  33. Stefan BellerAug 14, 2018
  34. Junio C HamanoAug 14, 2018
  35. Duy NguyenAug 17, 2018
  36. Johannes SchindelinAug 27, 2018
  37. Jeff KingAug 29, 2018
  38. Elijah NewrenAug 14, 2018
  39. Randall S. BeckerAug 14, 2018
  40. Ævar Arnfjörð BjarmasonAug 14, 2018
  41. Jeff KingAug 14, 2018
  42. Jeff KingAug 14, 2018
  43. Johannes SchindelinAug 27, 2018
  44. Jeff KingAug 29, 2018
  45. Johannes SchindelinAug 29, 2018
  46. Jeff KingAug 30, 2018
  47. Johannes SchindelinAug 30, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.