docs: add the responsibilities of contributor roles (#3345)
Signed-off-by: Gaius <gaius.qi@gmail.com>
This commit is contained in:
parent
fba7234076
commit
4aa12f8cca
122
GOVERNANCE.md
122
GOVERNANCE.md
|
|
@ -2,15 +2,92 @@
|
||||||
|
|
||||||
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).
|
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).
|
||||||
|
|
||||||
## Overview
|
This doc outlines the responsibilities of contributor roles in Dragonfly. The Dragonfly project is subdivided into sub-projects
|
||||||
|
under (predominantly, but not exclusively) nydus, nydus-snapshotter, api, docs, console and client.
|
||||||
|
Responsibilities for roles are scoped to these sub-projects (repos).
|
||||||
|
|
||||||
- [Maintainership](#Maintainership)
|
We have six levels of responsibility including:
|
||||||
- [Adding Maintainers](#Adding-Maintainers)
|
|
||||||
- [Removal of Inactive Maintainers](#Removal-of-Inactive-Maintainers)
|
|
||||||
- [How to make decision](#How-to-make-decision)
|
|
||||||
- [Updating Governance](#Updating-Governance)
|
|
||||||
|
|
||||||
## Maintainership
|
- Contributor
|
||||||
|
- Member
|
||||||
|
- Approver
|
||||||
|
- Maintainer
|
||||||
|
- Administrator
|
||||||
|
|
||||||
|
## Contributor
|
||||||
|
|
||||||
|
A Contributor is someone who has contributed to the project by submitting code, issues, or participating in discussions.
|
||||||
|
|
||||||
|
### Responsibilities
|
||||||
|
|
||||||
|
- Contribute code changes via pull requests (PRs).
|
||||||
|
- Raise issues for bugs, enhancements, or other discussions.
|
||||||
|
- Participate in code reviews if requested.
|
||||||
|
- Follow the project's Code of Conduct and contribution guidelines.
|
||||||
|
|
||||||
|
### Requirements
|
||||||
|
|
||||||
|
- Have a GitHub account.
|
||||||
|
- Sign the Contributor License Agreement (if applicable).
|
||||||
|
- Adhere to the project's coding standards and guidelines.Contributor
|
||||||
|
|
||||||
|
## Member
|
||||||
|
|
||||||
|
A Member is a contributor who has shown long-term commitment to the project,
|
||||||
|
consistently contributing high-quality work and actively participating in the community.
|
||||||
|
|
||||||
|
Responsibilities:
|
||||||
|
|
||||||
|
- All responsibilities of a Contributor.
|
||||||
|
- Participate in project planning and decision-making processes.
|
||||||
|
- Mentor new contributors.
|
||||||
|
- Actively participate in community meetings and discussions.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
|
||||||
|
- Demonstrated history of contributions (code, reviews, discussions) over at least 3 months.
|
||||||
|
- Invitation by a Maintainer or Administrator based on consensus.
|
||||||
|
- Continued adherence to the project's Code of Conduct.
|
||||||
|
|
||||||
|
## Approver
|
||||||
|
|
||||||
|
An Approver is a member who has the additional responsibility of reviewing and approving PRs that affect the project.
|
||||||
|
|
||||||
|
Responsibilities:
|
||||||
|
|
||||||
|
- All responsibilities of a Member.
|
||||||
|
- Review and approve PRs from Contributors and Members.
|
||||||
|
- Ensure that changes adhere to coding standards, do not introduce bugs, and improve the project.
|
||||||
|
- Help triage issues and provide feedback on improvements.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
|
||||||
|
- Demonstrated expertise in the project’s codebase.
|
||||||
|
- Consistent and high-quality contributions.
|
||||||
|
- Trusted by Maintainers and Administrators to provide accurate reviews and approvals.
|
||||||
|
|
||||||
|
## Maintainer
|
||||||
|
|
||||||
|
A Maintainer is an experienced and trusted member who has extensive knowledge of the project, including architecture
|
||||||
|
and design principles. Maintainers have the authority to merge PRs and make significant project decisions.
|
||||||
|
|
||||||
|
Responsibilities:
|
||||||
|
|
||||||
|
- All responsibilities of an Approver.
|
||||||
|
- Merge PRs to the main branch.
|
||||||
|
- Ensure the overall quality, stability, and performance of the codebase.
|
||||||
|
- Coordinate releases and update documentation.
|
||||||
|
- Guide the project's technical direction and roadmap.
|
||||||
|
- Facilitate communication and collaboration within the community.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
|
||||||
|
- Demonstrated long-term, high-quality contributions and leadership in the project.
|
||||||
|
- Deep understanding of the project’s architecture and design.
|
||||||
|
- Commitment to the project's goals and values.
|
||||||
|
- Nominated and approved by existing Maintainers and Administrators.
|
||||||
|
|
||||||
|
### Maintainership
|
||||||
|
|
||||||
Maintainers of Dragonfly share the responsibility. And they have 3 things in general:
|
Maintainers of Dragonfly share the responsibility. And they have 3 things in general:
|
||||||
|
|
||||||
|
|
@ -23,7 +100,7 @@ It is easy to work on the fancy part or technically advanced feature. It is hard
|
||||||
to work on minor bugfix, small improvement, long-term stable optimization or
|
to work on minor bugfix, small improvement, long-term stable optimization or
|
||||||
others. While all of the above is the essential parts to build up a successful project.
|
others. While all of the above is the essential parts to build up a successful project.
|
||||||
|
|
||||||
## Adding Maintainers
|
### Adding Maintainers
|
||||||
|
|
||||||
Maintainers are foremost and first contributors that have dedicated to the long
|
Maintainers are foremost and first contributors that have dedicated to the long
|
||||||
term success of the project. Contributors wishing to become maintainers are
|
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
|
||||||
least 50% agree with the proposal, the newly added maintainer must be treated
|
least 50% agree with the proposal, the newly added maintainer must be treated
|
||||||
valid.
|
valid.
|
||||||
|
|
||||||
## Removal of Inactive Maintainers
|
### Removal of Inactive Maintainers
|
||||||
|
|
||||||
Similar to adding maintainers, existing maintainer can been removed from the
|
Similar to adding maintainers, existing maintainer can been removed from the
|
||||||
active maintainer list. If the existing maintainer meet one of the conditions
|
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
|
||||||
at a column to the alumni part to thank the contribution made from the inactive
|
at a column to the alumni part to thank the contribution made from the inactive
|
||||||
maintainer.
|
maintainer.
|
||||||
|
|
||||||
## How to make decision
|
### How to make decision
|
||||||
|
|
||||||
Dragonfly is an open-source project illustrating the concept of open. This
|
Dragonfly is an open-source project illustrating the concept of open. This
|
||||||
means that Dragonfly repository is the source of truth for every aspect of the
|
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:
|
||||||
|
|
||||||
- at least two maintainers commented `LGTM` to the pull request;
|
- at least two maintainers commented `LGTM` to the pull request;
|
||||||
|
|
||||||
## Updating Governance
|
### Updating Governance
|
||||||
|
|
||||||
All substantive updates in Governance require a supermajority maintainers
|
All substantive updates in Governance require a supermajority maintainers vote.
|
||||||
vote.
|
|
||||||
|
## Administrator
|
||||||
|
|
||||||
|
An Administrator has the highest level of access and responsibility in the project. They manage overall project governance,
|
||||||
|
ensure adherence to policies, and resolve conflicts within the community.
|
||||||
|
|
||||||
|
Responsibilities:
|
||||||
|
|
||||||
|
- All responsibilities of a Maintainer.
|
||||||
|
- Manage project settings and permissions.
|
||||||
|
- Ensure compliance with legal and organizational policies.
|
||||||
|
- Handle CoC violations and mediate conflicts.
|
||||||
|
- Facilitate election of new roles or changes in the governance structure.
|
||||||
|
|
||||||
|
Requirements:
|
||||||
|
|
||||||
|
- Proven contribution history and leadership within the project.
|
||||||
|
- Strong understanding of open-source community management.
|
||||||
|
- Trusted by the community and other Administrators.
|
||||||
|
- Appointed through consensus of current Administrators.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue