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.
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.
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.
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:
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!
- 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.
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!
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.
n/a
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).
- 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.
- 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
- 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).
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.
- You can be considered by any existing Maintainer (L2 or above).
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
- Access to the @gatsby_uc Twitter account
- Administration privileges on the GUC GitHub org
- Administration privileges on the GUC Discord server
- Publish access to all GUC npm packages
- Final say on moderation decisions
- 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.
Outlined below is the process for Code of Conduct violation reviews.
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.
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.
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.
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.