Who owns libcxxabi these days?

It’s nice that clang has a CodeOwners.rst file that seems up to date. I particularly like how owners-emeritus are explicitly thanked for their service.

LLVM also has CODE_OWNERS.TXT, though a lot of names I haven’t seen contribute in a while. That’s…worrisome.

Looking at libcxx and libcxxabi, there’s CREDITS files, which are nice but seem kind of unnecessary in the age of git. Though perhaps email addresses die and folks can put a new email address somewhere? (like .mailmap) It’s very noisy to look at CREDITS and see some names that have done smaller contributions when trying to figure out who should be reviewing patches. As a new contributor to libcxxabi, I want to quickly be able to find the answer to the question “who should I cc to review this?”

Looking at libcxxabi/CREDITS.TXT, the two entries listed as Architect and primary coauthor of libc++abi haven’t been seen so far this year on phab; some of the latest comments on phab from them are “eye brow raising”. I guess libcxxabi is pretty stable, perhaps?

Any chance we can be more disciplined about having dedicated OWNERS in LLVM and try to keep them up to date? In particular, it would be good if folks were more disciplined about training their replacements, or if we had pairs of owners to lower the bus factor throughout the codebase.

Running some basic stats:

$ git log --pretty='%aN' libcxxabi | sort | uniq -c | sort -hr | head -n 10
    200 Louis Dionne
    179 Howard Hinnant
    136 Eric Fiselier
     67 Petr Hosek
     67 Erik Pilkington
     62 Saleem Abdulrasool
     43 Nathan Sidwell
     36 Marshall Clow
     34 Nick Kledzik
     30 Dan Albert

But that’s of all time. Let’s compare commits within the past year:

$ git log --pretty='%aN' --after="2022-04-28" libcxxabi | sort | uniq -c | sort -hr | head -n 10
     13 Louis Dionne
      9 Nikolas Klauser
      9 Martin Storsjö
      6 Mark de Wever
      4 Xing Xue
      3 Zibi Sarbinowski
      3 Nathan Sidwell
      3 Kirill Stoimenov
      3 John Ericson
      2 Ryan Prichard

And past 6 months:

$ git log --pretty='%aN' --after="2022-10-28" libcxxabi | sort | uniq -c | sort -hr | head -n 10
      9 Martin Storsjö
      8 Nikolas Klauser
      8 Louis Dionne
      6 Mark de Wever
      3 Kirill Stoimenov
      2 Zibi Sarbinowski
      2 Xing Xue
      2 Ryan Prichard
      1 Weining Lu
      1 Sirui Mu

Pretty different lists.


1 Like

libc++abi is a very stable project. The main thing that changes, other than NFC patches is additions to the demangler, which also almost never happens. Sometimes there are also new platforms to support, but that isn’t done by any maintainers. That libc++abi is very stable is also made clear by the fact neither Mark nor I are members of the libc++abi group and never actively worked on it AFAIK, but we are 2nd and 4th place by number of patches in the last year. That is most likely purely refactoring because of changes made to the CI environment (which is shared between libc++, libc++abi and libunwind).

Much more interesting for newcomers: There are review groups for libc++, libc++abi and libunwind, because these projects are ABI sensitive (in quite subtle ways sometimes). These groups are automatically added to patches which touch any of the code (as long as the monorepo is set, which automatically happens when using arcanist), and are blocking. Once you get approval from the group (i.e. someone approved as the group), you can assume that the correct persons have looked at the patch. Everybody from a given group is also automatically notified.

1 Like