github.com/thanos-io/thanos@v0.32.5/docs/governance.md (about)

     1  # Governance
     2  
     3  This document describes the rules and governance of the project. It is a slightly modified version of the [Prometheus Governance](https://prometheus.io/governance/#governance-changes).
     4  
     5  It is meant to be followed by all the developers of the Thanos project and the Thanos community. Common terminology used in this governance document are listed below:
     6  
     7  * **Maintainers Team**: A core Thanos team that have owner access to http://github.com/thanos-io organization and all projects within it. Current list is available [here](../MAINTAINERS.md).
     8  
     9  * **Triage Team**: Contributors who does not belong to Maintainer's team, but has `Triage` GitHub role on [Thanos](https://github.com/thanos-io/thanos) repository allowing to change GitHub issues and PRs statuses and labels. They are listed [here](../MAINTAINERS.md#triage).
    10  
    11  * **The Thanos project**: The sum of all activities performed under the [thanos-io organization on GitHub](https://github.com/thanos-io), concerning one or more repositories or the community.
    12  
    13  Both Triage and Maintainers have are part of [`thanos-io@googlegroups.com`](https://groups.google.com/forum/#!forum/thanos-io) email list.
    14  
    15  ## Values
    16  
    17  The Thanos developers and community are expected to follow the values defined in the [CNCF charter](https://www.cncf.io/about/charter/), including the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). Furthermore, the Thanos community strives for kindness, giving feedback effectively, and building a welcoming environment. The Thanos developers generally decide by consensus and only resort to conflict resolution by a majority vote if consensus cannot be reached.
    18  
    19  ## Decision making
    20  
    21  ### Maintainers Team
    22  
    23  Team member status may be given to those who have made ongoing contributions to the Thanos project for at least 3 months. This is usually in the form of code improvements and/or notable work on documentation, but organizing events or user support could also be taken into account.
    24  
    25  New members may be proposed by any existing Maintainer by email to [thanos-io](https://groups.google.com/forum/#!forum/thanos-io). It is highly desirable to reach consensus about acceptance of a new member. However, the proposal is ultimately voted on by a formal [supermajority vote](#supermajority-vote) of Team Maintainers.
    26  
    27  If the new member proposal is accepted, the proposed team member should be contacted privately via email to confirm or deny their acceptance of team membership. This email will also be CC'd to [thanos-io](https://groups.google.com/forum/#!forum/thanos-io) for record-keeping purposes.
    28  
    29  If they choose to accept, the following steps are taken:
    30  
    31  * Maintainer is added to the [GitHub organization](https://github.com/thanos-io) as *Owner*.
    32  * Maintainer is added to the [thanos-io](https://groups.google.com/forum/#!forum/thanos-io).
    33  * Maintainer is added to the list of team members [here](../MAINTAINERS.md)
    34  * New maintainer is announced on the [Thanos Twitter](https://twitter.com/ThanosMetrics) by an existing team member.
    35  
    36  Team members may retire at any time by emailing [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io).
    37  
    38  Team members can be removed by [supermajority vote](#supermajority-vote) on [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). For this vote, the member in question is not eligible to vote and does not count towards the quorum.
    39  
    40  Upon death of a member, their team membership ends automatically.
    41  
    42  ### Triage Team
    43  
    44  Triage team has similar rules, however the contributions made to the projects does not need to be as significant as expected by potential maintainer.
    45  
    46  New members as well may be proposed by any existing Maintainer or Triage person by email to [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). It is highly desirable to reach consensus about acceptance of a new member. However, the proposal is ultimately voted on by a formal [majority vote](#majority-vote) (in comparison to Maintainer's vote which requires supermajority).
    47  
    48  If the new member proposal is accepted, the proposed team member should be contacted privately via email to confirm or deny their acceptance of team membership. This email will also be CC'd to [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io) for record-keeping purposes.
    49  
    50  If they choose to accept, the following steps are taken:
    51  
    52  * Triage member is added to the [Thanos project](http://github.com/thanos-io/thanos) with `Triage` access.
    53  * Triage member is added to the [thanos-io](https://groups.google.com/forum/#!forum/thanos-io).
    54  * Triage member is added to the list of Triage members [here](../MAINTAINERS.md#triage).
    55  * New team Triage member are announced on the [Thanos Twitter](https://twitter.com/ThanosMetrics) by an existing team member.
    56  
    57  Triage member may retire at any time by emailing [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). It can be proposed to step up as Maintainer in any time as well.
    58  
    59  Triage member can be removed by [majority vote](#majority-vote) on [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). For this vote, the member in question is not eligible to vote and does not count towards the quorum. Only Maintainers team has right to vote.
    60  
    61  Upon death of a member, their Triage team membership ends automatically.
    62  
    63  ### Technical decisions
    64  
    65  Smaller technical decisions are made informally and [lazy consensus](#consensus) is assumed. Technical decisions that span multiple parts of the Thanos project should be discussed and made on the [GitHub issues](https://github.com/thanos-io/thanos/issues) and in most cases followed by proposal as described [here](../CONTRIBUTING.md#adding-new-features--components).
    66  
    67  Decisions are usually made by [lazy consensus](#consensus). If no consensus can be reached, the matter may be resolved by [majority vote](#majority-vote).
    68  
    69  ### Governance changes
    70  
    71  Material changes to this document are discussed publicly on the [Thanos GitHub](http://github.com/thanos-io/thanos). Any change requires a [supermajority](#supermajority-vote) in favor. Editorial changes may be made by [lazy consensus](#consensus) unless challenged.
    72  
    73  ### Other matters
    74  
    75  Any matter that needs a decision, including but not limited to financial matters, may be called to a vote by any Maintainer if they deem it necessary. For financial, private, or personnel matters, discussion and voting takes place on the [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io); Otherwise discussion and votes are held in public on the GitHub issues or #thanos-dev CNCF slack channel.
    76  
    77  ## Voting
    78  
    79  The Thanos project usually runs by informal consensus, however sometimes a formal decision must be made.
    80  
    81  Depending on the subject matter, as laid out [above](#decision-making), different methods of voting are used.
    82  
    83  For all votes, voting must be open for at least one week. The end date should be clearly stated in the call to vote. A vote may be called and closed early if enough votes have come in one way so that further votes cannot change the final decision.
    84  
    85  In all cases, all and only [Maintainers](#maintainers-team) are eligible to vote, with the sole exception of the forced removal of a team member, in which said member is not eligible to vote.
    86  
    87  Discussion and votes on personnel matters (including but not limited to team membership and maintainership) are held in private on the [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). All other discussion and votes are held in public on the GitHub issues or #thanos-dev CNCF slack channel.
    88  
    89  For public discussions, anyone interested is encouraged to participate. Formal power to object or vote is limited to [Maintainers Team](#maintainers-team).
    90  
    91  ### Governance
    92  
    93  It's important for the project to stay independent and focused on shared interest instead of single use case of one company or organization.
    94  
    95  We value open source values and freedom, that's why we limit Maintainers Team **votes to maximum two from a single organization or company.**
    96  
    97  We also encourage any other company interested in helping maintaining Thanos to join us to make sure we stay independent.
    98  
    99  ### Consensus
   100  
   101  The default decision making mechanism for the Thanos project is [lazy consensus](https://couchdb.apache.org/bylaws.html#lazy). This means that any decision on technical issues is considered supported by the [team](https://groups.google.com/forum/#!forum/thanos-io) as long as nobody objects.
   102  
   103  Silence on any consensus decision is implicit agreement and equivalent to explicit agreement. Explicit agreement may be stated at will.
   104  
   105  Consensus decisions can never override or go against the spirit of an earlier explicit vote.
   106  
   107  If any [member of Maintainers Team](#maintainers-team) raises objections, the team members work together towards a solution that all involved can accept. This solution is again subject to lazy consensus.
   108  
   109  In case no consensus can be found, but a decision one way or the other must be made, anyone from [Maintainers Team](#maintainers-team) may call a formal [majority vote](#majority-vote).
   110  
   111  ### Majority vote
   112  
   113  Majority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
   114  
   115  Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
   116  
   117  A vote on a single proposal is considered successful if more vote in favor than against.
   118  
   119  If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. It is not possible to cast an “abstain” vote. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from more than half of those voting. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
   120  
   121  ### Supermajority vote
   122  
   123  Supermajority votes must be called explicitly in a separate thread on the appropriate mailing list. The subject must be prefixed with `[VOTE]`. In the body, the call to vote must state the proposal being voted on. It should reference any discussion leading up to this point.
   124  
   125  Votes may take the form of a single proposal, with the option to vote yes or no, or the form of multiple alternatives.
   126  
   127  A vote on a single proposal is considered successful if at least two thirds of those eligible to vote, vote in favor.
   128  
   129  If there are multiple alternatives, members may vote for one or more alternatives, or vote “no” to object to all alternatives. A vote on multiple alternatives is considered decided in favor of one alternative if it has received the most votes in favor, and a vote from at least two thirds of those eligible to vote. Should no alternative reach this quorum, another vote on a reduced number of options may be called separately.
   130  
   131  ## FAQ
   132  
   133  This section is informational. In case of disagreement, the rules above overrule any FAQ.
   134  
   135  ### For majority vote, what if there is even number of maintainers and an equal amount of votes in favor than against?
   136  
   137  It has to be majority so the vote will be declined.
   138  
   139  ### So what's the TLDR difference between majority vs supermajority?
   140  
   141  It's about number of up votes to agree on the decision.
   142  
   143  * majority: Majority of voters has to agree.
   144  * supermajority: 2/3 voters has to agree.
   145  
   146  ### How do I propose a decision?
   147  
   148  See [Contributor doc](../CONTRIBUTING.md#adding-new-features--components)
   149  
   150  ### How do I become a team member?
   151  
   152  To become an official member of Maintainers Team, you should make ongoing contributions to one or more project(s) for at least three months. At that point, a team member (typically a maintainer of the project) may propose you for membership. The discussion about this will be held in private, and you will be informed privately when a decision has been made. A possible, but not required, graduation path is to become a maintainer first.
   153  
   154  Should the decision be in favor, your new membership will also be announced on the [Thanos Twitter](https://twitter.com/ThanosMetrics)
   155  
   156  ### How do I add a project?
   157  
   158  As a team member, propose the new project on the [Thanos GitHub Issue](https://github.com/thanos-io/thanos/issues). However, currently to maintain project in our organization you have to become Thanos Maintainers.
   159  
   160  All are encourage to start their own project related to Thanos. Thanos team is happy to link to your project inappropriate page e.g https://thanos.io/tip/thanos/integrations.md/
   161  
   162  ### How do I remove a Maintainer or Triage member?
   163  
   164  All members may resign by notifying the [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). If you think a team member should be removed against their will, propose this to the [thanos-io@googlegroups.com](https://groups.google.com/forum/#!forum/thanos-io). Discussions will be held there in private.
   165  
   166  ### Can majority/supermajority vote be done on GitHub PR by just approving PR?
   167  
   168  No,`[VOTE]` email has to be created.
   169  
   170  ### What if during majority/supermajority vote there is no answer after week?
   171  
   172  For majority voting this means that member that did not send a response agree with the proposal.
   173  
   174  For supermajority voting team has to wait for all answers.