Skip to content

Contributing

Thomas Leibovici edited this page May 20, 2016 · 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 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 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.

Clone this wiki locally