diff --git a/docs/source/dev/index.rst b/docs/source/dev/index.rst new file mode 100644 index 000000000..dfaf94f01 --- /dev/null +++ b/docs/source/dev/index.rst @@ -0,0 +1,85 @@ +Contribution Guidelines +======================= + +The repository centralises all the Ansible roles. The roles are all part of the Galaxy. +We love contribution and we love giving visibility to our contributors, this is why all the **commits must be signed-off**. + +Mailing list +------------ +Please register the mailing list at http://lists.ceph.com/listinfo.cgi/ceph-ansible-ceph.com + +IRC +--- +Feel free to join us in the channel #ceph-ansible of the OFTC servers + +Github +------ +The main github account for the project is at https://github.com/ceph/ceph-ansible/ + +Submit a patch +-------------- + +To start contributing just do:: + + $ git checkout -b my-working-branch + $ # do your changes # + $ git add -p + +If your change impacts a variable file in a role such as ``roles/ceph-common/defaults/main.yml``, you need to generate a ``group_vars`` file:: + + $ ./generate_group_vars_sample.sh + +You are finally ready to push your changes on Github:: + + $ git commit -s + $ git push origin my-working-branch + +Worked on a change and you don't want to resend a commit for a syntax fix? + +:: + + $ # do your syntax change # + $ git commit --amend + $ git push -f origin my-working-branch + +PR Testing +---------- +Pull Request testing is handled by jenkins. All test must pass before your PR will be merged. + +All of tests that are running are listed in the github UI and will list their current status. + +If a test fails and you'd like to rerun it, comment on your PR in the following format:: + + jenkins test $scenario_name + +For example:: + + jenkins test luminous-ansible2.3-journal_collocation + +Backporting changes +------------------- + +If a change should be backported to a ``stable-*`` Git branch: + +- Mark your PR with the GitHub label "Backport" so we don't lose track of it. +- Fetch the latest updates into your clone: ``git fetch`` +- Determine the latest available stable branch: + ``git branch -r --list "origin/stable-[0-9].[0-9]" | sort -r | sed 1q`` +- Create a new local branch for your PR, based on the stable branch: + ``git checkout --no-track -b my-backported-change origin/stable-2.2`` +- Cherry-pick your change: ``git cherry-pick -x (your-sha1)`` +- Create a new pull request against the ``stable-2.2`` branch. +- Ensure that your PR's title has the prefix "backport:", so it's clear + to reviewers what this is about. +- Add a comment in your backport PR linking to the original (master) PR. + +All changes to the stable branches should land in master first, so we avoid +regressions. + +Once this is done, one of the project maintainers will tag the tip of the +stable branch with your change. For example:: + + git checkout stable-2.2 + git pull --ff-only + git tag v2.2.5 + git push origin v2.2.5 diff --git a/docs/source/index.rst b/docs/source/index.rst index d059810c2..998827efd 100644 --- a/docs/source/index.rst +++ b/docs/source/index.rst @@ -167,6 +167,16 @@ by setting the ``osd_scenario`` configuration option. osds/scenarios +Contribution +============ + +See the following section for guidelines on how to contribute to ``ceph-ansible``. + +.. toctree:: + :maxdepth: 1 + + dev/index + Testing =======