docs(test): Document how to install the VCS hooks

Move the VCS hook installation to a dedicated target to emphasize that it's opt-in.
Document why one might use the hooks and document how to install them.
This commit is contained in:
Ross Patterson 2020-09-27 09:40:36 -07:00
parent b8268500ef
commit 93ee0b92d2
2 changed files with 15 additions and 6 deletions

View File

@ -29,20 +29,20 @@ APPNAME=tahoe-lafs
default:
@echo "no default target"
.PHONY: build
## Set up and build for local development
build: .tox/log/create-venvs.log .git/hooks/pre-commit .git/hooks/pre-push
.PHONY: install-vcs-hooks
## Install the VCS hooks to run linters on commit and all tests on push
install-vcs-hooks: .git/hooks/pre-commit .git/hooks/pre-push
.PHONY: test
## Run all tests and code reports
test: build
test: .tox/log/create-venvs.log
# Run codechecks first since it takes the least time to report issues early.
tox --develop -e codechecks
# Run all the test environments in parallel to reduce run-time
tox --develop -p auto -e 'py27,py36,pypy27'
.PHONY: test-py3-all
## Run all tests under Python 3
test-py3-all: build
test-py3-all: .tox/log/create-venvs.log
tox --develop -e py36 allmydata
# This is necessary only if you want to automatically produce a new

View File

@ -286,7 +286,16 @@ result in a "all tests passed" mesage::
PASSED (skips=7, expectedFailures=3, successes=1176)
__________________________ summary ___________________________________
py27: commands succeeded
congratulations :)
congratulations :)
You may also install VCS/git hooks to run linters and code checks to catch
common errors before each commit and to run the full self-test suite to find
less obvious regressions before each push to a remote. Not that running the
full self-test suite takes several minutes to expecting pushing to take some
time. If you can't or don't want to wait for the hooks in some cases, use
the ``--no-verify`` option to ``git commit ...`` or ``$ git push ...``::
$ make install-vcs-hooks
Common Problems
===============