Skip to content

Commit 4aa12f8

Browse files
authored
docs: add the responsibilities of contributor roles (#3345)
Signed-off-by: Gaius <gaius.qi@gmail.com>
1 parent fba7234 commit 4aa12f8

File tree

1 file changed

+109
-13
lines changed

1 file changed

+109
-13
lines changed

GOVERNANCE.md

Lines changed: 109 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,92 @@
22

33
As a CNCF member project, Dragonfly project abides by the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
44

5-
## Overview
5+
This doc outlines the responsibilities of contributor roles in Dragonfly. The Dragonfly project is subdivided into sub-projects
6+
under (predominantly, but not exclusively) nydus, nydus-snapshotter, api, docs, console and client.
7+
Responsibilities for roles are scoped to these sub-projects (repos).
68

7-
- [Maintainership](#Maintainership)
8-
- [Adding Maintainers](#Adding-Maintainers)
9-
- [Removal of Inactive Maintainers](#Removal-of-Inactive-Maintainers)
10-
- [How to make decision](#How-to-make-decision)
11-
- [Updating Governance](#Updating-Governance)
9+
We have six levels of responsibility including:
1210

13-
## Maintainership
11+
- Contributor
12+
- Member
13+
- Approver
14+
- Maintainer
15+
- Administrator
16+
17+
## Contributor
18+
19+
A Contributor is someone who has contributed to the project by submitting code, issues, or participating in discussions.
20+
21+
### Responsibilities
22+
23+
- Contribute code changes via pull requests (PRs).
24+
- Raise issues for bugs, enhancements, or other discussions.
25+
- Participate in code reviews if requested.
26+
- Follow the project's Code of Conduct and contribution guidelines.
27+
28+
### Requirements
29+
30+
- Have a GitHub account.
31+
- Sign the Contributor License Agreement (if applicable).
32+
- Adhere to the project's coding standards and guidelines.Contributor
33+
34+
## Member
35+
36+
A Member is a contributor who has shown long-term commitment to the project,
37+
consistently contributing high-quality work and actively participating in the community.
38+
39+
Responsibilities:
40+
41+
- All responsibilities of a Contributor.
42+
- Participate in project planning and decision-making processes.
43+
- Mentor new contributors.
44+
- Actively participate in community meetings and discussions.
45+
46+
Requirements:
47+
48+
- Demonstrated history of contributions (code, reviews, discussions) over at least 3 months.
49+
- Invitation by a Maintainer or Administrator based on consensus.
50+
- Continued adherence to the project's Code of Conduct.
51+
52+
## Approver
53+
54+
An Approver is a member who has the additional responsibility of reviewing and approving PRs that affect the project.
55+
56+
Responsibilities:
57+
58+
- All responsibilities of a Member.
59+
- Review and approve PRs from Contributors and Members.
60+
- Ensure that changes adhere to coding standards, do not introduce bugs, and improve the project.
61+
- Help triage issues and provide feedback on improvements.
62+
63+
Requirements:
64+
65+
- Demonstrated expertise in the project’s codebase.
66+
- Consistent and high-quality contributions.
67+
- Trusted by Maintainers and Administrators to provide accurate reviews and approvals.
68+
69+
## Maintainer
70+
71+
A Maintainer is an experienced and trusted member who has extensive knowledge of the project, including architecture
72+
and design principles. Maintainers have the authority to merge PRs and make significant project decisions.
73+
74+
Responsibilities:
75+
76+
- All responsibilities of an Approver.
77+
- Merge PRs to the main branch.
78+
- Ensure the overall quality, stability, and performance of the codebase.
79+
- Coordinate releases and update documentation.
80+
- Guide the project's technical direction and roadmap.
81+
- Facilitate communication and collaboration within the community.
82+
83+
Requirements:
84+
85+
- Demonstrated long-term, high-quality contributions and leadership in the project.
86+
- Deep understanding of the project’s architecture and design.
87+
- Commitment to the project's goals and values.
88+
- Nominated and approved by existing Maintainers and Administrators.
89+
90+
### Maintainership
1491

1592
Maintainers of Dragonfly share the responsibility. And they have 3 things in general:
1693

@@ -23,7 +100,7 @@ It is easy to work on the fancy part or technically advanced feature. It is hard
23100
to work on minor bugfix, small improvement, long-term stable optimization or
24101
others. While all of the above is the essential parts to build up a successful project.
25102

26-
## Adding Maintainers
103+
### Adding Maintainers
27104

28105
Maintainers are foremost and first contributors that have dedicated to the long
29106
term success of the project. Contributors wishing to become maintainers are
@@ -42,7 +119,7 @@ maintainers can be submitted to GitHub via a pull request. If a vote of at
42119
least 50% agree with the proposal, the newly added maintainer must be treated
43120
valid.
44121

45-
## Removal of Inactive Maintainers
122+
### Removal of Inactive Maintainers
46123

47124
Similar to adding maintainers, existing maintainer can been removed from the
48125
active maintainer list. If the existing maintainer meet one of the conditions
@@ -61,7 +138,7 @@ If a maintainer is removed from the maintaining list, other maintainers should
61138
at a column to the alumni part to thank the contribution made from the inactive
62139
maintainer.
63140

64-
## How to make decision
141+
### How to make decision
65142

66143
Dragonfly is an open-source project illustrating the concept of open. This
67144
means that Dragonfly repository is the source of truth for every aspect of the
@@ -88,7 +165,26 @@ maintainers pull request could be merged, if it meets conditions below:
88165

89166
- at least two maintainers commented `LGTM` to the pull request;
90167

91-
## Updating Governance
168+
### Updating Governance
169+
170+
All substantive updates in Governance require a supermajority maintainers vote.
171+
172+
## Administrator
173+
174+
An Administrator has the highest level of access and responsibility in the project. They manage overall project governance,
175+
ensure adherence to policies, and resolve conflicts within the community.
176+
177+
Responsibilities:
178+
179+
- All responsibilities of a Maintainer.
180+
- Manage project settings and permissions.
181+
- Ensure compliance with legal and organizational policies.
182+
- Handle CoC violations and mediate conflicts.
183+
- Facilitate election of new roles or changes in the governance structure.
184+
185+
Requirements:
92186

93-
All substantive updates in Governance require a supermajority maintainers
94-
vote.
187+
- Proven contribution history and leadership within the project.
188+
- Strong understanding of open-source community management.
189+
- Trusted by the community and other Administrators.
190+
- Appointed through consensus of current Administrators.

0 commit comments

Comments
 (0)