Skip to content

Commit 2821085

Browse files
authored
Update .github/CODEOWNERS file (#8055)
This PR replaces closed PR#7514. It fixes issue #7031 by updating `.github/CODEOWNERS`. Summary of main changes: - Prefer the use of teams instead of individual user names for most cases. This will allow us to adjust permissions via GitHub team controls; in addition, it will let us use GitHub team features such as code review assignments. - Use newly-created subteams of "Cirq Contributors" for the vendor modules. - Adjust default ownership assignments to reflect activity in recent years and best-guesses about appropriateness for different roles. - Add changes discussed in the [comments on a previous PR](#7514 (review)). - Reorganize the file in an effort to make it more readable and maintainable. For example, the hardware interface modules were previously split based on code versus docs; they are now grouped by the interface modules, so that it's obvious there are two parts to each one. (Note to reviewers: the new teams were created today, and not all members have accepted invitations yet. Beware that the team listings will look incomplete due to this.) Fixes #7031
1 parent aff3efc commit 2821085

2 files changed

Lines changed: 40 additions & 52 deletions

File tree

.github/CODEOWNERS

Lines changed: 21 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,49 +1,33 @@
1-
####################
2-
# cirq maintainers
3-
####################
1+
# GitHub CODEOWNERS file for Cirq.
2+
# To view the members of a team, construct a URL of this form:
3+
# https://github.com/orgs/quantumlib/teams/[TEAM_NAME]/members
44

5-
* @quantumlib/cirq-maintainers @vtomole
5+
#### Overall Cirq maintainers ####
66

7-
####################
8-
# vendor maintainers
9-
####################
7+
* @quantumlib/cirq-maintainers
108

11-
cirq-google/**/*.* @wcourtney @quantumlib/cirq-maintainers @vtomole @verult @hoisinberg
9+
#### Cirq docs maintainers ####
1210

13-
cirq-ionq/**/*.* @dabacon @ColemanCollins @nakardo @gmauricio @Cynocracy @quantumlib/cirq-maintainers @vtomole @splch
11+
docs/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-contributors
12+
docs/tutorials/google/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-contributors @wcourtney @verult @hoisinberg
13+
docs/noise/qcvv/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-contributors @mrwojtek
1414

15-
cirq-aqt/**/*.* @ma5x @pschindler @alfrisch @quantumlib/cirq-maintainers @vtomole
15+
#### Hardware module maintainers ####
1616

17-
cirq-pasqal/**/*.* @HGSilveri @quantumlib/cirq-maintainers @vtomole
17+
cirq-google/**/*.* @quantumlib/cirq-maintainers @wcourtney @verult @hoisinberg
18+
docs/google/**/*.* @quantumlib/cirq-maintainers @wcourtney @verult @hoisinberg
1819

19-
################################################
20-
# qcvv maintainers @mrwojtek + cirq maintainers
21-
################################################
20+
cirq-aqt/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-aqt-contributors
21+
docs/hardware/aqt/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-aqt-contributors
2222

23-
cirq-core/cirq/experiments/**/*.* @mrwojtek @quantumlib/cirq-maintainers @vtomole
23+
cirq-ionq/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-ionq-contributors
24+
docs/hardware/ionq/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-ionq-contributors
2425

25-
#####################################################
26-
# docs maintainers: maintainers + @aasfaw + @rmlarose
27-
#####################################################
26+
cirq-pasqal/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-pasqal-contributors
27+
docs/hardware/pasqal/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-pasqal-contributors
2828

29-
docs/**/*.* @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole
29+
docs/hardware/azure-quantum/**/*.* @quantumlib/cirq-maintainers @quantumlib/cirq-azure-contributors
3030

31-
###################################################################
32-
# vendor docs maintainers: vendor maintainers + @aasfaw + @rmlarose
33-
###################################################################
31+
#### Experiments maintainers ####
3432

35-
docs/google/**/*.* @wcourtney @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole @verult @hoisinberg
36-
docs/tutorials/google/**/*.* @wcourtney @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole @verult @hoisinberg
37-
38-
docs/hardware/ionq/**/*.* @dabacon @ColemanCollins @nakardo @gmauricio @aasfaw @rmlarose @Cynocracy @quantumlib/cirq-maintainers @vtomole @splch
39-
40-
docs/hardware/aqt/**/*.* @ma5x @pschindler @alfrisch @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole
41-
42-
docs/hardware/pasqal/**/*.* @HGSilveri @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole
43-
44-
docs/hardware/azure-quantum/**/*.* @guenp @anpaz @aasfaw @quantumlib/cirq-maintainers @vtomole
45-
46-
#############################################################
47-
# qcvv docs maintainers: docs maintainers + mrwojtek + aasfaw
48-
#############################################################
49-
docs/noise/qcvv/**/*.* @mrwojtek @aasfaw @rmlarose @quantumlib/cirq-maintainers @vtomole
33+
cirq-core/cirq/experiments/**/*.* @quantumlib/cirq-maintainers @mrwojtek

dev_tools/codeowners_test.py

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -21,28 +21,30 @@
2121

2222
CIRQ_MAINTAINERS = ('TEAM', "@quantumlib/cirq-maintainers")
2323

24-
BASE_MAINTAINERS = {CIRQ_MAINTAINERS, ('USERNAME', "@vtomole")}
24+
BASE_MAINTAINERS = {CIRQ_MAINTAINERS}
2525

26-
DOCS_MAINTAINERS = BASE_MAINTAINERS.union({('USERNAME', '@aasfaw'), ('USERNAME', '@rmlarose')})
26+
DOCS_MAINTAINERS = BASE_MAINTAINERS.union({('TEAM', "@quantumlib/cirq-contributors")})
2727

2828
GOOGLE_TEAM = {('USERNAME', "@wcourtney"), ('USERNAME', "@verult"), ("USERNAME", "@hoisinberg")}
2929

3030
GOOGLE_MAINTAINERS = BASE_MAINTAINERS.union(GOOGLE_TEAM)
3131

32-
IONQ_TEAM = {
33-
('USERNAME', u)
34-
for u in ["@dabacon", "@ColemanCollins", "@nakardo", "@gmauricio", "@Cynocracy", "@splch"]
35-
}
32+
IONQ_TEAM = {('TEAM', "@quantumlib/cirq-ionq-contributors")}
33+
3634
IONQ_MAINTAINERS = BASE_MAINTAINERS.union(IONQ_TEAM)
3735

38-
PASQAL_TEAM = {('USERNAME', u) for u in ["@HGSilveri"]}
36+
PASQAL_TEAM = {('TEAM', "@quantumlib/cirq-pasqal-contributors")}
3937

4038
PASQAL_MAINTAINERS = BASE_MAINTAINERS.union(PASQAL_TEAM)
4139

42-
AQT_TEAM = {('USERNAME', u) for u in ["@ma5x", "@pschindler", "@alfrisch"]}
40+
AQT_TEAM = {('TEAM', "@quantumlib/cirq-aqt-contributors")}
4341

4442
AQT_MAINTAINERS = BASE_MAINTAINERS.union(AQT_TEAM)
4543

44+
AZURE_TEAM = {('TEAM', "@quantumlib/cirq-azure-contributors")}
45+
46+
AZURE_MAINTAINERS = BASE_MAINTAINERS.union(AZURE_TEAM)
47+
4648
QCVV_TEAM = {('USERNAME', "@mrwojtek")}
4749

4850
QCVV_MAINTAINERS = BASE_MAINTAINERS.union(QCVV_TEAM)
@@ -62,23 +64,25 @@
6264
# aqt
6365
("cirq-aqt/cirq_aqt/__init__.py", AQT_MAINTAINERS),
6466
("cirq-aqt/setup.py", AQT_MAINTAINERS),
65-
("docs/hardware/aqt/access.md", AQT_MAINTAINERS.union(DOCS_MAINTAINERS)),
66-
("docs/hardware/aqt/getting_started.ipynb", AQT_MAINTAINERS.union(DOCS_MAINTAINERS)),
67+
("docs/hardware/aqt/access.md", AQT_MAINTAINERS),
68+
("docs/hardware/aqt/getting_started.ipynb", AQT_MAINTAINERS),
6769
# pasqal
6870
("cirq-pasqal/cirq_pasqal/__init__.py", PASQAL_MAINTAINERS),
6971
("cirq-pasqal/setup.py", PASQAL_MAINTAINERS),
70-
("docs/hardware/pasqal/access.md", PASQAL_MAINTAINERS.union(DOCS_MAINTAINERS)),
71-
("docs/hardware/pasqal/getting_started.ipynb", PASQAL_MAINTAINERS.union(DOCS_MAINTAINERS)),
72+
("docs/hardware/pasqal/access.md", PASQAL_MAINTAINERS),
73+
("docs/hardware/pasqal/getting_started.ipynb", PASQAL_MAINTAINERS),
7274
# ionq
7375
("cirq-ionq/cirq_ionq/__init__.py", IONQ_MAINTAINERS),
7476
("cirq-ionq/setup.py", IONQ_MAINTAINERS),
75-
("docs/hardware/ionq/access.md", IONQ_MAINTAINERS.union(DOCS_MAINTAINERS)),
76-
("docs/hardware/ionq/getting_started.ipynb", IONQ_MAINTAINERS.union(DOCS_MAINTAINERS)),
77+
("docs/hardware/ionq/access.md", IONQ_MAINTAINERS),
78+
("docs/hardware/ionq/getting_started.ipynb", IONQ_MAINTAINERS),
7779
# google
7880
("cirq-google/cirq_google/__init__.py", GOOGLE_MAINTAINERS),
7981
("cirq-google/setup.py", GOOGLE_MAINTAINERS),
80-
("docs/google/access.md", GOOGLE_MAINTAINERS.union(DOCS_MAINTAINERS)),
82+
("docs/google/access.md", GOOGLE_MAINTAINERS),
8183
("docs/tutorials/google/start.ipynb", GOOGLE_MAINTAINERS.union(DOCS_MAINTAINERS)),
84+
# azure-quantum
85+
("docs/hardware/azure-quantum/access.md", AZURE_MAINTAINERS),
8286
],
8387
)
8488
def test_codeowners(filepath, expected) -> None:

0 commit comments

Comments
 (0)