Skip to content

Commit 5ece9cb

Browse files
authored
chore: Updating Governance policy and memebership roles (#5016)
1 parent a5db094 commit 5ece9cb

File tree

6 files changed

+284
-232
lines changed

6 files changed

+284
-232
lines changed

.github/ISSUE_TEMPLATE/maintainer.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Organization Maintainer Request
3+
about: Request to become a maintianer in LitmusChaos Org
4+
title: "REQUEST: Promote <your-GH-handle> to maintainer for LitmusChaos"
5+
labels: type/maintainer-request
6+
assignees: ""
7+
---
8+
9+
### GitHub Username
10+
11+
@<your-GH-handle>
12+
13+
### Requirements
14+
15+
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
16+
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
17+
- [ ] I am an active member of 1 or more LitmusChaos subprojects for atleast the last 6 months.
18+
- [ ] I am an active participant in issue/PR reviews for atleast 2 subprojects and for the past 6 months.
19+
- [ ] I have been involved in technical and project discussions with other maintainers.
20+
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
21+
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
22+
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
23+
24+
### Sponsors
25+
26+
- @<sponsor-1>
27+
- @<sponsor-2>
28+
29+
### List of contributions to the Argoproj project
30+
31+
- PRs reviewed / authored
32+
- Issues responded to
33+
- Projects I am involved with

.github/ISSUE_TEMPLATE/member.md

+31
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
name: Organization Member Request
3+
about: Request membership in LitmusChaos Org
4+
title: "REQUEST: New member request for <your-GH-handle>"
5+
labels: type/member-request
6+
assignees: ""
7+
---
8+
9+
### GitHub Username
10+
11+
@<your-GH-handle>
12+
13+
### Requirements
14+
15+
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
16+
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
17+
- [ ] I am actively contributing to 1 or more LitmusChaos subprojects
18+
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
19+
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
20+
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
21+
22+
### Sponsors
23+
24+
- @<sponsor-1>
25+
- @<sponsor-2>
26+
27+
### List of contributions to the Argoproj project
28+
29+
- PRs reviewed / authored
30+
- Issues responded to
31+
- Projects I am involved with

.github/ISSUE_TEMPLATE/reviewer.md

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
---
2+
name: Organization Reviewer Request
3+
about: Request reviewer membership in LitmusChaos Org
4+
title: "REQUEST: Promote <your-GH-handle> to reviewer for LitmusChaos"
5+
labels: type/reviewer-request
6+
assignees: ""
7+
---
8+
9+
### GitHub Username
10+
11+
@<your-GH-handle>
12+
13+
### Requirements
14+
15+
- [ ] I have reviewed [the community role guidelines](/community-roles.md)
16+
- [ ] I have [enabled 2FA on my GitHub account](https://github.com/settings/security)
17+
- [ ] I am an active member of 1 or more LitmusChaos subprojects for atleast the last 3 months.
18+
- [ ] I am an active participant in issue/PR reviews for atleast 1 month.
19+
- [ ] I have reviewed or authored atleast 5 significant PRs.
20+
- [ ] I have atleast one sponsor that meet the sponsor requirements listed in the community role guidelines
21+
- [ ] I have spoken to my sponsor ahead of this application, and they have agreed to sponsor my application
22+
- [ ] I understand that I can [make my membership public](https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership) if I'd like to once I am invited to the organization
23+
24+
### Sponsors
25+
26+
- @<sponsor-1>
27+
- @<sponsor-2>
28+
29+
### List of contributions to the Argoproj project
30+
31+
- PRs reviewed / authored
32+
- Issues responded to
33+
- Projects I am involved with

GOVERNANCE.md

+53-102
Original file line numberDiff line numberDiff line change
@@ -1,130 +1,79 @@
11
# LitmusChaos Project Governance
22

3+
This document outlines the governance structure for the LitmusChaos project, a CNCF Incubating project. It describes the roles, responsibilities, decision-making processes, and mechanisms for community involvement.
4+
35
We abide by the [Code of Conduct](./CODE_OF_CONDUCT.md) for all the projects maintained under the LitmusChaos Organization.
46

57
For specific guidance on practical contribution steps for any LitmusChaos sub-project please
6-
see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide and the sub-project specific contributing guides
8+
see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide and the sub-project specific contributing guides
79
in the respective GitHub repositories.
810

9-
## Maintainership
10-
11-
There are different types of maintainers, with different responsibilities, but
12-
all maintainers have 3 things in common:
13-
14-
1) They share responsibility in the project's success.
15-
2) They have made a long-term, recurring time investment to improve the project.
16-
3) They spend that time doing whatever needs to be done, not necessarily what
17-
is the most interesting or fun.
18-
19-
Maintainers are often under-appreciated, because their work is harder to appreciate.
20-
It's easy to appreciate a really cool and technically advanced feature. It's harder
21-
to appreciate the absence of bugs, the slow but steady improvement in stability,
22-
or the reliability of a release process. But those things distinguish a great
23-
project from a good one.
24-
25-
## Reviewers
11+
## Roles and Membership
2612

27-
A reviewer is a core role within the project.
28-
They share in reviewing issues and pull requests and their LGTM counts towards the
29-
required LGTM count to merge a code change into the project.
13+
Roles and their responsibilities are detailed in the [Community Membership](./community-roles.md) document.
3014

31-
Reviewers are part of the organization but do not have write access.
32-
Becoming a reviewer is a core aspect in the journey to becoming a maintainer.
15+
The list of current maintainers and their organizational affiliations is maintained in the [MAINTAINERS.md](./MAINTAINERS.md) file.
3316

34-
## Adding maintainers
17+
## Conflict Resolution and Voting
3518

36-
Maintainers are first and foremost contributors that have shown they are
37-
committed to the long term success of a project. Contributors wanting to become
38-
maintainers are expected to be deeply involved in contributing code, pull
39-
request review, and triage of issues in the project for more than three months.
19+
Most issues within the project are resolved by consensus. When consensus cannot be reached, a voting process is initiated. All decisions are documented publicly, either in GitHub or in meeting notes.
4020

41-
Just contributing does not make you a maintainer, it is about building trust
42-
with the current maintainers of the project and being a person that they can
43-
depend on and trust to make decisions in the best interest of the project.
44-
45-
Periodically, the existing maintainers curate a list of contributors that have
46-
shown regular activity on the project over the prior months. From this list,
47-
candidates are selected and proposed as maintainers.
48-
49-
After a candidate has been proposed as maintainer via a Pull Request by any of
50-
the existing maintainers, the other maintainers are given five business days
51-
to discuss the candidate, raise objections and cast their vote.
52-
The Votes take place via the pull request comment. Candidates must be approved by at
53-
least 66% of the current maintainers by adding their vote on the mailing list.
54-
The reviewer role has the same process but only requires 33% of current maintainers.
55-
Only maintainers of the repository that the candidate is proposed for are allowed to
56-
vote. The candidate becomes a maintainer once the pull request is merged.
57-
58-
## Adding sub-projects
21+
### Voting Process
5922

60-
Similar to adding maintainers, new sub projects can be added to LitmusChaos
61-
GitHub organization as long as they adhere to the LitmusChaos vision and mission.
62-
New projects are discussed in either the Contributor Meeting or the Community
63-
slack and requires at least 1 maintainer approval.
23+
- **Threshold:** A vote passes with a simple majority.
24+
- **Quorum:** At least 30% of maintainers must participate in the vote.
25+
- **Voting Method:** Votes are cast by adding +1 or -1 to the associated GitHub issue or PR.
26+
- **Binding Votes:** Each maintainer has one binding vote. Non-binding votes from the community are encouraged.
27+
- **Organizational Limit:** No single organization can cast more than 40% of the eligible votes. Organizations with more than 40% of maintainers must designate voting members.
28+
- **Duration:** Voting remains open for one week.
6429

65-
If a project is approved, a maintainer will add the project to the LitmusChaos
66-
GitHub organization, and make an announcement on a public forum.
30+
## How are decisions made?
6731

68-
## Stepping down policy
32+
LitmusChaos is an open-source project with an open design philosophy. This means
33+
that the repository is the source of truth for EVERY aspect of the project,
34+
including its philosophy, design, road map, and APIs. _If it's part of the
35+
project, it's in the repo. If it's in the repo, it's part of the project._
6936

70-
Life priorities, interests, and passions can change. If you're a maintainer but
71-
feel you must remove yourself from the list, inform other maintainers that you
72-
intend to step down, and if possible, help find someone to pick up your work.
73-
At the very least, ensure your work can be continued where you left off.
37+
As a result, all decisions can be expressed as changes to the repository. An
38+
implementation change is a change to the source code. An API change is a change
39+
to the API specification. A philosophy change is a change to the philosophy
40+
manifesto, and so on.
7441

75-
After you've informed other maintainers, create a pull request to remove
76-
yourself from the MAINTAINERS file.
42+
All decisions affecting LitmusChaos, big and small, follow the same 3 steps:
7743

78-
## Removal of inactive maintainers
44+
- Step 1: Open a pull request. Anyone can do this.
45+
- Step 2: Discuss the pull request. Anyone can do this.
46+
- Step 3: Merge or refuse the pull request. Who does this depends on the nature
47+
of the pull request and which areas of the project it affects.
7948

80-
Similar to the procedure for adding new maintainers, existing maintainers can
81-
be removed from the list if they do not show significant activity on the
82-
project. Periodically, the maintainers review the list of maintainers and their
83-
activity over the last three months.
49+
## Decision-Making Process
8450

85-
If a maintainer has shown insufficient activity over this period, a neutral
86-
person will contact the maintainer to ask if they want to continue being
87-
a maintainer. If the maintainer decides to step down as a maintainer, they
88-
open a pull request to be removed from the MAINTAINERS file.
51+
Most decisions are made through consensus. If consensus cannot be reached, maintainers may initiate a vote.
8952

90-
## Emeritus maintainers
53+
### Voting
9154

92-
For committers who are stepping down or being removed due to inactivity,
93-
the project would like to memorialize their contributions to the project by
94-
recognizing them as Emeritus maintainers in the EMERITUS.md file. The EMERITUS.md
95-
file will include a brief paragraph summarizing their contribution to the
96-
containerd project and recognize them as permanent Emeritus members of the
97-
community. While Emeritus maintainers are not active in the project, their
98-
expertise is always valued and their LGTM may count towards the required LGTM
99-
count to merge a code change into the project.
55+
- **Threshold:** A vote passes with a simple majority.
56+
- **Quorum:** At least 30% of maintainers must participate in the vote.
57+
- **Method:** Votes are cast using +1 (approve) or -1 (reject) in the relevant GitHub PR or issue.
58+
- **Duration:** Voting remains open for one week.
10059

101-
If in the future an Emeritus maintainer has the desire or ability to return to
102-
contributing to the project, Emeritus maintainers can submit a pull request
103-
reversing their removal from the MAINTAINERS file and approval only requires
104-
2 LGTMs from current committers to return to full committer status in the
105-
project.
60+
## Community Support and Transparency
10661

62+
LitmusChaos aims for full transparency and inclusion in all governance activities. All decisions are made publicly and documented in the GitHub repositories or public meetings.
10763

108-
## How are decisions made?
64+
### Recurring Public Meetings
10965

110-
LitmusChaos is an open-source project with an open design philosophy. This means
111-
that the repository is the source of truth for EVERY aspect of the project,
112-
including its philosophy, design, road map, and APIs. *If it's part of the
113-
project, it's in the repo. If it's in the repo, it's part of the project.*
66+
- #### Maintainers and Contributors Meeting
11467

115-
As a result, all decisions can be expressed as changes to the repository. An
116-
implementation change is a change to the source code. An API change is a change
117-
to the API specification. A philosophy change is a change to the philosophy
118-
manifesto, and so on.
68+
Covers technical issues, future milestones, and roadmaps. Also focused on governance, membership, and the future direction of the project.
11969

120-
All decisions affecting LitmusChaos, big and small, follow the same 3 steps:
70+
- #### Community Meeting
12171

122-
* Step 1: Open a pull request. Anyone can do this.
72+
Engages end users and the community with project updates, user presentations, and open discussions.
12373

124-
* Step 2: Discuss the pull request. Anyone can do this.
74+
- #### Meeting Calendar
12575

126-
* Step 3: Merge or refuse the pull request. Who does this depends on the nature
127-
of the pull request and which areas of the project it affects.
76+
Please fill [this invite form](https://forms.gle/AsuXB2hbTG2TyD2d9) to be added to the calendar
12877

12978
## Helping contributors with the DCO
13079

@@ -148,10 +97,12 @@ When you add someone's DCO, please also add your own to keep a log.
14897
Yes. Nobody should ever push to master directly. All changes should be
14998
made through a pull request.
15099

151-
## Conflict Resolution
100+
## Adding sub-projects
101+
102+
Similar to adding maintainers, new sub projects can be added to LitmusChaos
103+
GitHub organization as long as they adhere to the LitmusChaos vision and mission.
104+
New projects are discussed in either the Contributor Meeting or the Community
105+
slack and requires at least 1 maintainer approval.
152106

153-
If you have a technical dispute that you feel has reached an impasse with a
154-
subset of the community, any contributor may open an issue, specifically
155-
calling for a resolution vote of the current maintainers to resolve the dispute.
156-
The same voting quorums required (2/3) for adding and removing maintainers
157-
will apply to conflict resolution.
107+
If a project is approved, a maintainer will add the project to the LitmusChaos
108+
GitHub organization, and make an announcement on a public forum.

0 commit comments

Comments
 (0)