Development of a feature for this repository should follow the workflow described by Vincent Driessen.
Here are the minimal procedure you should follow :
-
Create an issue on the github repository, describing the problem you will then address with your feature/fix. This is an important step as it forces one to think about the issue (to describe an issue to others, one has to think it through first).
-
Create a separate branch from
dev
, to work on
git checkout -b feature/myfeature dev
The convention is to always have feature/
in the branch name. The myfeature
part should describe shortly what the feature is about (separate words with _
).
- Try to follow these conventions for commit messages:
- Keep the subject line short (i.e. do not commit more than a few changes at the time)
- Use imperative for commit messages
- Do not end the commit message with a period You can use
git commit --amend
to edit the commit message of your latest commit (provided it is not already pushed on the remote server).
With --amend
you can even add/modify changes to the commit.
- Push your local branch on the remote server
origin
git push
If your branch does not exist on the remote server yet, git will provide you with instructions, simply follow them.
To run integration tests locally:
pip install -r tests/test_requirements.txt
The tests which are currently automated are linting tests, you can run them locally by copying the scripts under the comment
# command to run tests
of the .travis.yml
file.
We want more integration tests.
We do not have a suite of unit tests yet.
Follow the steps of the github help to create the PR.
Please note that you PR should be directed from your branch (for example myfeature
) towards the branch dev
.
Add a line Fix #<number of the issue created in Step 2.0>
in the description of your PR, so that when it is merged, it automatically closes the issue.
TODO elaborate on the pull request