Contributing

Django REST framework JSON:API (aka DJA) should be easy to contribute to. If anything is unclear about how to contribute, please submit an issue on GitHub so that we can fix it!

Before writing any code, have a conversation on a GitHub issue to see if the proposed change makes sense for the project.

Setup development environment

Clone

To start developing on Django REST framework JSON:API you need to first clone the repository:

git clone https://github.com/django-json-api/django-rest-framework-json-api.git

Testing

To run tests clone the repository, and then:

 # Setup the virtual environment
 python3 -m venv env
 source env/bin/activate
 pip install -r requirements.txt

 # Format code
 black .

 # Run linting
 flake8

 # Run tests
 pytest

Running against multiple environments

You can also use the excellent tox testing tool to run the tests against all supported versions of Python and Django. Install tox globally, and then simply run:

tox

Setup pre-commit

pre-commit hooks is an additional option to check linting and formatting of code independent of an editor before you commit your changes with git.

To setup pre-commit hooks first create a testing environment as explained above before running below commands:

pip install pre-commit
pre-commit install

For maintainers

Create release

To upload a release (using version 1.2.3 as the example) first setup testing environment as above before running below commands:

python setup.py sdist bdist_wheel
twine upload dist/*
git tag -a v1.2.3 -m 'Release 1.2.3'
git push --tags

Add maintainer

In case a new maintainer joins our team we need to consider to what of following services we want to add them too: