Skip to content

Commit e524b56

Browse files
authored
Merge pull request #707 from Mark-Simulacrum/codify-team
Propose rules for team repo maintenance
2 parents e7ac823 + 626c7ed commit e524b56

File tree

1 file changed

+50
-21
lines changed

1 file changed

+50
-21
lines changed

src/infra/team-maintenance.md

Lines changed: 50 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -4,34 +4,64 @@ The roster of the Rust teams is always in flux. From time to time, new people
44
are added, but also people sometimes opt to into "alumni status", meaning that
55
they are not currently an active part of the decision-making process.
66
Unfortunately, whenever a new person is added or someone goes into alumni
7-
status, there are a number of disparate places that need to be updated. This
8-
page aims to document that list. If you have any questions, or need someone with
9-
more privileges to make a change for you, a good place to ask is `#infra` on
10-
Discord.
7+
status, there are a number of disparate places that need to be updated.
118

12-
### Team repo
9+
# Team repo
1310

1411
Membership of teams is primarily driven by the config files in the
15-
[rust-lang/team repo][team repo]. Several systems use the team repo data to
16-
control access:
12+
[rust-lang/team repo][team repo]. See the README of that respository for the
13+
systems integrated with it.
1714

18-
- the [team website]
19-
- bors r+ rights
20-
- rfcbot interaction
21-
- Mailgun email lists
15+
# Rules for changes to team repo
2216

23-
Team membership is duplicated in a few other places listed below, but the
24-
long-term goal is to centralize on the team repo.
17+
Pull requests to the repository are merged by the [team-repo-admins], who use these rules to merge PRs:
18+
19+
### `people`, `teams`, and `repos` directories
20+
21+
If a change is related to an individual and does not expand permissions, then only the individual's approval is required. If the change has already been made outside of the team repo (e.g., GitHub username change) then it is considered implicitly approved. This non-exhaustively includes:
22+
23+
* Changing team membership to alumni or full removal
24+
* Changing email address
25+
* Adding zulip-id
26+
27+
If a change will grant additional permissions, then a team lead needs to
28+
approve the change. Any team lead in the "parent team" chain may do so. This includes:
29+
30+
* Adding new subteams under an existing team
31+
* Granting additional access (bors, dev-desktop access, etc.)
32+
* Changing other metadata (website descriptions, Zulip groups, etc.)
33+
* Changing access to repositories owned by their team
34+
* For repositories ownership is not currently formally tracked. Until that is
35+
added, the team-repo-admins are expected to exercise their understanding of
36+
which team owns the repository, when in doubt asking for clarification and
37+
codifying in a comment in the relevant repository.
38+
39+
### Source code changes
40+
41+
The team repository additionally contains code to transform and validate the
42+
TOML user-edited files. This is owned by the Infrastructure team and approval
43+
should be sought for changes.
44+
45+
### Who belongs to team-repo-admins?
46+
47+
This group of people is nominated & approved by the Leadership Council, but is
48+
not selected through any formal criteria. Eventually, we hope that the need for
49+
this group to exist will diminish as additional automation is added to enforce
50+
the above policies.
51+
52+
Note also that the [infra-admins] team maintains "root" credentials to Rust
53+
infrastructure, including the team repo, in order to make changes if needed to
54+
keep infrastructure operational. Those rights should only be exercised when
55+
required though, with team-repo-admins being the first point of contact for changes.
56+
(There may be overlap between the two teams).
57+
58+
# Extra steps for changes
2559

2660
### Full team membership
2761

2862
To make a full team member, the following places need to be modified:
2963

3064
- the [team repo]
31-
- the [rust-lang/TEAM][gh-team] and (in some cases)
32-
[rust-lang-nursery/TEAM][gh-nursery-team] teams on github must be updated
33-
- the
34-
[internals discussion board has per-team groups](https://internals.rust-lang.org/admin/groups/custom)
3565
- if the member is going to join the review rotation, they will need to be
3666
added to the `[assign.owners]` section of `triagebot.toml` of the repos
3767
where they will be reviewing
@@ -40,14 +70,13 @@ To make a full team member, the following places need to be modified:
4070

4171
Remove the team member from any and all places:
4272

43-
- 1password
44-
- The [GitHub team][gh-team], [GitHub nursery team][gh-nursery-team]
4573
- [team repo]
46-
- [toolstate notifications]
4774
- `triagebot.toml` files of all repos they were involved in
75+
- 1password
4876

4977
[gh-team]: https://github.com/orgs/rust-lang/teams
5078
[gh-nursery-team]: https://github.com/orgs/rust-lang-nursery/teams
5179
[team repo]: https://github.com/rust-lang/team/tree/master/teams
5280
[team website]: https://www.rust-lang.org/governance
53-
[toolstate notifications]: https://github.com/rust-lang/rust/blob/master/src/tools/publish_toolstate.py
81+
[team-repo-admins]: https://github.com/rust-lang/team/blob/master/teams/team-repo-admins.toml
82+
[infra-admins]: https://github.com/rust-lang/team/blob/master/teams/infra-admins.toml

0 commit comments

Comments
 (0)