2016/02/07 - Apache Onami has been retired.

For more information, please explore the Attic.

Overview

Apache Onami uses shared mailing lists for all of itcomponents. To make it easier for people to only read messages related to components they are interested in, the convention in Onami is to prefix the subject line of messages with the component's name, for example:

  • [configuration] ConcurrentModificationException when running tests in parallel
  • [autobind] ModuleBindingFeature doesn't keep trace of bound jobs
  • [scheduler] Optionally support repeated scheduling of the same job / trigger tuple

Questions related to the usage of Commons components should be posted to the User List.
The Developer List is for questions and discussion related to the development of components.
Please do not cross-post; developers are also subscribed to the user list. Read the archives first in case your question has already been answered. If not, then subscribe to the appropriate list and post your question.

Note: please don't send patches or attachments to any of the mailing lists. Patches are best handled via the Issue Tracking system. Otherwise, please upload the file to a public server and include the URL in the mail.

Please read the Public Forum Archive Policy and Tips for email contributors.
For further information on Apache mailing lists please read General mailing list information in particular the section entitled Subscribing and Unsubscribing

Other subject prefixes

Other prefixes which may be used on Onami mailing lists are:

  • [ALL] - general discussion (developer list)
  • [DOC] - Documentation discussion
  • [SITE] - Site building related discussion (developer list)
  • [VOTE], [RESULT], [CANCELLED] - voting threads (developer list)
  • [ANNOUNCE] - announcements of releases etc.

Voting

Decisions regarding the project are made by votes on the primary project mailing list. Where necessary, voting may take place on the private mailing list. Votes are clearly indicated by subject line starting with [VOTE]. Votes may contain multiple items for approval and these should be clearly separated. Voting is carried out by replying to the vote mail. Voting may take four flavours.

+1 Yes, Agree, or the action should be performed. In general, this vote also indicates a willingness on the behalf of the voter in making it happen.
+0 This vote indicates a willingness for the action under consideration to go ahead. The voter, however will not be able to help.
-0 This vote indicates that the voter does not, in general, agree with the proposed action but is not concerned enough to prevent the action going ahead.
-1 This is a negative vote. On issues where consensus is required, this vote counts as a veto . All vetoes must contain an explanation of why the veto is appropriate. Vetoes with no explanation are void. It may also be appropriate for a -1 vote to include an alternative course of action.

All participants in the project are encouraged to show their agreement with or against a particular action by voting. For technical decisions, only the votes of active committers are binding. Non binding votes are still useful for those with binding votes to understand the perception of an action in the wider community. For PPPMC decisions, only the votes of PPPMC members are binding.

Voting can also be applied to changes made to the codebase. These typically take the form of a veto (-1) in reply to the commit message sent when the commit is made.

Approvals

These are the types of approvals that can be sought. Different actions require different types of approvals.

Consensus For this to pass, all voters with binding votes must vote and there can be no binding vetoes (-1). Consensus votes are rarely required due to the impracticality of getting all eligible voters to cast a vote.
Lazy Consensus Lazy consensus requires 3 binding +1 votes and no binding vetoes.
Lazy Majority A lazy majority vote requires 3 binding +1 votes and more binding +1 votes that -1 votes.
Lazy Approval An action with lazy approval is implicitly allowed unless a -1 vote is received, at which time, depending on the type of action, either lazy majority or lazy consensus approval must be obtained.
2/3 Majority Some actions require a 2/3 majority of active committers or PPPMC members to pass. Such actions typically affect the foundation of the project (e.g. adopting a new codebase to replace an existing product). The higher threshold is designed to ensure such changes are strongly supported. To pass this vote requires at least 2/3 of binding vote holders to vote +1

Vetoes

A valid, binding veto cannot be overruled. If a veto is cast, it must be accompanied by a valid reason explaining the reasons for the veto. The validity of a veto, if challenged, can be confirmed by anyone who has a binding vote. This does not necessarily signify agreement with the veto - merely that the veto is valid.

If you disagree with a valid veto, you must lobby the person casting the veto to withdraw their veto. If a veto is not withdrawn, the action that has been vetoed must be reversed in a timely manner.

Actions

This section describes the various actions which are undertaken within the project, the corresponding approval required for that action and those who have binding votes over the action.

Action Description Approval Binding Votes
Code Change A change made to the codebase of a sub-project and committed by a committer. This includes source code, documentation, website content, etc. Lazy approval and then lazy consensus. Active committers of the relevant sub-project.
Release Plan Defines the timetable and actions for a release. The plan also nominates a Release Manager. Lazy majority Active committers of the relevant sub-project
Product Release When a release of one of the sub-project's products is ready, a vote is required to accept the release as an official release of the Logging Services project. This step ensures the overall supervision by the Logging Services PPMC over its sub-projects. Lazy Majority Active PPMC members
Adoption of New Codebase When the codebase for an existing, released product is to be replaced with an alternative codebase. If such a vote fails to gain approval, the existing code base will continue. This also covers the creation of new sub-projects within the project. 2/3 majority Active PPMC members
Modification of the Bylaws Modification of this document 2/3 majority Active PPMC members
New Committer When a new committer is proposed for a sub-project.The PPMC must be informed of the result of the sub-project's vote. Lazy consensus Active committers of the relevant sub-project
New PPMC Member When a committer is proposed for the PPMC Lazy consensus Active PPMC members
Committer Removal When removal of commit privileges is sought.
Note: Such actions will also be referred to the ASF board by the PPMC chair.
Consensus Active PPMC members (excluding the committer in question if a member of the PPMC).
PPMC Member Removal When removal of a PPMC member is sought.
Note: Such actions will also be referred to the ASF board by the PPMC chair.
Consensus Active PPMC members (excluding the member in question).

Voting Timeframes

Votes are open for a period of 72 hours to allow all active voters time to consider the vote. Votes relating to code changes are not subject to a strict timetable but should be made as timely as possible.