Contributing

To get up and running quickly, fork the github repository and make all your changes in your local clone.

Git-flow is prefered as git workflow, but as long as you make pull requests against the develop branch, all should be well. Pull requests should always have tests, and if relevant, documentation updates.

Feel free to create unfinished pull-requests to get the tests to build and get work going, someone else might always want to pick up the tests and/or documentation.

Testing

For testing the standard unittest2 library is used, contrary to Django’s test framework. The reason is simple: speed. Django choices doesn’t touch the database in any way, so the standard library unit tests are fine.

To run the tests in your (virtual) environment, simple execute

python runtests.py

This will run the tests with the current python version and Django version.

To run the tests on all supported python/Django versions, use tox.

pip install tox
tox

If you want to speed this up, you can also use detox. This library will run as much in parallel as possible.

Documentation

The documentation is built with Sphinx. Run make to build the documentation:

You can now open _build/index.html.

Coding style

Please stick to PEP8, and use pylint or similar tools to check the code style.