Apache Accumulo Source Code & Developers Guide

Source Code

Apache Accumulo™ source code is maintained using Git version control (browse|checkout). It builds with Apache Maven.

Website

Accumulo's web site is maintained with Apache Subversion here using Apache's Content Management System. Committers may edit the site by following these instructions. Non-committers should follow this FAQ entry.

Contribs

Accumulo has a number of contrib projects that maintain their own code repositories and release schedules. All build with Apache Maven.

Developer's Guide

Building code

Installing Thrift

If you activate the 'thrift' Maven profile, the build of some modules will attempt to run the Apache Thrift command line to regenerate stubs. If you activate this profile and don't have Apache Thrift installed and in your path, you will see a warning and your build will fail. For Accumulo 1.5.0 and greater, install Thrift 0.9 and make sure that the 'thrift' command is in your path. Watch out for THRIFT-1367; you may need to configure Thrift with --without-ruby. Most developers do not need to install or modify the Thrift definitions as a part of developing against Apache Accumulo.

Checking out from Git

To check out the code:

git clone http://git-wip-us.apache.org/repos/asf/accumulo.git

Building

To build the code:

mvn package -P assemble

This will create a file accumulo-*-SNAPSHOT-dist.tar.gz in the assemble/target directory.

For older branches, "mvn package && mvn assembly:single" may be required instead, and the tar will be built in the target directory.

Continuous Integration

Accumulo uses Jenkins for automatic builds.

Master

1.6 Branch

1.5 Branch (Hadoop 2)

1.5 Branch (Hadoop 1)

1.4 Branch

Issue Tracking

Accumulo tracks issues with JIRA. Every commit should reference a JIRA ticket of the form ACCUMULO-#.

Merging Practices

Changes should be merged from earlier branches of Accumulo to later branches. Ask the dev list for instructions.

Public API

Refer to the README in the release you are using to see what packages are in the public API.

Changes to non-private members of those classes are subject to additional scrutiny to minimize compatibility problems across Accumulo versions.

Coding Practices

Eclipse Configuration Tips

Intellij Configuration Tips

Git

Instructions for configuring git are here.

Release Guide

Accumulo's release guide can be found here.