Integrate 'pre-commit'
This nifty tool provides a extensible way to configure pre-commit hooks to do everything from running linters to spellchecking [1] and has already been adopted by a few OpenStack projects [2]. Let's start using it as a faster, more automatic alternative to the 'fast8' tox target and iterate on it as we find more things to use it for. The 'fast8' target is not deprecated though a note is included for end-users to alert them to this great new tool. Note that the 'check-executables-have-shebangs' actually failed and highlighted that the 'contributor/development-environment.rst' document was marked as executable when it shouldn't have been. This is corrected. [1] https://pre-commit.com/ [2] https://review.opendev.org/#/q/file:.pre-commit-config.yaml Change-Id: I256e75eceeb3495dce04885ca42d16adb4160cf3 Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
This commit is contained in:
parent
23995b4f99
commit
5f8dd65f6c
|
@ -0,0 +1,21 @@
|
|||
---
|
||||
repos:
|
||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||
rev: v2.4.0
|
||||
hooks:
|
||||
- id: trailing-whitespace
|
||||
- id: mixed-line-ending
|
||||
args: ['--fix', 'lf']
|
||||
- id: check-byte-order-marker
|
||||
- id: check-executables-have-shebangs
|
||||
- id: check-merge-conflict
|
||||
- id: debug-statements
|
||||
- id: flake8
|
||||
additional_dependencies:
|
||||
- hacking>=1.1.0,<1.2.0
|
||||
- id: check-yaml
|
||||
files: .*\.(yaml|yml)$
|
||||
- repo: https://github.com/Lucas-C/pre-commit-hooks
|
||||
rev: v1.1.7
|
||||
hooks:
|
||||
- id: remove-tabs
|
|
@ -163,6 +163,18 @@ Note that some unit and functional tests use a database. See the file
|
|||
``tools/test-setup.sh`` on how the databases are set up in the
|
||||
OpenStack CI environment and replicate it in your test environment.
|
||||
|
||||
Using the pre-commit hook
|
||||
=========================
|
||||
|
||||
Nova makes use of the `pre-commit framework <https://pre-commit.com/>`__ to
|
||||
allow running of some linters on each commit. This must be enabled locally to
|
||||
function:
|
||||
|
||||
.. code-block:: shell
|
||||
|
||||
$ pip install --user pre-commit
|
||||
$ pre-commit install --allow-missing-config
|
||||
|
||||
Using a remote debugger
|
||||
=======================
|
||||
|
||||
|
|
|
@ -13,8 +13,15 @@ if test "x$1" = "x-HEAD" ; then
|
|||
shift
|
||||
files=$(git diff --name-only HEAD~1 | tr '\n' ' ')
|
||||
echo "Running flake8 on ${files}"
|
||||
echo ""
|
||||
echo "Consider using the 'pre-commit' tool instead."
|
||||
echo ""
|
||||
echo " pip install --user pre-commit"
|
||||
echo " pre-commit install --allow-missing-config"
|
||||
echo ""
|
||||
diff -u --from-file /dev/null ${files} | flake8 --diff "$@"
|
||||
else
|
||||
echo "Running flake8 on all files"
|
||||
echo ""
|
||||
exec flake8 "$@"
|
||||
fi
|
||||
|
|
Loading…
Reference in New Issue