Chapter 18. Building and Developing Apache HBase

Table of Contents

18.1. Getting Involved
18.1.1. Mailing Lists
18.1.2. Internet Relay Chat (IRC)
18.1.3. Jira
18.2. Apache HBase Repositories
18.3. IDEs
18.3.1. Eclipse
18.3.2. IntelliJ IDEA
18.3.3. Other IDEs
18.4. Building Apache HBase
18.4.1. Basic Compile
18.5. Releasing Apache HBase
18.5.1. Building against HBase 0.96-0.98
18.5.2. Making a Release Candidate
18.5.3. Publishing a SNAPSHOT to maven
18.6. Voting on Release Candidates
18.7. Generating the HBase Reference Guide
18.8. Updating
18.8.1. Contributing to
18.8.2. Publishing
18.9. Tests
18.9.1. Apache HBase Modules
18.9.2. Unit Tests
18.9.3. Running tests
18.9.4. Writing Tests
18.9.5. Integration Tests
18.10. Developer Guidelines
18.10.1. Codelines
18.10.2. Release Managers
18.10.3. Code Standards
18.10.4. Invariants
18.10.5. Running In-Situ
18.10.6. Adding Metrics
18.10.7. Git Best Practices
18.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.

18.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 18.10, “Developer Guidelines”.

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

18.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.)

18.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.

18.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 18.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 snippet

comments powered by Disqus