During the discussion about new patch review tooling and procedures, Chris Lattner brought up some valid concerns about how much code review responsibility is falling to a fairly small group of people. This was partially in the context of “how do we get more reviewers”, but it’s also a risk factor when it comes to code owners because they have more architectural knowledge of the code they own and thus some more expectations from the community around code review duties. Simply put, there’s a question of whether we’re putting too many eggs into too few baskets with our current code ownership model and are the current code owners still active in their roles. So I think we should update our code ownership accordingly to account for this.
To that end, I propose that we split up code ownership duties in Clang to have some more granularity and select appropriate, active contributors in that area as their owners.
(I have already reached out to everyone I’ve nominated for a position to confirm that they’re interested and feel capable of taking on that role, and I contacted the few people who I propose replacing to confirm that they agree a change is appropriate.)
Specifically:
- Clang CMake: Chandler Carruth → Petr Hosek and John Ericson
- Clang Static Analyzer: adding Gábor Horváth in addition to the existing owner Artem Dergachev
- Clang Analysis & CFG: nobody → Dmitri Gribenko, Stanislav Gatev, and Yitzhak Mandelbaum
- Clang LLVM IR generation: adding Eli Friedman in addition to the existing owner John McCall
- Clang Compiler Options: nobody → Jan Svoboda
- Clang Modules & Serialization: nobody → Chuanqi Xu and Michael Spencer
- Clang Formatting: nobody → MyDeveloperDay and Owen Pan
- Clang Driver parts not covered by someone else: nobody → Fangrui Song
- Clang Attributes: Aaron Ballman → Erich Keane
- Clang Text Encodings (lexer, diagnostic output, etc): nobody → Corentin Jabot and Tom Honermann
- Clang Templates: nobody → Erich Keane
- Itanium ABI: nobody → John McCall
- Clang Objective-C Conformance: nobody → John McCall
- Clang C++ Standards Conformance: nobody → Hubert Tong
- Clang C Standards Conformance: nobody → Aaron Ballman
- clang-tidy: Alexander Kornienko → Nathan James
- All parts of Clang not covered by someone else: Richard Smith → Aaron Ballman
I’d also like to make Richard Smith an Emeritus Owner, the same as we did for Doug Gregor when he stepped out of the code owner role.
The goal is to spread the work around so that there is more coverage for code reviews over a wider area of topics that contributors (especially newer ones) may need help with. Note, I have nominated myself as the Clang code owner and C Standards Conformance owner; if you’re uncomfortable with either of those nominations, please say something! I tried to pick people who I’ve seen performing a significant number of code reviews in the given area, but if you have ideas for different or additional code owners, please suggest them!
This will be the first time we’ve really had the notion of more than one code owner for a component. My expectation is that code owners work together to resolve any concerns between them and pull in other code owners if there’s something contentious needing more viewpoints to achieve consensus. However, the goal of having multiple code owners is to ensure there’s coverage for code review duties and other community needs.
To make it a bit easier to see the new proposed state of ownership in Clang, I have posted the following patch to Phabricator at: ⚙ D132550 Changes to code ownership in clang and clang-tidy