Skip to content

Latest commit

 

History

History
177 lines (111 loc) · 9.11 KB

GOVERNANCE.md

File metadata and controls

177 lines (111 loc) · 9.11 KB

Note: Our model is extremely new, and not yet binding. Once merged into the main branch, we will trial what's outlined here and make changes based on any feedback. All changes will go through the PR review process. This note will be removed when this governance model is seen as binding.

Governance

This document outlines the Governance of the Gatsby User Collective (GUC). This includes descriptions of contributor levels, and more.

👉 All community members must follow the Code of Conduct (CoC). Consequences for CoC violations are detailed in Moderation.

Note: This community is very new. This doc will intentionally be vague at times and is for the moment only intended as rough idea of how things will work. This is intended so that as the community grows we together can define how we wish to govern ourselves.

Get Involved

Anything that supports the GUC community is a valuable contribution. All types of contribution are meaningful, from code to documentation to blog posts. Anyone can become an Contributor (yes, even you!). Our goal is to recognize all contributors to the GUC regardless of skill, experience, or background.

Contributor Levels

We recognize different degrees of contribution as levels, and most levels can be reached regardless of coding skill or years of experience. The two most important things that we look for in contributors are:

  • Being here - Everyone's time is valuable, and the fact that you're here and contributing to GUC plugins is amazing! Thank you for being a part of this journey with us.

  • Being a positive member of our community - Go above and beyond our Code of Conduct, and commit to healthy communication in pull requests, issue discussions, Discord conversations, and interactions outside of our community (eg: no Twitter bullies)

Each level unlocks new privileges and responsibilities on Discord and GitHub. Below is a summary of each contributor level:

Level 1 - Contributor

Have you done something (big or small) to contribute to the health, success, or growth of the GUC or its plugins? Congratulations, you're officially recognized as a contributor to the project!

Examples of recognized contributions

  • GitHub: Submitting a merged pull request
  • GitHub: Filing a detailed bug report or RFC
  • GitHub: Updating documentation!
  • Helping people on GitHub, Discord, etc.
  • Answering questions on Stack Overflow, Twitter, etc.
  • Blogging, Vlogging, Podcasting, and Livestreaming about GUC projects
  • This list is incomplete! Similar contributions are also recognized.

Privileges

At this time we have no specifics for this role. As the community grows we anticipate privileges to come. If you have ideas here please let us know!

Responsibilities

This role does not require any extra responsibilities or time commitment. We hope you stick around and keep participating!

If you're interested in reaching the next level and becoming a Maintainer, you can begin to explore some of those responsibilities in the next section.

Nomination Process

n/a

Level 2 - Maintainer

The Maintainer role is available to any contributor who wants to join the team and take part in the long-term maintenance of plugins in the GUC.

The Maintainer role is critical to the long-term health of GUC plugins. Maintainers act as the first line of defense when it comes to new issues, pull requests and Discord activity. Maintainers are most likely the first people that a user will interact with on Discord or GitHub.

A Maintainer is not required to write code! Some Maintainers spend most of their time inside of Discord, maintaining a healthy community there. Maintainers can also be thought of as Moderators on Discord and carry special privileges for moderation.

There is no strict minimum number of contributions needed to reach this level, as long as you can show sustained involvement over some amount of time (at least a couple of weeks).

Recognized Contributions

  • GitHub: Contributing a new or existing Gatsby plugin
  • GitHub: Submitting non-trivial pull requests and RFCs
  • GitHub: Reviewing non-trivial pull requests and RFCs
  • Discord: Supporting users in Discord
  • Discord: Active participation in calls and other events
  • GitHub + Discord: Triaging and confirming user issues
  • This list is incomplete! Similar contributions are also recognized.

Privileges

  • All privileges of the Contributor role, plus...
  • @maintainer role on Discord
  • New name color on Discord: blue
  • Invitation to the private #maintainers channel on Discord
  • Invitation to the maintainers team on GitHub
  • Ability to moderate Discord
  • Ability to push branches to the repo (No more personal fork needed)
  • Ability to review GitHub PRs
  • Ability to merge GitHub PRs
  • Define project direction and planning

Responsibilities

  • Participate in the project as a team player
  • Bring a friendly, welcoming voice to the GUC community.
  • Triage new issues.
  • Review pull requests.
  • Merge some, non-trivial community pull requests.
  • Merge your own pull requests (once reviewed and approved).

Nomination

To be considered, a contributor is expected to already be performing some of the responsibilities of a Maintainer over the course of at least a couple of weeks. There is no hard requirement for what you need to do, but if you show up and participate we'll most likely recognize your contribution and give you this title if you desire. If you're interested in being a maintainer and feel you meet these requirements, feel free to reach out to an existing maintainer or steward.

In some rare cases, this role may be revoked by a project Steward. However, under normal circumstances this role is granted for as long as the contributor wishes to engage with the project.

Nomination Process

  • You can be considered by any existing Maintainer (L2 or above).

Steward

Steward is an additional privilege bestowed to 1 (or more) Maintainers. The role of Steward is mainly an administrative one. Stewards control and maintain sensitive project assets.

In extremely rare cases, a Steward can act unilaterally when they believe it is in the project's best interest and can prove that the issue cannot be resolved through normal governance procedure. The steward must publicly state their reason for unilateral action before taking it.

The project Steward is currently: @moonmeister

Responsibilities

Nomination

  • Stewards cannot be self-nominated.
  • Only Maintainers are eligible.
  • New stewards will be added based on a unanimous vote by the existing Steward(s).
  • In the event that someone is unreachable then the decision will be deferred.

Moderation

Outlined below is the process for Code of Conduct violation reviews.

Reporting

Anyone may report a violation. Violations can be reported in the following ways:

  • In private, via email to one or more stewards.
  • In private, via direct message to a project steward on Discord.
  • In public, via a GitHub comment (mentioning @gatsbuy_uc/maintainers).
  • In public, via the project Discord server (mentioning steward).

Note: While there is only one steward, community members who don't feel comfortable reporting the issue to the steward (e.g. the steward themself violated the CoC), please report the infraction to a trusted maintainer or community member who can approach the steward about the issue.

Who gets involved?

Each report will be assigned reviewers. These will initially be all project stewards.

In the event of any conflict of interest - ie. stewards who are personally connected to a situation, they must immediately recuse themselves.

At request of the reporter and if deemed appropriate by the reviewers, another neutral third-party may be involved in the review and decision process.

Review

If a report doesn’t contain enough information, the reviewers will strive to obtain all relevant data before acting.

The reviewers will then review the incident and determine, to the best of their ability:

  • What happened.
  • Whether this event constitutes a Code of Conduct violation.
  • Who, if anyone, was involved in the violation.
  • Whether this is an ongoing situation.

The reviewers should aim to have a resolution agreed very rapidly; if not agreed within a week, they will inform the parties of the planned date.

Resolution

Responses will be determined by the reviewers on the basis of the information gathered and of the potential consequences. It may include:

  • taking no further action
  • issuing a reprimand (private or public)
  • asking for an apology (private or public)
  • permanent ban from the GitHub org and Discord server
  • revoked contributor status

Inspired by Astro.