summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.pre-commit-config.yaml21
-rw-r--r--[-rwxr-xr-x]doc/source/contributor/development-environment.rst12
-rwxr-xr-xtools/flake8wrap.sh7
3 files changed, 40 insertions, 0 deletions
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
new file mode 100644
index 0000000000..8b64ef712f
--- /dev/null
+++ b/.pre-commit-config.yaml
@@ -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
diff --git a/doc/source/contributor/development-environment.rst b/doc/source/contributor/development-environment.rst
index 1fc5a72212..32b8f8334e 100755..100644
--- a/doc/source/contributor/development-environment.rst
+++ b/doc/source/contributor/development-environment.rst
@@ -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
=======================
diff --git a/tools/flake8wrap.sh b/tools/flake8wrap.sh
index ab3269df7f..c7478ac484 100755
--- a/tools/flake8wrap.sh
+++ b/tools/flake8wrap.sh
@@ -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