Development

Development requirements

django-icomoon is developed with:

  • Test Development Driven (TDD) using Pytest;
  • Respecting flake and pip8 rules using Flake8;
  • Sphinx for documentation with enabled Napoleon extension (using Google style);
  • tox to run tests on various environments;

Every requirements are available in package extra requirements in section dev.

Install for development

First ensure you have pip and virtualenv packages installed then type:

git clone https://github.com/sveetch/django-icomoon.git
cd django-icomoon
make install

django-icomoon will be installed in editable mode from the latest commit on master branch with some development tools.

Unittests

Unittests are made to works on Pytest, a shortcut in Makefile is available to start them on your current development install:

make tests

Tox

To ease development against multiple Python versions a tox configuration has been added. You are strongly encouraged to use it to test your pull requests.

Before using it you will need to install tox, it is recommended to install it at your system level (tox dependancy is not in requirements):

sudo pip install tox

Then go in the django-icomoon directory, where the setup.py and tox.ini live and execute tox:

tox

Documentation

Use the Makefile action livedocs to serve documentation and automatically rebuild it when you change documentation files.

When environnement is activated, you can use following command from docs/ directory:

make livedocs

And go on http://localhost:8002/ or your server machine IP with port 8002.

Releasing

When you have a release to do, after you have correctly push all your commits you can use the shortcut:

make release

Which will build the package release and send it to Pypi with twine. You may think to configure your Pypi account on your machine to avoid to input it each time.

Contribution

  • Every new feature or changed behavior must pass tests, Flake8 code quality and must be documented.
  • Every feature or behavior must be compatible for all supported environment.