Skip to content

Commit e15faf9

Browse files
committed
Feature Maintainer definition
Signed-off-by: rabollin <[email protected]>
1 parent 209e7cf commit e15faf9

File tree

1 file changed

+73
-8
lines changed

1 file changed

+73
-8
lines changed

community-membership.md

Lines changed: 73 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ This doc outlines the responsibilities of contributor roles in Dapr. The Dapr pr
77
| ---------- | ----------------------------------------------------- | ------------------------------------------------------------ | ------------------------------------------------------------ |
88
| Member | Active contributor in the community. Reviewer of PRs | Sponsored by two approvers or maintainers. Multiple contributions to the project. | Dapr GitHub org member |
99
| Approver | Approve accepting contributions | Highly experienced and active reviewer and contributor to a subproject. | [CODEOWNERS](https://help.github.com/en/articles/about-code-owners) in GitHub |
10-
| Maintainer | Set direction and priorities for a subproject | Demonstrated responsibility and excellent technical judgement for the subproject. | [CODEOWNERS](https://help.github.com/en/articles/about-code-owners), GitHub Team and repo ownership in GitHub |
10+
| Core-Maintainer | Set direction and priorities for a subproject | Demonstrated responsibility and excellent technical judgement for the subproject. | [CODEOWNERS](https://help.github.com/en/articles/about-code-owners), GitHub Team and repo ownership in GitHub |
11+
| Feature-Maintainer | Set direction and priorities for a subarea of project/repo | Demonstrated responsibility and excellent technical judgement for the subarea. | [CODEOWNERS](https://help.github.com/en/articles/about-code-owners), GitHub Team and repo ownership in GitHub |
1112

1213
> Note: The Steering & Technical Committee (STC) referred to in this document is described [here](./steering-and-technical-committee-charter.md)
1314
@@ -109,9 +110,9 @@ The following apply to the part of the codebase for which one would be an approv
109110
- May approve code contributions for acceptance
110111
- Inactivity for more than 3 months leads to a removal vote by other maintainers/approvers and not an automatic removal
111112

112-
## Maintainer
113+
## Core-Maintainer
113114

114-
Maintainers are the technical authority for a subproject in the Dapr org. They *MUST* have demonstrated both good judgement and responsibility towards the health of that subproject. Maintainers *MUST* set technical direction and make or approve design decisions for their subproject - either directly or through delegation of these responsibilities.
115+
Core-Maintainers are the technical authority for a subproject in the Dapr org. They *MUST* have demonstrated both good judgement and responsibility towards the health of that subproject. Core Maintainers *MUST* set technical direction and make or approve design decisions for their subproject - either directly or through delegation of these responsibilities.
115116

116117
Defined by: GitHub organization ownership, permissions and entry in `CODEOWNERS`
117118
files.
@@ -134,12 +135,12 @@ The following apply to the subproject for which one would be an owner:
134135

135136
### Acceptance
136137

137-
New maintainers can be added to the project by a super-majority (two-thirds / 66.66%) vote. Only the maintainers of the repository in which the nomination is applied to have a binding vote, while maintainers from other repositories are on an informed basis via a separate email thread. A potential maintainer may be nominated by an existing maintainer from the repository in which the nomination is applied to. A vote is conducted in private between the current maintainers over the course of a one week voting period. At the end of the week, votes are counted and a pull request is made on the repo adding the new maintainer to the CODEOWNERS file.
138+
New Core-maintainers can be added to the project by a super-majority (two-thirds / 66.66%) vote. Only the Core-maintainers of the repository in which the nomination is applied to have a binding vote, while Core-maintainers from other repositories are on an informed basis via a separate email thread. A potential Core-maintainer may be nominated by an existing Core-maintainer from the repository in which the nomination is applied to. A vote is conducted in private between the current Core-maintainers over the course of a one week voting period. At the end of the week, votes are counted and a pull request is made on the repo adding the new core-maintainer to the CODEOWNERS file.
138139

139-
Maintainers for new repositories can be nominated by any member of the steering committee and voted on in a steering committee meeting.
140-
Single maintainers of a repository can nominate a new maintainer and *MUST* inform the steering committee of their intention. The maintainer can be approved if no objections have been raised in a period of one week.
140+
Core-maintainers for new repositories can be nominated by any member of the steering committee and voted on in a steering committee meeting.
141+
Single Core-maintainers of a repository can nominate a new Core-maintainer and *MUST* inform the steering committee of their intention. The Core-maintainer can be approved if no objections have been raised in a period of one week.
141142

142-
A maintainer may step down by submitting an issue stating their intent.
143+
A Core-maintainer may step down by submitting an issue stating their intent.
143144

144145
### Responsibilities and privileges
145146

@@ -157,5 +158,69 @@ The following apply to the subproject(repos) for which one would be an owner:
157158
- Ensure a healthy process for discussion and decision making is in place
158159
- Work with other maintainers to maintain the project's overall health and success holistically
159160

160-
Maintainers *MUST* remain active. If they are unresponsive for >3 months, they will be automatically removed unless a super-majority of the other repository maintainers agrees to extend the period to be greater than 3 months.
161+
Core-Maintainers *MUST* remain active. If they are unresponsive for >3 months, they will be automatically removed unless a super-majority of the other repository maintainers agrees to extend the period to be greater than 3 months.
161162

163+
## Feature-Maintainer
164+
165+
Feature-Maintainers are the technical authority for a subarea of the project/repo in the Dapr org. They *MUST* have demonstrated both good judgement and responsibility towards the health of that subarea. Feature-maintainers can set technical direction and make or approve design decisions for their subarea - either directly or through delegation of these responsibilities.
166+
167+
Defined by: GitHub organization ownership, permissions and entry in `CODEOWNERS`
168+
files.
169+
170+
### Requirements
171+
172+
The following apply to the sub area(ex: building block API/ Control plane service/ Component provider) for which one would be a Feature-maintainer:
173+
174+
- Deep understanding of the technical goals and direction of the sub area.
175+
- Deep understanding of the technical domain (specifically the language) of the sub area
176+
- Sustained contributions to design and direction by doing all of:
177+
- Authoring and reviewing proposals
178+
- Initiating, contributing and resolving discussions For example Discord discussions, GitHub issues, meetings)
179+
- Identifying subtle or complex issues in designs and implementation PRs
180+
- Directly contributed to the subarea through implementation and / or review
181+
- Must have been active for 3 months or more for the given sub-area
182+
- Inactivity for more than 3 months leads to a removal vote by the repo maintainers and not an automatic removal
183+
184+
185+
### Acceptance
186+
187+
New Feature-Maintainers can be added to the project by a super-majority (two-thirds / 66.66%) vote. Only the maintainers of the repository in which the nomination is applied have a binding vote, while maintainers from other repositories are on an informed basis via a separate email thread.
188+
189+
A potential feature-maintainer may be nominated by an existing maintainer from the repository in which the nomination is applied to. A vote is conducted in private between the current maintainers over the course of a one week voting period. At the end of the week, votes are counted, and a pull request is made on the repo adding the new feature-maintainer to the feature-maintainers.md file.
190+
191+
Feature-maintainers MUST remain active. If they are unresponsive for >3 months, they will be automatically removed unless a super-majority of the other repository maintainers agrees to extend the period to be greater than 3 months.
192+
193+
A feature-maintainer may step down by submitting an issue stating their intent.
194+
195+
### Example of Feature Maintainers in DAPR Runtime repo:
196+
Sub Area
197+
Person Name
198+
Workflow
199+
Chris Gillum
200+
Control Plane Service(mTLS)
201+
Josh V
202+
203+
| **Subarea** | **Name** |
204+
| ---------- | ---------------------------------------------|
205+
| Workflow | Chris Gilum |
206+
| Control Plane Service(mTLS)| Josh V |
207+
208+
### Responsibilities and privileges
209+
210+
The following applies to the sub area(ex: building block API/ Control plane service/ Component provider) for which the feature-maintainer would be an owner:
211+
212+
- Make and approve technical design decisions for the sub area
213+
- Set technical direction and priorities for the sub area.
214+
- Define milestones and releases working along with the maintainers
215+
- Decides on when PRs are merged to control the release scope
216+
- Mentor and guide approvers and contributors of the sub area
217+
- Escalate approver and maintainer workflow concerns. (For example responsiveness, availability, and general contributor community health) to the STC
218+
- Ensure continued health of sub area:
219+
- Adequate test coverage to confidently release
220+
- Tests are passing reliably (not flaky) and are fixed when they fail.
221+
- Work with other feature-maintainers & Core-maintainers to maintain the project's overall health and success holistically.
222+
- Membership tracked in feature-maintainer.md entry and scoped to a sub area.
223+
- MUST maintain components, review, and approve proposals for enhancing areas falling under the user sub area.
224+
- Actively participate in issue triages and PR reviews
225+
- Set milestone priorities for the sub areas or delegate the responsibility to repo maintainers.
226+
- Ensure a healthy process for discussion and decision making is in place

0 commit comments

Comments
 (0)