Skip to content

Latest commit

 

History

History
313 lines (195 loc) · 17.6 KB

GOVERNANCE.md

File metadata and controls

313 lines (195 loc) · 17.6 KB

Governance

This document outlines the base governance model for Tang County. This includes detailed descriptions of different roles, nomination processes, code review processes, and Code of Conduct enforcement.

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

Want to trigger a vote, nomination, or perform some other action?
Scroll down to Playbook. Open up a suggestion issue and we will look into it. You can also let us know in our Discord Community. Feel free to ping us.

Get Involved

Anything that supports the Tang County community is a valuable contribution!

All types of contribution are meaningful. This can include code changes, type fixes, Discord activity, and even posting about the game to your personal blog. No contribution is too small!

Anyone can become a contributor (yes, even you!). Engineering ability is not required. Our goal is to recognize all contributors to the Project regardless of skill, experience or background.

Contributor Levels

We recognize different levels of contribution as four different Contributor Levels. Because each level comes with a new set of privileges and responsibilities, you may also see these levels referred to as Contributor Roles.

Contributor levels are available to all members of the community, regardless of coding skill or experience.

Two important things that we look for in a contributor are:

  • Being here - Everyone's time is valuable, and the fact that you're here and contributing to Tang County is amazing! Thank you for being a part of this Project with us.
  • Being a positive member of our community - Go above and beyond our Code of Conduct and commit to healthy communication across pull requests, issue discussions, Discord conversations, and any interactions outside of our community (ex: no Twitter bullies allowed :)

All Contributor roles are granted for as long as the individual wishes to engage with the Project.

Contributors can voluntarily leave the Project at any time. See Retiring a Role below for more information.

In extreme cases -- such as a Code of Conduct violation -- a role may be revoked by a Project Leaders at their discretion.

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

Level 1 - Contributor

Have you done something (big or small) to contribute to the health, success, or growth of the game? 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 suggestion.
  • GitHub: Updating documentation or fixing a typo.
  • Helping people on GitHub, Discord, etc.
  • Answering questions on Stack Overflow, Twitter, etc.
  • Blogging, Vlogging, Podcasting, and Livestreaming about Tang County.
  • This list is incomplete! Similar contributions are also recognized.

Privileges

  • Be recognized by the developers
  • Get a chance to obtain the role on Discord: @Contributor
  • Secret invitations to contributor-only events and public testing sessions.

Responsibilities

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

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

Nomination Process

You may nominate by contacting a head developer or Project leader on Discord. If you do this, please share a second message with a link or description of your contribution so that people can recognize you in the future.

You may also be granted this role automatically if you are active and helpful on Discord/GitHub.

Level 2 (L2) - Tester

The Tester role is available to contributors who want to join the team and take part in the long-term maintenance and growth of Tang County and Hebei Studios in general.

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

Testers are not required to write code! Some testers spend most of their time inside of Discord, maintaining a healthy community there. Others work on technical documentation, support, or design.

A Maintainer has no moderation privileges! All maintainers are trusted, but have no ability to moderate our Discord and GitHub communities for things like spam.

Recognized Contributions

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 few months).

  • GitHub: Submitting multiple non-trivial pull requests and helpful suggestions
  • GitHub: Reviewing multiple non-trivial pull requests and suggestions
  • Discord: Supporting users in Discord, especially in the issue report channels
  • Discord: Active participation in the development 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...
  • Potential invitation to the QA Testers team on Discord.
  • Invitation to the private testers channel on Discord.
  • Ability to vote on some initiatives (see Voting below).

Responsibilities

  • Participate in the Project as a team player.
  • Bring a friendly, welcoming voice to the community.
  • Be active on Discord and GitHub.
  • Triage new issues.
  • Review pull requests.
  • Merge your own pull requests (once reviewed and approved).

Nomination

  • To be nominated, a nominee is expected to already be performing some of the responsibilities of a Maintainer.
  • You can be nominated by a high-ranked Project leader.
  • Once nominated, there will be a vote by existing testers.
  • See vote rules & requirements for info on how the vote works.

Level 3 (L3) - Insider

The Insider role is available to community members who have a larger-than-usual impact on the Project and community. They are seen as leaders in the Project and are listened to by the wider community, often before they have even reached this level. A insider member is recognized for contributing a significant amount of time and energy to the Project through issues, pull requests, bug fixes, implementing advanced enhancements/features, and/or actively posting on Discord.

Not every contributor will reach this level, and that's okay! L2 testers still have significant responsibility and privileges within our community.

Privileges

  • All privileges of the Tester role, plus...
  • Appropriate role on Discord based off your talent.
  • Invitation to the team on GitHub.
  • Ability to vote on most initiatives (see Voting below).

Responsibilities

  • All of the responsibilities of L2, including...
  • Ownership over specific part(s) of the Project.
  • Ownership over the long-term health and success of Hebei Studios.
  • Leadership as a role-model to other maintainers and community members.

Nomination

  • To be nominated, a nominee is expected to already be performing some of the responsibilities of a insider member.
  • You can be nominated by a high-ranked Project leader.
  • Once nominated, there will be a vote by existing insider members.
  • See vote rules & requirements for info on how the vote works.

Special Membership Type: Insider Residency

Insider Residency is a special type of Insider membership that is limited in the following way(s):

  • No voting abilities.
  • No nomination abilities.
  • Can be revoked at any time by the Project Leaders.

Because of these limitations, this type of insider membership is useful for anyone who has been brought in to work on or contribute to the Project without rising through our normal contributor levels. For example: a graphics designer or developer advocate hired by the team to assist the community could be nominated for a Insider Residency role without having a previously earned contributor level.

A Insider Residency nomination must still be approved through the normal insider nomination and voting process. During the nomination, the Project Leaders will state that the nomination is for the Insider Residency designation. The Project Leaders is the only one who can officially make this designation during the nomination process.

An Insider Residency member can become a full insider member (with all limitations removed) through the normal insider nomination and voting procedure.

If a Insider Residency member has their membership revoked, the Project Leaders may choose to impose a waiting period of some number of days, during which the member can not be re-nominated to become a full insider member.

Level 4 - Project Leaders

The Leaders is an additional role bestowed to 1 (or more) Insiders of the Project.

The role of Leaders is mainly an administrative one. Leaders control and maintain sensitive Project assets, assist in resolving conflicts, and act as tiebreakers in the event of disagreements.

In extremely rare cases, a Leaders 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 Leaders must publicly state their reason for unilateral action before taking it.

The Project Leaders are currently: (Discord usernames) @duckination - Founder of Hebei Studios
@shinedown204 - Project Manager & Leader
@solarfolix - Project Manager
@zharvuiys - Assistant Manager
@iceeburr - Lead Programmer & Repository Maintainer

Responsibilities

  • Administration privileges everywhere.

Nomination

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

Other Roles

Moderator

Moderator is a special role available to anyone. While all insiders are granted permissions to moderate for bad behavior across our community, a Moderator actively takes on this responsibility. For example, a community member may ping moderators to resolve spam posts or Code of Conduct violations.

Trivial tasks (like removing spam) can be acted on unilaterally by a Moderator. Other non-trivial tasks (like assisting with or resolving a Code of Conduct violation) should involve the entire Moderator team (and in some cases, the Project Leaders).

Privileges

  • Invitation to the staff team on Discord & GitHub.

Nomination

Any Insider (L3 and above) can self-nominate by messaging the Project Leaders on Discord.

Retired

Retired is a special designation for Insiders (L3 and above) who have stepped away from the Project and no longer contribute regularly. See Retiring a Role below for more information.

Privileges

  • Invitation to the Retired team on Discord & GitHub.

Retiring a Role

Contributor roles are granted for as long as the person wishes to engage with the Project. However, over time an active community member may choose to step away from the Project to work on other things. Moving on from a Project is a natural and well-understood part of any community, and we celebrate it!

Retired is a special designation and role for any person who was once an active insider (L3 or above) but is now no longer actively involved. By retiring you trade-in your current set of roles, privileges, and responsibilities for a new, special role (which comes with its own set of Privileges, as described above).

As an Insider (L3 or above) you can retire your role at any time by pinging the Project Leaders and requesting this status. You can initiate this action yourself if you know ahead-of-time that you need to step away from the Project. Or, if you have gone several months without interacting with the community, the Project Leaders may actively reach out to you to discuss retiring as a way to make room for new contributors.

As a retired member, you are still a part of the community and can continue to be a part of our Discord, GitHub, and anywhere else. You may also request to have your old roles reinstated at any time through the normal nomination & voting process for that role.

Rejoining the Project will automatically remove you from the Retored role.

Governance Playbook

Voting

Certain Project decisions (like governance changes and membership nominations) require a vote. Below are the changes that require a vote, and the rules that govern that vote.

The Project Leaders may initiate a vote for any unlisted Project decision. General Rules will apply, along with any addition rules provided at the Leaders'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.

General Voting Rules

  • Members may abstain from any vote.
  • Members who do not vote within 3 days will automatically abstain.
  • Leaders may reduce the 3 day automatic abstain for urgent decisions.
  • Leaders reserve the right to veto approval with a publicly disclosed reason.

Voting: Tester (L2) Nomination

This process kicks off once a valid nomination has been made. See Tester - Nomination Process above for more details on nomination.

Who can vote: All Testers (L2 and above).

  1. A vote thread should be created in a private Discord channel/group.
  2. A vote thread can be created by any Tester, Insider, or the Leaders.
  3. Once a vote thread is created, existing Testers can discuss the nomination in private.
  4. The normal 3 day voting & discussion window begins with the thread creation.
  5. Voting can be done in the thread (visible to other voters) or in a private DM to the Project Leaders.
  6. Once the vote is complete, the thread is archived.
  7. The vote must receive an overwhelming majority (70%+) to pass.
  8. If the vote passes: the nominee will be made a Tester and all privileges will be made available to them.
  9. If the vote fails: the Project Leaders is responsible for informing the nominee with constructive, actionable feedback. (Note: this is not required if the nominee was otherwise not made aware of their nomination).

Voting: Insider Member (L3) Nomination

This process kicks off once a valid nomination has been made. See Insider Nomination Process above for more details on nomination.

Who can vote: All Insider members (L3 and above).

  1. A vote thread should be created in a private Discord channel/group.
  2. A vote thread can be created by any Insider, or the Leaders.
  3. Once a vote thread is created, existing Insiders can discuss the nomination in private.
  4. The normal 3 day voting & discussion window begins with the thread creation.
  5. Voting can be done in the thread (visible to other voters) or in a private DM to the Project Leaders.
  6. Once the vote is complete, the thread is archived.
  7. The vote must receive an overwhelming majority (90%+) to pass.
  8. If the vote passes: the nominee will be made an Insider Member and all privileges will be made available to them.
  9. If the vote fails: the Project Leaders is responsible for informing the nominee with constructive, actionable feedback. (Note: this is not required if the nominee was otherwise not made aware of their nomination).

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 Leaders.
  • In private, via direct message to a Project Leaders on Discord.
  • In public, via a GitHub comment (mentioning them).
  • In public, via the Project Discord server (mentioning staff or Project Leaders).

Who gets involved?

Each report will be assigned reviewers. These will initially be all Project Leaders.

In the event of any conflict of interest - ie. Leaders 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 ESLint, Rome, Astro and Blitz.