Chapter 1. Building and Developing Apache HBase

Table of Contents

1.1. Getting Involved
1.1.1. Mailing Lists
1.1.2. Internet Relay Chat (IRC)
1.1.3. Jira
1.2. Apache HBase Repositories
1.3. IDEs
1.3.1. Eclipse
1.3.2. IntelliJ IDEA
1.3.3. Other IDEs
1.4. Building Apache HBase
1.4.1. Basic Compile
1.5. Releasing Apache HBase
1.5.1. Building against HBase 0.96-0.98
1.5.2. Making a Release Candidate
1.5.3. Publishing a SNAPSHOT to maven
1.6. Voting on Release Candidates
1.7. Generating the HBase Reference Guide
1.8. Updating hbase.apache.org
1.8.1. Contributing to hbase.apache.org
1.8.2. Publishing hbase.apache.org
1.9. Tests
1.9.1. Apache HBase Modules
1.9.2. Unit Tests
1.9.3. Running tests
1.9.4. Writing Tests
1.9.5. Integration Tests
1.10. Developer Guidelines
1.10.1. Codelines
1.10.2. Release Managers
1.10.3. Code Standards
1.10.4. Invariants
1.10.5. Running In-Situ
1.10.6. Adding Metrics
1.10.7. Git Best Practices
1.10.8. Submitting Patches

This chapter contains information and guidelines for building and releasing HBase code and documentation. Being familiar with these guidelines will help the HBase committers to use your contributions more easily.

1.1. Getting Involved

Apache HBase gets better only when people contribute! If you are looking to contribute to Apache HBase, look for issues in JIRA tagged with the label 'beginner'. These are issues HBase contributors have deemed worthy but not of immediate priority and a good way to ramp on HBase internals. See What label is used for issues that are good on ramps for new contributors? from the dev mailing list for background.

Before you get started submitting code to HBase, please refer to Section 1.10, “Developer Guidelines”.

As Apache HBase is an Apache Software Foundation project, see ??? for more information about how the ASF functions.

1.1.1. Mailing Lists

Sign up for the dev-list and the user-list. See the mailing lists page. Posing questions - and helping to answer other people's questions - is encouraged! There are varying levels of experience on both lists so patience and politeness are encouraged (and please stay on topic.)

1.1.2. Internet Relay Chat (IRC)

For real-time questions and discussions, use the #hbase IRC channel on the FreeNode IRC network. FreeNode offers a web-based client, but most people prefer a native client, and several clients are available for each operating system.

1.1.3. Jira

Check for existing issues in Jira. If it's either a new feature request, enhancement, or a bug, file a ticket.

To check for existing issues which you can tackle as a beginner, search for issues in JIRA tagged with the label 'beginner'.

JIRA Priorities

  • Blocker: Should only be used if the issue WILL cause data loss or cluster instability reliably.

  • Critical: The issue described can cause data loss or cluster instability in some cases.

  • Major: Important but not tragic issues, like updates to the client API that will add a lot of much-needed functionality or significant bugs that need to be fixed but that don't cause data loss.

  • Minor: Useful enhancements and annoying but not damaging bugs.

  • Trivial: Useful enhancements but generally cosmetic.

Example 1.1. Code Blocks in Jira Comments

A commonly used macro in Jira is {code}. Everything inside the tags is preformatted, as in this example.

{code}
code snippet
{code}
            

comments powered by Disqus