This is a Jazzband project. By contributing you agree to abide by the Contributor Code of Conduct and follow the guidelines.
Feel free to open pull requests before you've finished your code or tests. Opening your pull request soon will allow others to comment on it sooner.
A checklist of things to remember when making a feature:
- Write tests if applicable
- Note important changes in the CHANGES file
- Update the README file if needed
- Update the documentation if needed
- Add yourself to the AUTHORS file
The Makefile can be used for generating documentation and running tests.
To install the requirements necessary for generating the documentation and running tests:
make init
This will install:
- tox: used for running the tests against all supported versions of Django and Python as well as running tasks like lint, format, docs
- coverage: used for analyzing test coverage for tests
If not using a virtualenv, the command should be prepended with sudo
.
To regenerate the documentation run:
make docs
Please add tests for your pull requests and make sure your changes don't break existing tests.
To run tox and generate an HTML code coverage report (available in the
htmlcov
directory):
make test
To quickly run the tests against a single version of Python and Django (note: you must
pip install django
beforehand):
python runtests.py
We make use of black for code formatting.
You can install and run it along with other linters through pre-commit:
pre-commit install pre-commit run
Once you install pre-commit it will sanity check any commit you make. Additionally, the CI process runs this check as well.
In order to add translations, refer to Django's translation docs and follow these steps:
- Ensure that Django is installed
- Invoke
django-admin makemessages -l <LOCALE NAME>
in the repository's root directory. - Add translations to the created
simple_history/locale/<LOCALE NAME>/LC_MESSAGES/django.po
file. - Compile these with
django-admin compilemessages
. - Commit and publish your translations as described above.