Chapter 21. Community

Table of Contents

21.1. Decisions
21.1.1. Feature Branches
21.1.2. Patch +1 Policy
21.1.3. How to set fix version in JIRA on issue resolve
21.1.4. Policy on when to set a RESOLVED JIRA as CLOSED
21.1.5. Only transient state in ZooKeeper!
21.2. Community Roles
21.2.1. Component Owner/Lieutenant
21.3. Commit Message format

21.1. Decisions

21.1.1. Feature Branches

Feature Branches are easy to make. You do not have to be a committer to make one. Just request the name of your branch be added to JIRA up on the developer's mailing list and a committer will add it for you. Thereafter you can file issues against your feature branch in Apache HBase JIRA. Your code you keep elsewhere -- it should be public so it can be observed -- and you can update dev mailing list on progress. When the feature is ready for commit, 3 +1s from committers will get your feature merged. See HBase, mail # dev - Thoughts about large feature dev branches

21.1.2. Patch +1 Policy

The below policy is something we put in place 09/2012. It is a suggested policy rather than a hard requirement. We want to try it first to see if it works before we cast it in stone.

Apache HBase is made of components. Components have one or more Section 21.2.1, “Component Owner/Lieutenant”s. See the 'Description' field on the components JIRA page for who the current owners are by component.

Patches that fit within the scope of a single Apache HBase component require, at least, a +1 by one of the component's owners before commit. If owners are absent -- busy or otherwise -- two +1s by non-owners will suffice.

Patches that span components need at least two +1s before they can be committed, preferably +1s by owners of components touched by the x-component patch (TODO: This needs tightening up but I think fine for first pass).

Any -1 on a patch by anyone vetos a patch; it cannot be committed until the justification for the -1 is addressed.

21.1.3. How to set fix version in JIRA on issue resolve

Here is how we agreed to set versions in JIRA when we resolve an issue. If trunk is going to be 0.98.0 then:

  • Commit only to trunk: Mark with 0.98

  • Commit to 0.95 and trunk : Mark with 0.98, and 0.95.x

  • Commit to 0.94.x and 0.95, and trunk: Mark with 0.98, 0.95.x, and 0.94.x

  • Commit to 89-fb: Mark with 89-fb.

  • Commit site fixes: no version

21.1.4. Policy on when to set a RESOLVED JIRA as CLOSED

We agreed that for issues that list multiple releases in their Fix Version/s field, CLOSE the issue on the release of any of the versions listed; subsequent change to the issue must happen in a new JIRA.

21.1.5. Only transient state in ZooKeeper!

You should be able to kill the data in zookeeper and hbase should ride over it recreating the zk content as it goes. This is an old adage around these parts. We just made note of it now. We also are currently in violation of this basic tenet -- replication at least keeps permanent state in zk -- but we are working to undo this breaking of a golden rule.

comments powered by Disqus