How are decisions made in the project?

The most important thing about engaging with any Apache project is that everyone is equal. All people with an opinion are entitled to express that opinion and, where appropriate, have it considered by the community.

To some the idea of having to establish consensus in a large and distributed team sounds inefficient and frustrating. Don't despair though, The Apache Way has a set of simple processes to ensure things proceed at a good pace.

In ASF projects we don't like to vote. We reserve that for the few things that need official approval for legal or process reasons (e.g. a release or a new committer). Most of the time we work with the consensus building techniques documented below.

What is "Lazy Consensus"?

Lazy consensus is the first, and possibly the most important, consensus building tool we have. Essentially lazy consensus means that you don't need to get explicit approval to proceed, but you need to be prepared to listen if someone objects.

Consensus Building

Sometimes lazy consensus is not appropriate. In such cases it is necessary to make a proposal to the mailing list and discuss options. There are mechanisms for quickly showing your support or otherwise for a proposal and building consensus amongst the community.

Once there is a consensus people can proceed with the work under the lazy consensus model.

What about voting?

Occasionally a "feel" for consensus is not enough. Sometimes we need to have a measurable consensus. For example, when voting in new committers or to approve a release.