Contributing

Installing requirements into active virtualenv

make init     # installs/upgrades setuptools, pip, pip-tools, etc.
make install  # installs project requirements

Testing

make lint                 # only lint
make test                 # run all tests with coverage
make test-unit            # run all unit tests
make test-integration     # run all integration tests

Building

make build    # builds a wheel and outputs it to the `dist` directory

Building Docs

make docs     # outputs sphinx html docs to docs/build/html

Makefile Targets

Makefile commands will only work inside a virtualenv

make init

Initializes the virtualenv with an up-to-date version of setuptools, pip, and pip-tools.

make install

Runs pip-compile with requirements.txt then runs pip-sync with the compiled requirements file .cache/requirements.txt. This makes sure you are running with the latest release of dependencies, assuming you haven’t pinned them in the requirements.txt file.

make fmt

Runs black and isort on all source in the project directory.

make lint

Runs pylint and pycodestyle on all packages in the project directory.

make test

Runs py.test tests located inside the tests/ folder and any test files nested in a package in the project directory. Coverage is only calculated in this target.

make test-unit

Same as make test excluding coverage and tests marked as integration.

make test-integration

Same as make test excluding coverage and tests not marked as integration.

make build

Builds a wheel using setuptools’ bdist_wheel command. Locally builds are tagged with dev (ex 0.1.0+dev). In the travis build environment the wheel is tagged with the job number (ex. 0.1.0+build1.1).

make clean

Cleans the project of compiled python files and files generated by the above commands such as build and dist directories.