Contributing to django Organice¶
Official repositories: (kept in sync)
- Bitbucket: https://bitbucket.org/organice/django-organice
- GitHub: https://github.com/Organice/django-organice
Fork any of the repositories, make your code changes or additions, and place a pull request.
How To Get Started¶
After cloning your own fork from Bitbucket or GitHub make sure you have created and activated
a virtual environment for development, then run make develop
to install packages that help
you with your development tasks (tools for testing, translation, docs generation).
Guidelines¶
The primary interpreter target to develop against is Python 3. Ideally, use the highest one the
Django package integrated into our project is compatible with (3.4, at the moment). All other
supported Python versions are tested by the integration server as soon as you place the pull request.
You can run tests locally before pushing using tox
or setup.py test
, e.g.
$ tox # run all tests against all supported Python versions
$ tox -e py34,py27 # run all tests against Python 3.4 and 2.7 only
$ ./setup.py -q test -a tests/management # only run management tests against default python
Source code is supposed to satisfy flake8
default rules (with the exception of line length,
which can be up to 120 characters long). A pre-commit hook for Git is installed automatically
for your convenience when you run make develop
, so you shouldn’t even be able to commit when
flake8
is not passing. Additional static analysis is conducted by the QA server, and you
should make sure that code health goes up (or stays the same) with each contribution.
Help Wanted¶
- Writing tests (unit tests, BDD tests)
- New features on the roadmap (see README)
- Translations (blog posts, documentation, user interface)
Translation¶
Translation is done on Transifex for both the project text strings and the documentation.
The multilingual documentation is written in reStructuredText syntax, and built using Sphinx. As a translator you can simply jump on Transifex and get your hands dirty for your language. Some helpful background reading is available from Read the Docs and Transifex support.
Bumping Versions, Package, Release¶
As for the version numbers of django Organice we use Semantic Versioning. Changes from one to the next release are documented in the History.