Permalink
Fetching contributors…
Cannot retrieve contributors at this time
127 lines (92 sloc) 6.04 KB

Decision Making in coala

Metadata
cEP 0001
Version 2.0
Title Decision Making in coala
Authors Maximilian Scholz mailto:max.scholz@mailbox.org, Lasse Schuirmann mailto:lasse@gitmate.io, Mischa Krüger mailto:makman@alice.de
Status Active
Type Process

Abstract

This cEP describes the official roles members of the coala community can hold and how they can vote on different levels of decisions.

Roles

The following roles can be held by members of the coala community:

Newcomer

A newcomer is someone that was just introduced to the coala project and community and begins to contribute to it. This rank mainly represents the learning phase of the contribution process.

Every org member that started following the newcomer guide is declared a newcomer by invitation into the GitHub organisation. Newcomers can work on issues with an assignment.

Developer

A developer is someone that showed capable of contributing to coala. They are involved on a normal level and help with contributions and reviews on a semi-regular basis.

When a newcomer finished the newcomer guide they can ask a maintainer to be promoted to a developer. A developer has all the rights of a newcomer but can be an official coala team member and can use cobot to label issues and pull requests. Developers also have voting rights on A level decisions.

If the contributions of a developer show the lack of fundamental understanding of the coala workflow they can be demoted to the newcomer rank with a B level decision. The promotion to developer must be granted after a renewed completion of the newcomer guide. A developer can choose to be demoted newcomer at any time.

Maintainer

A Maintainer is someone that showed persistence in contributions and or an increased quality compared to a developer. They offer experience and passion for the project and are granted full voting rights due to their achievements.

A developer can be promoted to a maintainer with a B level decision. This decision does not have to be initiated by a maintainer so it is valid for a developer to propose himself for a promotion.

A maintainer has all the rights a developer has. Additionally maintainers have write access to coala repositories, can promote newcomers and developers and have voting rights on B and C level decisions.

The two important aspects of the maintainer rank are the voting rights for B and C level decisions and the write access. While the write access mostly is a convenience feature that is granted to long time contributors as a quality of life improvement and sign of trust, the voting rights also show the valuation of ones knowledge and opinions. It is due to these considerations, that it is valid to promote contributors to maintainers that did not finish the newcomer guide. This enables non coding contributors to add their input to important decisions.

The demotion from maintainer to developer represents a C level decision. It should only be done if a maintainer has shown inactivity for prolonged periods of time, half a year and upwards. This should not be used as a tool to silence unwanted opinions! Maintainers may choose to be demoted to developers at any time.

Benevolent Limited Dictator (BLD)

Members of the coala community have suggested the establishment of a Benevolent Limited Dictator (short: BLD) similar to the Python community's Guido.

The BLD has the same rights as a maintainer with additional veto rights as described below. As per this cEP, Lasse Schuirmann is the BLD for coala.

The BLD can not be demoted at any point but may decide to resign and be demoted to a maintainer any time.

Removal from the coala community

The removal of any member from the coala community represents a C level decision. This includes loss of all ranks and rights in the community and declares that person unwanted as a member of the coala community.

This status stays active indefinitely but can be revoked at any point by a C level decision.

Decision Types

A Level Decision

An A Level Decision may be carried out by any member of the coala community, for example a code review. If there is a disagreement between two members, they may resolve this in a discussion or determine a B level decision instead.

B Level Decision

A B Level Decision may be carried out by two or more members of the coala community. The decision in favour or against the proposal may be determined if two more members are for it than against it (or against it than for it respectively).

If no agreement is possible, a C level decision can be made. The BLD may raise the decision to a C level decision at will.

C Level Decision

For a C level decision, a vote must be officially announced at the coala members channel and via the coala-members mailing list. The vote must be up for at least one week and is available to all members.

For a decision to happen, a simple majority of all participating members must exist. If the same number of members is in favour as against the decision, the BLD may decide. The BLD also may block a decision with reasons provided within the week of voting. In this case no decision is made and discussions may continue.