Skip to content

Contributing

Thomas Leibovici edited this page Apr 12, 2017 · 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

  • The most active branch is currently 'master'. It corresponds to the next version of robinhood (v3.0).
  • Previous version (v2.5.5.x) is available in branch 'b_2.5'.

Coding convention

  • Kernel style, except for indentation : 4 spaces, no tabs
  • Preferably, when an operation doesn't fit on a single line, place operator at the beginning of next line:

 if ((x == 1 || x == 23 || x == 42)
     && (y == 1 || y == 2 || a == 3
         || z == 1))
  • Some older parts of the code may be in a different style. If you edit a part of code that do not follow the conventions above, 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 3.0 with Lustre):

# build a robinhood test tree (in a filesystem accessible to root)
cd /tmp/robinhood-3.0
./configure
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-3.0/tests/test_suite
./1-test_setup_lustre.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_2.5

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