You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 10 Next »

SpamAssassin Apache Voting Procedure

We follow the [http://www.apache.org/foundation/voting.html Apache Voting Procedure], with the below modifications.

Binding and Non-binding Votes

In all cases, votes are welcome as an indication of how people feel about the issues being discussed; however, only votes from certain groups are considered "binding".

For code modifications, patches, R-T-C changes to svn, and "ready to release" votes, committers have the binding votes. However, for project-procedural ASF votes, votes must come from PMC members to be considered binding.

Time Delays for Code Modifications

Votes should generally be permitted to run for at least 72 hours to provide an opportunity for all concerned persons to participate regardless of their geographic locations.

(Since it does say "generally", it seems reasonable exceptions to the 72 hour rule are allowed if you specify such in your vote, but let's always allow at least 24 hours or at least 48 hours if the weekend is involved. Remember, though, that if someone later vetos with a technical explanation, then the code gets pulled.)

And please don't vote +1 unless you actually did something to check the patch. That means some form of testing or code review. You do not necessarily need to apply the patch to your local copy of SA, but do take a look at it before voting +1.

When in Review-then-Commit mode

Changes need consensus approval before being committed. "Consensus approval" refers to a vote which has completed with at least three binding +1 votes and no -1 vetos.

Yes, the author of a patch is allowed to vote as long as they're a committer; in general, if a committer uploads the patch, it's assumed they give it an implicit +1 unless specified otherwise.

Also, any changes need to go through a bug with the appropriate milestone.

When Review-then-Commit is optional

  • documentation
  • finishing off pre-existing T_ tests
  • non-controversial non-semantic style changes (fixing indentation, adding comments, but not actual code)
  • very simple, non-controversial, and absolutely safe bug fixes

Running 'make test'

'make test' should be run before committing anything, unless the change doesn't modify the code in any way (such as a documentation change). If you check in something that breaks 'make test', you have Done A Bad Thing.

If you send out a patch for C-T-R, and your patch manages to break 'make test' on its own (ie. not through interaction with other current review patches), that is Also Bad.

Reverting code

To veto code, you must issue an explicit -1 veto in a bug or in a reply to the check-in on the spamassassin-dev mailing list. If the veto is for a security-related fix, you may veto on a private forum. In addition, the veto must be accompanied with a technical reason. Vetos should be avoided for purely procedural reasons. If you are vetoing code, it is considered polite to allow the author an opportunity to respond or revert the code themselves, but it is not quite as imperative to wait if the change is very broken and fixing it would require significantly more effort than reverting it.

Setting up Subprojects

Requires +1s from more than half of the PMC membership.

  • No labels