Skip to content

Commit 40a750d

Browse files
committed
Add README.md to the ladder/teams directory explaining how team management works
Signed-off-by: Jef Spaleta <[email protected]>
1 parent ef2e985 commit 40a750d

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

ladder/teams/README.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# How Cilium GitHub Teams Are Managed
2+
The Cilium project makes use of GitHub teams to help enforce responsibility boundaries with regard to the project codebase here on GitHub.
3+
GitHub teams loosely map groups of [contributors](https://github.com/cilium/community/blob/main/CONTRIBUTOR-LADDER.md) to the Cilium Project as either reviewers and/or committers, focused on a portion of the codebase. [GitHub teams](https://github.com/orgs/cilium/teams) are an implementation detail in how code access and review responsibilities are organized and are not a 1 to 1 mapping to [Cilium Project teams](https://github.com/cilium/community/blob/main/CONTRIBUTOR-ROLES.md).
4+
5+
For example, the Cilium Project Code team, may require multiple GitHub teams in the Cilium GitHub organization to self-organize their work.
6+
These multiple GitHub teams will be composed of contributors at different steps along the contributor ladder: organizational members, reviewers, and committers.
7+
The different GitHub teams have different permissions, corresponding to the level of code access needed by the members of that team.
8+
9+
Cilium GitHub organization team memberships can be self-managed by making use of team membership configuration files in this directory.
10+
11+
Each Cilium GitHub team can establish a file in this directory managed by the CODEOWNERS system with the assistance of
12+
the Cilium GitHub organization [admins](https://github.com/cilium/community/blob/main/ADMINS-FOR-CILIUM.md) (or duly deputized members of the org tasked with helping initiating team self-management).
13+
You can submit a PR against the Community repository to start the process to request a new team configuration and the correct Cilium contributors should be pulled into review.
14+
15+
Changes to files in this directory, when merged into the main branch (after appropriate approvals and review),
16+
will propogate via GitHub API automation and be reflected in the Cilium GitHub Organization's [teams](https://github.com/orgs/cilium/teams).
17+
18+
## GitHub Team Member and Mentors
19+
With membership comes both priviledges and responsibilities. One of the responsibilities of being on an active Cilium GitHub team member is
20+
being available for automatic pull request review assignment for files owned by that GitHub team.
21+
22+
Over time as contributors transition from one GitHub team to another inside the project, while not active on a team any longer,
23+
their historic experience may be needed to help review proposed changes with functionality they have insight into. In these cases these
24+
individuals can be added to the team's mentor list in the team configuration file here. Mentors are no longer part of the auto-assigned PR review rotation,
25+
but they can still keep team approval access. Active Mentors of a team are expected to provide guidance to others in the team and seek reviews they
26+
should participate in for the code owner area.
27+
28+
## Don't Forget to Set Your GitHub Status
29+
When active team members are not available for an extended period of time (for example they are on vacation for several days),
30+
they are encouraged to set themselves as busy in their [GitHub status](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-github-profile/customizing-your-profile/personalizing-your-profile#setting-a-status). If your status is busy GitHub will skip you to the pull request review rotation for the teams you are on.
31+
32+
Note: Not everyone should be busy all at the same time on a GitHub team if it can be avoided. Cilium Team Management automation puts
33+
some guardrails on this and lets the Cilium project know if there aren't sufficient number of reviewers. The GitHub organization owners (or someone
34+
delegated to keep tabs on this) will periodically check to see if teams are meeting the expectations of number of people
35+
available for review assignment and will reach out to teams if there appears to be a chronic shortfall.
36+
37+
## Team Configuration File Format
38+
39+
Each Cilium GitHub team that wants to self-service their team members (and mentors!) can have a file in this directory named `TEAM_NAME.yaml`
40+
The file contents as the form of
41+
```
42+
# Team members with rights such as commit and approval, as appropriate for the team.
43+
# They participate in automatic Pull Requests reviews rotation,
44+
# unless they also are listed as mentors below in this file.
45+
members:
46+
- username_01
47+
- username_02
48+
- username_03
49+
50+
# Contributors with experience in the team area.
51+
# They don't have team rights such as commit and approval,
52+
# unless they are also listed as members above.
53+
# They are never part of the automatic PRs reviews rotation.
54+
mentors:
55+
- username_02
56+
- username_04
57+
```
58+
59+
In this mockup team file, `username_02` is both a member and a mentor and would be excluded from auto-assignment of PR reviews, but would
60+
have other team rights such as commit and approval for changes to files owned by this team.
61+
62+
`username_01` and `username_03` are active team members participating in the automatic PR review rotation.
63+
64+
`username_04` is listed as a mentor, but not a member. This is here as recognition that historically the person participated in the team
65+
and is willing to be contacted for historical experience when needed, but doesn't have normal team member access to approve.
66+
Listing non-active members as mentors is a way to keep institutional knowledge as to who historically provided insight about code functionality to newer
67+
members on that team.

0 commit comments

Comments
 (0)