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.