Skip to content
This repository was archived by the owner on Jul 11, 2023. It is now read-only.

Commit 5ee33f3

Browse files
authored
ref(contributors): update contributor roles and requirements (#4776)
- Clarifies role requirements - Defines process for adding codeowner permissions per directory Signed-off-by: jaellio <[email protected]> Signed-off-by: Shalier Xia <[email protected]>
1 parent 3f72969 commit 5ee33f3

File tree

1 file changed

+51
-23
lines changed

1 file changed

+51
-23
lines changed

CONTRIBUTOR_LADDER.md

+51-23
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,39 @@
11
# OSM Contributor Ladder
22

3-
Hello! We are excited to have you contribute to Open Service Mesh (OSM)! This contributor ladder outlines the different contributor roles within the project, along with the responsibilites and privileges that come with them. Community members generally start at the first levels of the "ladder" and advance up it as their involvement in the project grows. Our project members are happy to help you advance along the contributor ladder.
3+
Hello! We are excited to have you contribute to Open Service Mesh (OSM)! This contributor ladder outlines the different contributor roles within the project, along with the responsibilities and privileges that come with them. Community members generally start at the first levels of the "ladder" and advance up as their involvement in the project grows. Our project members are happy to help you advance along the contributor ladder.
44

5-
Each of the contributor roles below is organized into lists of three types of things.
6-
* "Responsibilities" are things that a contributor is expected to do
7-
* "Requirements" are qualifications a contributor needs to meet to be in that role
8-
* "Privileges" are things a contributor on that level is entitled to
5+
Each of the roles is organized into the following categories:
6+
* "Responsibilities" list what the role is expected to do
7+
* "Requirements" are qualifications the role needs to meet
8+
* "Privileges" list what the role is entitled to
99

10+
| Role | Responsibilities | Requirements | Privileges |
11+
| -----| ---------------- | ------------ | -------|
12+
| [Community Participant](#community-participant) | Following the [CNCF Code of Conduct] | --- | --- |
13+
| [Contributor](#contributor) | Following the [CNCF Code of Conduct] and the project [contributing guide] | One or more contributions to the project | Invitations to contributor events |
14+
| [Maintainer](#maintainer) | Active member of the community |<ul><li>Contributor for ≥3 months</li><li> Demonstrates deep understanding of multiple areas of the project</li><li>Exercise good judgement for the project</li><li>Maintain contributions to the project</li></ul> | <ul><li>Has GitHub or CI/CD rights to approve any pull requests</li><li>Represent the project as a Maintainer</li><li>Communicate with CNCF on behalf of the project</li></ul> |
1015

1116
## Community Participant
17+
1218
Description: A Community Participant participates in the community and contributes their time, thoughts, etc.
1319

1420
* Responsibilities:
15-
* Must follow the [CNCF CoC](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)
21+
* Must follow the [CNCF Code of Conduct]
1622
* How users can get involved with the community:
17-
* Participating in community discussions in Github, Slack, and meetings
23+
* Participating in community discussions in GitHub, Slack, and meetings
1824
* Helping other users
1925
* Submitting bug reports
2026
* Trying out new releases
2127
* Attending community events
2228
* Talking about the project on social media, blogs, and talks
2329

24-
2530
## Contributor
2631

2732
Description: A Contributor contributes directly to the project and adds value to it. Contributions need not be code. People at the Contributor level may be new contributors, or they may only contribute occasionally.
2833

2934
* Responsibilities include:
30-
* Following the [CNCF CoC](https://github.com/cncf/foundation/blob/master/code-of-conduct.md)
31-
* Following the project [contributing guide](https://github.com/openservicemesh/osm/blob/main/CONTRIBUTING.md)
35+
* Following the [CNCF Code of Conduct]
36+
* Following the project [contributing guide]
3237
* Requirements (one or several of the below):
3338
* Reports and sometimes resolves issues
3439
* Occasionally submits PRs
@@ -41,17 +46,20 @@ Description: A Contributor contributes directly to the project and adds value to
4146
* Promotes the project in public
4247
* Privileges:
4348
* Invitations to contributor events
44-
* Eligible to become a maintainer
49+
* Eligible to become a Maintainer
4550

51+
Process of becoming a Contributor:
52+
1. There is no nomination process for this role. Being a contributor entails being a community member who does one or more of the listed requirements.
4653

4754
## Maintainer
4855

49-
Description: Maintainers are very established contributors who are responsible for the entire project. As such, they have the ability to approve PRs against any area of the project, and are expected to participate in making decisions about the strategy and priorities of the project.
56+
Description: Maintainers are established contributors who are responsible for one or more project areas. They have the ability to approve PRs against the project areas they own and are expected to participate in making decisions about the strategy and priorities of the project.
5057

51-
A Maintainer must meet the rights, responsiblities, and requirements of a Contributor, plus:
58+
**Defined by**: *owners* entry in the [OWNERS file].
59+
60+
A Maintainer must meet the rights, responsibilities, and requirements of a Contributor, plus:
5261

5362
* Responsibilities include:
54-
* Following the reviewing guide
5563
* Reviewing and approving PRs that involve multiple parts of the project
5664
* Is supportive of new and infrequent contributors, and helps get useful PRs in shape to commit
5765
* Mentoring new Maintainers
@@ -60,26 +68,34 @@ A Maintainer must meet the rights, responsiblities, and requirements of a Contri
6068
* Determining strategy and policy for the project
6169
* Participating in, and leading, community meetings
6270
* Helps run the project infrastructure
63-
* Requirements
71+
* Requirements:
6472
* Experience as a Contributor for at least 3 months
65-
* Demonstrates a broad knowledge of the project across multiple areas
73+
* Deep understanding of the technical goals and direction of the project
74+
* Deep understanding of the technical domain of the project across their areas of ownership
75+
* Sustained contributions to design and direction by doing all of:
76+
* Authoring and reviewing proposals (GitHub Issues for refactoring, enhancements, or new functionality)
77+
* Initiating, contributing, and resolving discussions (emails, GitHub issues, meetings)
78+
* Identifying subtle or complex issues in designs and implementation PRs
6679
* Is able to exercise judgement for the good of the project, independent of their employer, social circles, or teams
6780
* Mentors other Contributors
6881
* Additional privileges:
82+
* Approve PRs to areas of ownership
6983
* Represent the project in public as a Maintainer
7084
* Communicate with the CNCF on behalf of the project
7185
* Have a vote in Maintainer decisions
7286

73-
Process of becoming a maintainer:
87+
Process of becoming a Maintainer:
7488

75-
1. Any current Maintainer may nominate a current Contributor to become a new Maintainer, by opening a PR against the root of the [OSM repository](https://github.com/openservicemesh/osm) and adding the nominee to the [OWNERS file](https://github.com/openservicemesh/osm/blob/main/OWNERS). Additionally, if the nomination is for a code owner whose PR approvals are meant to satisfy the PR merge requirements, the nominee must be added to the [CODEOWNERS file](https://github.com/openservicemesh/osm/blob/main/CODEOWNERS) in the same PR.
89+
1. A current contributor may be self-nominated or be nominated by a current Maintainer by opening a PR against the root of the [OSM repository] and adding the nominee to the [OWNERS file] under the *owners* entry.
90+
- If the nomination is for a code owner whose PR approvals are meant to satisfy the PR merge requirements against specific areas of the codebase, the nominee must be added to the [CODEOWNERS file] for their specific areas of ownership in the same PR.
91+
- A codeowner is defined per the [GitHub definition](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#about-code-owners). See this [example](https://docs.github.com/en/repositories/managing-your-repositorys-settings-and-features/customizing-your-repository/about-code-owners#example-of-a-codeowners-file) on how to specify an area in the [CODEOWNERS file] .
7692
2. The nominee will add a comment to the PR testifying that they agree to all requirements of becoming a Maintainer.
7793
3. A majority of the current Maintainers must then approve the PR.
7894

7995

8096
## Inactivity
8197

82-
It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a lost of trust in the project.
98+
It is important for contributors to be and stay active to set an example and show commitment to the project. Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a loss of trust in the project.
8399

84100
* Inactivity is measured by:
85101
* Periods of no contributions for longer than 3 months
@@ -92,19 +108,31 @@ It is important for contributors to be and stay active to set an example and sho
92108

93109
## Involuntary Removal or Demotion
94110

95-
Involuntary removal/demotion of a contributor happens when responsibilites and requirements aren't being met. This may include repeated pattern of inactivity, extended period of inactivity, a period of failing to meet the requirements of your role, and/or a violation of the [CNCF CoC](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). This process is important because it protects the community and its deliverables while also opens up opportunities for new contributors to step in.
96-
111+
Involuntary removal/demotion of a Maintainer happens when responsibilities and requirements aren't being met. This may include repeated patterns of inactivity, extended periods of inactivity, a period of failing to meet the requirements of your role, and/or a violation of the [CNCF Code of Conduct]. This process is important because it protects the community and its deliverables while also opens up opportunities for new contributors to step in.
97112

98113
Involuntary removal or demotion is handled through a vote by a majority of the current Maintainers.
99114

100115

101116
## Stepping Down/Emeritus Process
102117

103-
If and when contributors' commitment levels change, contributors can consider stepping down (moving down the contributor ladder) vs moving to emeritus status (completely stepping away from the project).
118+
If and when a contributor's commitment level changes, they can consider one of the following options:
119+
1. Stepping down (moving down the contributor ladder)
120+
2. Moving to emeritus status (completely stepping away from the project).
104121

105-
Contact the Maintainers about changing to Emeritus status, or reducing your contributor level.
122+
Contact the Maintainers about changing to Emeritus status or reducing your contributor level.
106123

107124

125+
## Review Process
126+
127+
- In addition to self-nominated and Maintainer proposed nominations, Maintainers will meet quarterly to discuss Role promotions and demotions.
128+
- Prior to nomination or meeting the requirements of the role, Contributors that express their interest in being a Maintainer can be assigned a Maintainer to help guide them through the requirements.
129+
108130
## Contact
109131

110132
For inquiries, please reach out to: [email protected]
133+
134+
[OWNERS file]: https://github.com/openservicemesh/osm/blob/main/OWNERS
135+
[CODEOWNERS file]: https://github.com/openservicemesh/osm/blob/main/CODEOWNERS
136+
[OSM repository]: https://github.com/openservicemesh/osm
137+
[contributing guide]: https://github.com/openservicemesh/osm/blob/main/CONTRIBUTING.md
138+
[CNCF Code of Conduct]: https://github.com/cncf/foundation/blob/master/code-of-conduct.md

0 commit comments

Comments
 (0)