UIMA project logo
Apache UIMA™ Project Guidelines
Apache UIMA

Search the site

 Decision Making

Note: This is a working draft document.

Discussion of this document is occuring on the uima-dev mailing list.


All Contributors are encouraged to participate in decisions, but the decision itself is made by those that have Committer status in the Project. In other words, the Project is a " Minimum Threshold Meritocracy". In addition, release voting makes a distinction between binding votes and other votes - binding votes being those made by official members of the PMC (Project Management Committee).

Voting

The act of voting carries certain obligations. Voting members are not only stating their opinion, they are also agreeing to help do the work.

Any subscriber to the list may vote on any issue or action item. However, the only binding votes are those cast by a Committer (non release votes), or a PMC member (for release votes).

Any Contributor or Committer ("member") may call for an action-item vote on the uima-dev mailing list. It is preferred that a vote be preceded by a formal proposal offered for discussion purposes. The message announcing a vote should contain a Subject beginning with "[VOTE]", and a distinctive one-line summary corresponding to the action item for the vote.

Each vote can be made in one of three flavors:

+1 "Yes," "Agree," or "the action should be performed." On some issues this is only binding if the voter has tested the action on their own system(s).
+/-0 "Abstain," "no opinion". An abstention may have detrimental effects if too many people abstain. -0 can indicate lack of support, but without any alternative being proposed.
-1 "No" On issues where consensus is required, this vote counts as a veto. All vetos must contain an explanation of why the veto is appropriate, and possibly, an alternative. Vetos with no explanation are void. No veto can be overruled. If you disagree with the veto, you should lobby the person who cast the veto. Voters intending to veto an action item should make their opinions known to the group immediately so that the problem can be remedied as early as possible.

An action item may need one of two types of approval.

An action requiring consensus approval must receive at least 3 binding +1 votes and no binding vetos.

An action requiring majority approval must receive at least 3 binding +1 votes and more +1 votes than -1 votes.

Except for a public release, All other action items are considered to have lazy approval until somebody votes -1, at which point the action item is converted to a formal consensus or majority vote, depending on the type of action item.

Note: "Lazy" means the action item has immediate tacit approval, and it is not necessary to tally the vote until a -1 reply is posted. Once a -1 reply is posted, the vote must be tallied and reported before the action item is considered approved. All action-item votes are lazy except for a public release vote.

Voting Caveats

  • An abstention may have detrimental effects if too many people abstain.
  • Vetos with no explanation are void. No veto can be overruled. If you disagree with the veto, you should lobby the person who cast the veto. Voters intending to veto an action item should make their opinions known to the group immediately so that the problem can be remedied as early as possible.
  • Members who wish to discuss a vote before replying, may open another thread to help avoid premature vetos. Any +/-1's or +/-0's posted to an alternate thread, or any other thread not labeled "[VOTE]", are considered conversational, and do not qualify as an valid action-item vote. A "lazy item" remains subject to lazy approval until a valid -1 reply is posted to the "[VOTE]" thread.

Action Items

All decisions revolve around " Action Items." Action Items consist of the following:

Long Term Plans

Long term plans are simply announcements that group members are working on particular issues related to the Project. These are not voted on, but Committers who do not agree with a particular plan, or think that an alternative plan would be better, are obligated to inform the group of their feelings.

Short Term Plans

Short term plans are announcements that a volunteer is working on a particular set of documentation or code files with the implication that other volunteers should avoid them or try to coordinate their changes.

Release Plan

A release plan is used to keep all volunteers aware of when a release is desired, who will be the release manager, when the repository will be frozen to create a release, and other assorted information to keep volunteers from tripping over each other. Lazy majority decides each issue in a release plan.

Release Testing

After a new release is built, it must be tested before being released to the public. The Release Manager will announce that a release is ready for testing.

Public Release

Once the Release Manager determines that testing is complete, and all showstoppers for the release have been resolved, the Release Manager shall call for a vote on the public release. Release voting is governed by the ASF requirements on release voting. Majority approval is required before the public release can be made. Voters who approve a public release (vote +1) are expected to provide ongoing support for that release while it is current. The Release Manager must summarize the outcome of the vote before the public release becomes final.

Showstoppers

Showstoppers are issues that require a fix be in place before the next public release. They are listed in the project's JIRA tracking system, categorized as "blockers" in order to focus special attention on these problems. An issue becomes a showstopper when it is listed as such in the project's JIRA tracking system and remains so by lazy consensus.

Software Changes

Changes to the software of the Project, including code and documentation, will appear as action items in the project's JIRA tracking system. All software changes to the currently active repository are subject to lazy consensus.