From 4a3ff687294363c9a66e3c57e5702aa2740bcb69 Mon Sep 17 00:00:00 2001 From: Jaydip Gabani Date: Sat, 14 Sep 2024 00:31:43 +0000 Subject: [PATCH] adding doc describing contribution ladder Signed-off-by: Jaydip Gabani --- CONTRIBUTION_LADDER.md | 121 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 CONTRIBUTION_LADDER.md diff --git a/CONTRIBUTION_LADDER.md b/CONTRIBUTION_LADDER.md new file mode 100644 index 00000000000..c5a9a36ed53 --- /dev/null +++ b/CONTRIBUTION_LADDER.md @@ -0,0 +1,121 @@ +# Contribution Ladder + +--- + +* [Roles](#roles) +* [Community Member](#community-member) +* [Contributor](#contributor) + * [How to become a contributor](#how-to-become-a-contributor) +* [Maintainer](#maintainer) + * [How to become a maintainer](#how-to-become-a-maintainer) + * [Involuntary Removal or Demotion](#involuntary-removal-or-demotion) + * [Stepping Down/Emeritus Process](#stepping-downemeritus-process) +--- + +Our ladder defines the roles and responsibilities for this project and how to +participate with the goal of moving from a user to a maintainer. You will need +to gain people's trust, demonstrate your competence and understanding, and meet +the requirements of the role. + +## Roles + +* Community Member +* Contributor +* Maintainer + +## Community Member + +Everyone is a community member! 😄 You've read this far so you are already ahead. 💯 + +Here are some ideas for how you can be more involved and participate in the community: + +* Comment on an issue that you’re interested in. +* Submit a pull request to fix an issue. +* Report a bug. +* Come chat with us in [Slack][slack]. + +They must follow our [Code of Conduct](CODE_OF_CONDUCT.md). + +[slack]: https://communityinviter.com/apps/openpolicyagent/signup + +## Contributor + +[Contributors][contributors] have the following capabilities: + +* Have issues and pull requests assigned to them +* Apply labels, milestones and projects +* [Mark issues as duplicates](https://help.github.com/en/articles/about-duplicate-issues-and-pull-requests) +* Close, reopen, and assign issues and pull requests + +They must agree to and follow this [Contributing Guide](CONTRIBUTING.md). + +### How to become a contributor + +To become a contributor, the maintainers of the project would like to see you: + +* Comment on issues with your experiences and opinions. +* Add your comments and reviews on pull requests. +* Contribute pull requests. +* Open issues with bugs, experience reports, and questions. + +## Maintainer + +[Maintainers][maintainers] are members with extra capabilities: + +* Be a [Code Owner](.github/CODEOWNERS) and have reviews automatically requested. +* Review pull requests. +* Merge pull requests. + +Maintainers also have responsibilities beyond just merging code: + +* Help foster a safe and welcoming environment for all project participants. + This will include understanding and enforcing our [Code of Conduct](CODE_OF_CONDUCT.md). +* Organize and promote pull request reviews, e.g. prompting community members, + contributors, and other maintainers to review. +* Triage issues, e.g. adding labels, promoting discussions, finalizing decisions. +* Help organize our community meetings, e.g. schedule, organize and + execute agenda. +* Organize timely release for new changes in the project by following [release guidelines](docs/RELEASE.md). + +### How to become a maintainer + +To become a maintainer, we would like you to see you be an effective +contributor, and show that you can do some of the things maintainers do. +Maintainers will do their best to regularly discuss promoting contributors. But +don’t be shy, if you feel that this is you, please reach out to one or more of +the maintainers. Here are the foot steps to follow for maintainer path: + +- Contributor for at least 3 months +- Contributed in developing new features +- Must remain an active participant in the community by contributing code, performing reviews, triaging issues, etc. +- Knowledgeable about the codebase + +## Inactivity + +It is important for maintainers to 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. + +* Inactivity is measured by: + * Periods of no contributions for longer than a year, where contributions must include maintainer-level tasks: + reviewing and merging others pull requests, project administration, release management, mentoring, etc. + Code contributions are not strictly required to be considered active. + * Periods of no communication for longer than a year. +* Consequences of being inactive include: + * Involuntary removal or demotion. + * Being asked to move to Emeritus status. + +## Involuntary Removal or Demotion + +Involuntary removal/demotion of a maintainer happens when responsibilities and requirements aren't being met. +This may include repeated patterns of inactivity, extended period of inactivity, a period of failing to meet the requirements of your role, and/or a violation of the 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. + +Removal or demotion is handled first by attempting to contact the maintainer in question to suggest stepping down. +If they cannot be reached, or will not resume their maintainer responsibilities, involuntary removal is initiated through a vote by a majority of the other current Maintainers. + +## Stepping Down/Emeritus Process + +If and when contributors' commitment levels change, contributors can consider stepping down (moving down the contributor ladder) instead of moving to emeritus status (completely stepping away from the project). + +Contact the Maintainers about changing to Emeritus status, or reducing your contributor level. +When an Emeritus Maintainer has been an active contributor for 1 month, they can reapply to be considered for the Maintainer role again.