Contributing to django Organice

Official repositories: (kept in sync)

  1. Bitbucket: https://bitbucket.org/organice/django-organice
  2. 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.