Developing pyramid-jsonapi

Development

This project is set up to use tox to create a suitable testing environment. You must first install tox - either system-wide, or in it’s own virtualenv:

Set up the tox environment as follows:

# To install tox
python3 -mvenv toxenv
toxenv/bin/pip install tox

# To run tox and test the project:
toxenv/bin/tox

Note: The toxenv virtualenv only exists to deliver tox, NOT for development.

tox creates it’s own virtualenvs for testing in .tox/ which can be used for code testing and development. These contain all of the dependencies for both the project and testing, as well as the local pyramid-jsonapi

You can use these in the usual way for your own testing and development, e.g.:

source .tox/py3/bin/activate

Contribution

All contributions are welcome! You can contribute by making pull requests to the git repo: https://github.com/colinhiggs/pyramid-jsonapi

Travis (https://travis-ci.org/colinhiggs/pyramid-jsonapi) is run against all PRs and commits to ensure consistent, high-quality code.

Tests

unittest tests should be created for all new code. Coverage can be reviewed at: https://coveralls.io/github/colinhiggs/pyramid-jsonapi

PEP8

Code should pass PEP8 validation:

  • long lines should be avoided, but not at the expense of readability. (pycodestyle --ignore=E501 is used when testing).

pylint

Code should pass pylint validation:

  • # pylint: disable=xxx is allowed where there is a clear reason for doing so. Please document as necessary.

Idiomatic Python

Is to be preferred wherever possible.

Python Versions

Currently pyramid_jsonapi is built and tested against python 3. 3.4 or later is recommended.

Versioning

Semantic versioning should be used, see PEP440 - Version Identification and Dependency Specification for details.

Documentation

Documentation is built using sphinx. This is done automatically using Travis for certain builds (e.g. tagged releases) and pushed to the gh-pages branch.

Note that the documentation uses the sphinx-rtd-theme

To manually build the documentation:

docs/sphinx.sh

Documentation will be written to docs/build/ (in .gitignore).