Contributing to Apache Clerezza

There are many ways to contribute to Apache Clerezza. This page is on how to contribute - for ideas on what you could contribute look for open issues in the issue tracker or ask on the mailing list.

Open issues

If you find something that could be better or have a question on how something works post an issue (feature request, bug or question) in jira.

Discuss

Use the mailing list to discuss the future development of Clerezza, new ideas that aren't concrete enough to open issues or how Clerreza might be used for different use cases.

Contribute Patches

The Clerezza codebase as well as the documentation and webiste grow patch by patch, every patch is associated to an issue. Patches can be added to trunk either following a Rewiev-Then-Commit or a Commit-Then-Review process. If you're not (yet) a committer you should attach your patch to an issue and then either:
  • Ask for a vote on the mailing list, if your patch gets 3 +1 votes and no -1 vote it is accepted and will be applied to trunk
  • Wait for a committer to take care of the issue, like your patch and apply it to trunk
Once the patch is applied to trunk the issue is marked as closed. If your patch has been applied without prior vote during the 72h following closing of the issue the patch can be vetoed with a -1 vote or a committer can ask for an explicit vote (as opposed to lazy consensus) in this case the code modification needs 3 +1 votes in the subsequent 72h period or it will be removed.

Coding Guidelines

A draft for coding guidelines is attached to issue CLEREZZA-435. A quick summary: CamelCase and use tabs for indentation.

Being a committer

If you are a Clerezza committer your votes are binding and you can veto any code modification with a qualified -1, see the Apache Voting Process for more information.
As the name suggests a committer has the right to commit changes to the repository. You may commit other people's as well as your own patches to trunk. You must only commit changes to trunk if these commits yield to an issue being closable and in the case that there has been no previous vote on the committed patch if you're ready to remove these commits in the event that they are not accepted (by lazy consensuns, or if someone asks for it in an explicit vote).
As a committer you may also create issue branches which allows you to commit unfinished work to the repository and others to comment on it. if you want to discuss a patch or ask for a vote on it instead of attaching it to the issue you would typically point to the issue branch in clerezza/issues.