diff options
Diffstat (limited to 'docs/hacking/contributing.rst')
-rw-r--r-- | docs/hacking/contributing.rst | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/docs/hacking/contributing.rst b/docs/hacking/contributing.rst new file mode 100644 index 0000000..8d83593 --- /dev/null +++ b/docs/hacking/contributing.rst @@ -0,0 +1,60 @@ +:LastChangedDate: $LastChangedDate$ +:LastChangedRevision: $LastChangedRevision$ +:LastChangedBy: $LastChangedBy$ + +.. _contributing: + +Contributing +============ + +* Send your merge requests to https://0xacab/leap/bitmask-dev, it will be + subject to code-review. +* Please base your branch for master, and keep it rebased when you push. +* After review, please squash your commits. + + +Coding conventions +--------------------------------- + +* Follow pep8 for all the python code. +* Git messages should be informative. +* There is a pre-commit hook ready to be used in the ``docs/hooks`` folder, + alongside some other hooks to do autopep8 on each commit. + +.. include:: ../hooks/leap-commit-template.README + :literal: + +Dependencies +---------------------------------- + +We try hard not to introduce any new dependencies at this moment. If you really +have to, the packages bitmask depends on have to be specified *both* in the +setup.py and the pip requirements file. + +Don't introduce any pinning in the setup.py file, they should go in the +requirements files (mainly ``pkg/requirements.pip``). + + +Signing your commits +--------------------------------- + +For contributors with commit access, you **should** sign all your commits. If +you are merging some code from external contributors, you should sign their +commits. + +For handy alias for sign and signoff commits from external contributors add to +your gitconfig:: + + [alias] + # Usage: git signoff-rebase [base-commit] + signoff-rebase = "!GIT_SEQUENCE_EDITOR='sed -i -re s/^pick/e/' sh -c 'git rebase -i $1 && while test -f .git/rebase-merge/interactive; do git commit --amend --signoff --no-edit && git rebase --continue; done' -" + +Merging code +--------------------------------- + +We avoid merge commits into master, they make a very messy history. Put this +in your gitconfig to only allow the merges that can be resolved as a +fast-forward:: + + [merge] + ff = only |