docs/contributing/gatsby-governance-model.md
Gatsby is an open source project supported by Gatsby, Inc. employees and an active community of contributors.
Our objectives for this document are to provide current information about the management and maintenance of Gatsby open source software (OSS) and present a variety of resources and avenues of communication between Gatsby’s leadership and community. It also includes a detailed description of contributor levels, accepted contribution types, the voting process, and moderation. Furthermore, it outlines how you can get involved with Gatsby OSS. Establishing this governance models will help support active and productive communication/collaboration within the Gatsby community and between the community and the company.
All community members must follow the Code of Conduct (CoC). Consequences for CoC violations are detailed in moderation.
All contributions are welcome, including issues, contributing code, new docs as well as updates and tweaks, blog posts, helping out people, and more. Read the How to Contribute guide to learn what the community can do for you and what you can do for the community.
The Gatsby User Collective's goal is to democratize the maintenance of community plugins to allow more folks to assist in their maintenance and to create higher quality plugins in the Gatsby ecosystem. Contributing to the Gatsby User Collective is a valuable contribution!
As the core of Gatsby is a complex piece of software, it requires some onboarding before contributions can be made efficiently. We're clearly defining here in which areas we accept contributions without any prior interaction with the team at the moment and in which not. This is especially important for new features as they always have an inherent maintenance cost -- and making changes without the complete context around Gatsby is difficult. This list is not set in stone and can change when e.g. a "Core Maintainer (L3)" role is introduced.
We accept all types of contributions to:
We accept all types of contributions to packages but the following packages have extra requirements:
For these two packages, we ask you to open a feature request before opening PRs for features. Contributions, such as bug fixes and documentation updates, can be made without any prior interaction with the team.
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 Gatsby 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, and interactions outside of our community.
Each level unlocks new privileges and responsibilities on 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 Gatsby? Congratulations, you're officially recognized as a contributor to the project!
At this time we have no specific privileges for this role. 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 Gatsby.
The Maintainer role is critical to the long-term health of Gatsby. Maintainers support the Team members and together they act as the first line of defense when it comes to new issues and pull requests. Maintainers are most likely the first people that a user will interact with on GitHub.
A Maintainer is not required to write code! Some Maintainers focus on community support and can also be thought of as Moderators who 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).
Maintainers team on GitHub.To be nominated, a nominee is expected to already be performing some of the responsibilities of a Maintainer over the course of at least a couple of weeks. You can apply through contacting one of the @Team members who then in turn will trigger a Voting process.
In some rare cases, this role may be revoked by an Admin. However, under normal circumstances this role is granted for as long as the contributor wishes to engage with the project.
Team is a special designation for employees of Gatsby, Inc. that lives outside of our Governance model. The team role was designed to help those of us working full-time on Gatsby to work productively without "skipping the line" and circumventing our governance model entirely.
Team on GitHub.n/a
When someone leaves Gatsby, Inc., they lose team privileges and return to their original membership level in our governance structure (whatever level they were at before joining team).
If that person wishes to continue working on Gatsby after leaving, they may request a nomination to become an official L2 contributor. This nomination would follow the normal voting rules & procedure for that role (see Voting below).
Admin is an additional privilege inside the Team and is mainly an administrative one.
n/a
Decisions about Gatsby open source software are ultimately made by Gatsby, Inc. leadership and the Team. We believe that founding organizations built around open source software have a responsibility to build strong businesses to sustain those open source tools and the community that depends on them, which will sometimes require us to reserve high-demand tools and features for Gatsby commercial products. That said, we take our responsibility to the community very seriously and carefully consider community needs and concerns when determining our product roadmaps.
If you’d like to learn more about how we approach the relationship between our commercial and open source work, check out this blog post: Founding Organizations: Creating a Company That Sustains Our Open-Source Community.
Please open a feature request on GitHub Discussions to voice your ideas. The Team will review incoming requests and give a first assessment.
Certain project decisions (like membership nominations) require a vote. Below are the changes that require a vote, and the rules that govern that vote.
One Admin may initiate a vote for any unlisted project decision. This person then will be the leading Admin for this vote and handle all necessary actions. General rules will apply, along with any additional rules provided at the admin's discretion. If this unlisted project decision is expected to be repeated in the future, voting rules should be agreed on and then added to this document.
This process kicks off once a valid nomination has been made.
Who can vote: All Maintainers (L2 and above).
Outlined below is the process for Code of Conduct violation reviews.
Anyone may report a violation. Violations can be reported in the following ways:
@gatsbyjs/team).Each report will be assigned reviewers. These will initially be all team members.
In the event of any conflict of interest - ie. team members 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:
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: