Skip to content

Contributing

Thomas Leibovici edited this page Nov 3, 2015 · 11 revisions

Communication channels

The robinhood community exchanges on three mailing lists:

Subscribing to any of them can be done from here: http://sourceforge.net/p/robinhood/mailman/?source=navbar

Source code

The source is available on https://github.com/cea-hpc/robinhood.git There are currently (Nov. 2015) two active branches:

  • master: which corresponds to the current stable release branch (2.5.x)
  • b_3.0: which is the development branch for the next major release (v3.0) that is to be released in a few months

It is not expected that master (i.e. 2.5.x branch) receives any major change now, only bug fixes. Significant developments should happen on b_3.0.

Coding conventions

  • Code must use 4-spaces indent
  • No space after '(' or before ')'
  • Vertically align opening and closing braces of code blocks: functions, if/else blocks, while, for, switch...
  • Prefer lower_case function and variable names to CamelCase.
  • Use UPPER_CASE for defines and macros

If you edit a part of code that do not follow these conventions, you are welcome to modify it to match these style rules.

Testing your patch

Before you submit a patch, make sure you don't break the build for both Lustre and Posix modes. On a machine with Lustre installed, you can check this by running:

./configure && make rpm
./configure --disable-lustre && make rpm

Then run the test suite (procedure for testing robinhood 2.5.x with Lustre):

# build a robinhood test tree (in a filesystem accessible to root)
cd /tmp/robinhood-2.5.5
./configure --with-purpose=LUSTRE_HSM
make -j8

# create a test Lustre filesystem as "/mnt/lustre" using llmount.sh
OSTCOUNT=4 OSTSIZE=400000 /usr/lib64/lustre/tests/llmount.sh

# set robinhood test mode e.g. for Lustre/HSM
export PURPOSE=LUSTRE_HSM

# prepare filesystem resources for tests (create a changelog reader, start a posix copytool, ...)
cd /tmp/robinhood-2.5.5/tests/lustre_fs
./1-test_setup.sh

# run all tests (~30min)
./2-run-tests.sh
# or run only a subset
./2-run-tests.sh 100a,226,601

Submitting a patch

Contributions can be pushed for review on gerrithub: https://review.gerrithub.io/#/q/project:cea-hpc/robinhood Once subscribed to github and gerrithub, do this to set up gerrit hub in a git repository:

git remote add gerrithub ssh://review.gerrithub.io/cea-hpc/robinhood

Then push to the desired branch.

git push gerrithub HEAD:refs/for/master

or

git push gerrithub HEAD:refs/for/b_3.0

Once pushed, add reviewers: Thomas Leibovici and Henri Doreau. Your patch will then be considered for inclusion.

Clone this wiki locally