Development documentation

jmhsieh edited this page Feb 4, 2011 · 11 revisions

Compiling Flume

See the DEVNOTES file

Flume & Eclipse

After setting up your development environment (verify via “ant” command) you can easily load Flume as an Eclipse project by typing “ant eclipse” and loading the generated project into Eclipse by creating a new java project and specifying the Flume top-level directory.

Development procedures

This section documents the development procedures used and required to push to code to cloudera/flume master.

The core flume team:

  • jmhsieh – Jon Hsieh
  • henryr – Henry Robinson
  • phunt – Patrick Hunt
  • esammer – Eric Sammer
  • waywardmonkeys – Bruce Mitchener

If you would like to submit patches that will be integrated as part of the flume trunk, we use a few lightweight mechanisms to track and ensure code quality. See the HowToContribute page for details.

The patches ideally meet the following criteria:

  • must pass all test cases cleanly.
  • should have a corresponding jira issue filed here .
  • should introduce no findbugs errors.
  • should not include any new libraries into core unless agreed upon in the jira. New libraries for build/test should be added and grabbed via ivy. New libraries that are ASF/MIT/BSD licensed can be included in plugins.

We use reviewboard for code reviews, hosted here . Ideally there would be a link in the jira to our reviewboard instance:

  • please add a comment to the jira saying that the issue’s patch is up for review.
  • post your patch to the review board by selecting the flume project, and uploading the patch. In the Reviewers::Groups enter ‘flume’. In Reviewers::people, add the specific persons you want your path reviewed by.
  • comments will be annotated in code.
    • If it is marked ‘ship it!’, it is ready to be pushed to trunk (cloudera/flume).
    • The flume team will likely cleanup trivial/minor issues, but if there are pervasive or design issues this may be several iterations. It helps to add comments about a design if it is something that is not easily compartmentalized.
  • A member of the core flume team will add a comment saying the patch has been added to the issue and then the issue will be closed.


  • Code conventions
  • Comment conventions