get.porter.sh/porter@v1.3.0/CONTRIBUTION_LADDER.md (about) 1 # Contribution Ladder 2 3 --- 4 * [Roles](#roles) 5 * [Community Member](#community-member) 6 * [Contributor](#contributor) 7 * [How to become a contributor](#how-to-become-a-contributor) 8 * [Maintainer](#maintainer) 9 * [How to become a maintainer](#how-to-become-a-maintainer) 10 * [Involuntary Removal or Demotion](#involuntary-removal-or-demotion) 11 * [Stepping Down/Emeritus Process](#stepping-downemeritus-process) 12 * [Admin](#admin) 13 * [How to become an admin](#admin) 14 * [Release Manager](#release-manager) 15 * [How to become an release manager](#how-to-become-a-release-manager) 16 --- 17 18 Our ladder defines the roles and responsibilities for this project and how to 19 participate with the goal of moving from a user to a maintainer. You will need 20 to gain people's trust, demonstrate your competence and understanding, and meet 21 the requirements of the role. 22 23 ## Roles 24 * Community Member 25 * Contributor 26 * Maintainer 27 * Porter Maintainer 28 * Porter Operator Maintainer 29 * Porter Wesbite Maintainer 30 * Porter Triage Lead 31 * Release Manager 32 33 ## Community Member 34 35 Everyone is a community member! 😄 You've read this far so you are already ahead. 💯 36 37 Here are some ideas for how you can be more involved and participate in the community: 38 39 * Comment on an issue that you’re interested in. 40 * Submit a pull request to fix an issue. 41 * Report a bug. 42 * Share a bundle that you made and how it went. 43 * Come chat with us in [Slack][slack]. 44 45 They must follow our [Code of Conduct](CODE_OF_CONDUCT.md). 46 47 [slack]: https://porter.sh/community#slack 48 49 ## Contributor 50 51 [Contributors][contributors] have the following capabilities: 52 53 * Have issues and pull requests assigned to them 54 * Apply labels, milestones and projects 55 * [Mark issues as duplicates](https://help.github.com/en/articles/about-duplicate-issues-and-pull-requests) 56 * Close, reopen, and assign issues and pull requests 57 58 They must agree to and follow this [Contributing Guide](CONTRIBUTING.md). 59 60 ### How to become a contributor 61 62 To become a contributor, the maintainers of the project would like to see you: 63 64 * Comment on issues with your experiences and opinions. 65 * Add your comments and reviews on pull requests. 66 * Contribute pull requests. 67 * Open issues with bugs, experience reports, and questions. 68 69 Contributors and maintainers will do their best to watch for community members 70 who may make good contributors. But don’t be shy, if you feel that this is you, 71 please reach out to one or more of the contributors or maintainers. 72 73 [contributors]: https://github.com/orgs/getporter/teams/contributors 74 75 ## Maintainer 76 77 [Maintainers][maintainers] are members with extra capabilities: 78 79 * Be a [Code Owner](.github/CODEOWNERS) and have reviews automatically requested. 80 * Review pull requests. 81 * Merge pull requests. 82 83 There are three sub-types of specialization that maintainers can have: 84 * Porter Maintainer - This is someone who focuses on [Porter Core](https://github.com/getporter/porter) functionality 85 * Porter Operator Maintainer - This is someone who focuses on [Porter Operator](https://github.com/getporter/operator) functionality 86 * Porter Wesbite Maintainer - This is someone who helps our frontend, which leverages Hugo. 87 * Porter Community Lead - This is someone who handles the development of the community through scheduling meetings, encouraging Porter activities within the community (talks, blogposts, etc), and is the face of Porter 88 * Porter Mixin & Plugins Specialist - This is someone who builds and maintains the mixins used to help Porter work with other tooling. 89 90 Maintainers also have additional responsibilities beyond just merging code: 91 92 * Help foster a safe and welcoming environment for all project participants. 93 This will include understanding and enforcing our [Code of Conduct](CODE_OF_CONDUCT.md). 94 * Organize and promote pull request reviews, e.g. prompting community members, 95 contributors, and other maintainers to review. 96 * Triage issues, e.g. adding labels, promoting discussions, finalizing decisions. 97 * Help organize our development meetings, e.g. schedule, organize and 98 execute agenda. 99 100 They must agree to and follow the [Reviewing Guide](REVIEWING.md). 101 102 [maintainers]: https://github.com/orgs/getporter/teams/maintainers 103 104 ### How to become a maintainer 105 106 To become a maintainer, we would like you to see you be an effective 107 contributor, and show that you can do some of the things maintainers do. 108 Maintainers will do their best to regularly discuss promoting contributors. But 109 don’t be shy, if you feel that this is you, please reach out to one or more of 110 the maintainers. 111 112 ## Release Managers 113 114 [Release Managers][release managers] can be either contributors or maintainers. 115 Porter releases on a quarterly candence, and a release manager handles kicking off 116 the release process & communicating the release. The release manager role is set **per** 117 release. 118 119 Release Manager responsibilities are: 120 * Help foster a safe and welcoming environment for all project participants. 121 This will include understanding and enforcing our [Code of Conduct](CODE_OF_CONDUCT.md). 122 * Start, and if necessary, troubleshoot the [release process](./GOVERNANCE.md#release-process) for that release 123 * Communicate through channels (Slack, [Groups](https://groups.io/g/porter), and website) 124 with key achievements in that release 125 * Update [release documentation](./GOVERNANCE.md#release-process) with any new findings 126 127 128 [release managers]: https://github.com/orgs/getporter/teams/release 129 130 ### How to become a release manager 131 132 Anyone can become a release manager, all you have to do is reach out to a maintainer 133 who will give you the proper documentation, help you identify the release date and be 134 available on the date of the release. It is recommended release managers try to sign up 135 for at least 2 (two) releases, so they can get comfortable with the release process. 136 137 138 ## Inactivity 139 It is important for maintainers to stay active to set an example and show commitment to the project. 140 Inactivity is harmful to the project as it may lead to unexpected delays, contributor attrition, and a loss of trust in the project. 141 142 * Inactivity is measured by: 143 * Periods of no contributions for longer than 6 months, where contributions must include maintainer-level tasks: 144 reviewing and merging others pull requests, project administration, release management, mentoring, etc. 145 Code contributions are not strictly required to be considered active. 146 * Periods of no communication for longer than 6 months. 147 * Consequences of being inactive include: 148 * Involuntary removal or demotion. 149 * Being asked to move to Emeritus status. 150 151 ## Involuntary Removal or Demotion 152 153 Involuntary removal/demotion of a maintainer happens when responsibilities and requirements aren't being met. 154 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. 155 This process is important because it protects the community and its deliverables while also opens up opportunities for new contributors to step in. 156 157 Removal or demotion is handled first by attempting to contact the maintainer in question to suggest stepping down. 158 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. 159 160 ## Stepping Down/Emeritus Process 161 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). 162 163 Contact the Maintainers about changing to Emeritus status, or reducing your contributor level. 164 When an Emeritus Maintainer has been an active contributor for 1 month, they can reapply to be considered for the Maintainer role again. 165 166 ## Admin 167 168 [Admins][admins] are maintainers with extra responsibilities: 169 170 * Create new mixin repositories 171 * Manage getporter repositories 172 * Manage getporter teams 173 174 [admins]: https://github.com/orgs/getporter/teams/admins 175 176 ### How to become an admin 177 178 It isn't expected that all maintainers will need or want to move up to admin. If 179 you are a maintainer, and find yourself often asking an admin to do certain 180 tasks for you and you would like to help out with administrative tasks, please 181 reach out to one or more of the admins.