STATUS: UNRATIFIED DRAFT
Fundamental Tenets:
- Follow the Apache Code of Conduct
- Behave as you would in a professional context
- Assume positive intent
- Assume others are correct; always respond to your best possible interpretation of their statements, and seek clarification where this is difficult
- These guidelines are predicated on actors behaving reasonably
- Disagreements on any matter (including vetoes) can be escalated to the PMC, but this is strongly discouraged and suggests a breakdown of these tenets
pmc responsibilities and forums of discussion:
Guiding philosophies: Default to dev list and “decide as a community”. Favor pmc minimalism.
On private@:
- Enforcing trademark
- Votes on new committers (super majority)
- Votes on new pmc members (super majority)
- Security issues
On dev@:
- Discussion / binding votes on releases (Consensus: min 3 PMC +1, no -1)
- Discussion / binding votes on project structure and governance changes (adopting subprojects, how we vote and govern, etc). (super majority)
Discussion:
- All proposals starts with a [DISCUSS] thread to reach a community consensus
- [DISCUSS] threads resolve areas of dispute via initial argumentation, that should be as concise as possible to leave room for all topics. Non-binding polls should be conducted on areas without clear consensus, to help provide some from the silent majority.
- [DISCUSS] threads are closed once consensus is reached via declared lazy consensus with a 1 business day notice period.
- In the event of a stall, informal votes to gauge community sentiment may be conducted.
How we vote as a pmc:
Guiding philosophy: “Mindfully balance the need for progress with the need for consensus”
PMC roll call will be taken every 6 months. This is an email to dev@ w/the simple question to pmc members of “are you active on the project and plan to participate in voting over the next 6 months?”. This is strictly an exercise to get quorum count and in no way restricts ability to participate during this time window. A simple majority of this electorate becomes the low-watermark for votes in favour necessary to pass a motion, with new PMC members added to the calculation.
Any pmc vote on any of the issues above w/the exception of releases will be conducted as follows:
- A [DISCUSS] thread is conducted
- A [VOTE] thread is opened for a window, typically of one week. The window and method must be specified.
Simple majority voting: For all active participants, if +1 outweigh -1, vote passes.
Super majority voting: 66% of votes must be in favor to pass. Minimum participation #’s of active quorum is 66% of active quorum must cast a vote in favour for it to be considered valid.
How we vote as a community:
- Committer votes are considered “binding”
- Non-committer votes are important, encouraged, and considered advisory
For Code Contributions:
- Correcting typos, docs, website, and comments etc operate a “Commit Then Review” policy
- Code modifications must have been reviewed by at least one other contributor
- Code modifications require two +1 committer votes (can be author + reviewer)
- Code must not be committed while under active reasonable discussion
- Code must not be committed if a committer has requested reasonable time to conduct a review
- Code must not be committed while subject to an explicit -1 vote by a committer for clearly expressed and reasonable technical grounds
- If code has been committed but not released, a -1 vote from a committer (that is not resolved by follow-up commits) can be reverted
- If the proposer responds to the concerns of a -1 voter, and the -1 voter does not engage reasonably with the response, the -1 is rescinded
- Committers should explicitly veto work exceptionally rarely
For CEP:
Guiding philosophy: encourage up front collaboration on potentially contentious proposals
- A small group of contributors works on a draft CEP before bringing it to the community.
- A [DISCUSS] thread is conducted on the proposal
- Once the proposal is finalized and any major committer dissent reconciled, call a [VOTE] on the ML to have the proposal adopted. The criteria for acceptance is consensus (3 binding +1 votes and no binding vetoes). The vote should remain open for 72 hours.
- Minor modifications to a CEP can be made by lazy consensus; major modifications should be made via this process, with the prior version being archived and linked from the new proposal.