[tox]
minversion = 1.6.0
-envlist = docs,pep8
+envlist = docs,pre-commit
+# TODO: Include docs when it starts performing strict checks.
skipsdist = true
[testenv:docs]
-deps = sphinx
-commands = sphinx-build -b html -d {envtmpdir}/doctrees ./docs/ {envtmpdir}/html
+basepython = python3
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -W -n -b html -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
-[testenv:pep8]
-deps =
- flake8
- pep8==1.7.0
-commands = flake8
-
-[flake8]
-show-source = True
-max-line-length = 120
-
-# - Select E121, E123, E126, E226, E241, E242 and E704 which are turned OFF
-# by default but represent guidelines accepted by us.
-# - Do not select E133 because it is incompatible with E123 which was
-# selected instead.
-# - It turns out that now all checks except E133 are enabled so the select
-# can be simplified to be just "E,W". However a new version could change
-# that (select E133 instead of E123) but that should be caught by the
-# verify job.
-select = E,W
-exclude = docs/conf.py
+[testenv:pre-commit]
+basepython = python3
+deps = pre-commit
+commands =
+ pre-commit install --hook-type commit-msg
+ pre-commit run --all-files --show-diff-on-failure
+ pre-commit run gitlint --hook-stage commit-msg --commit-msg-filename .git/COMMIT_EDITMSG