From 5252001658b97cd15419393fb011ce268d1a639d Mon Sep 17 00:00:00 2001 From: Federico Ressi Date: Thu, 2 Jul 2020 15:46:42 +0200 Subject: [PATCH] Introduce pre-commit hooks for linters verifications Change-Id: Icd098df8adf72bf53955b0f07d9ed606c7803296 --- .pre-commit-config.yaml | 30 ++++++++++++++++++++++++++ LICENSE | 1 - Vagrantfile | 1 - doc/Makefile | 2 +- doc/requirements.txt | 13 ++++++----- linters-requirements.txt | 1 + lower-constraints.txt | 1 - requirements.txt | 6 +++--- roles/tobiko-common/defaults/main.yaml | 1 - tox.ini | 6 +++++- 10 files changed, 46 insertions(+), 16 deletions(-) create mode 100644 .pre-commit-config.yaml diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 000000000..aec4347cb --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,30 @@ +--- + +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v3.1.0 + hooks: + - id: check-added-large-files + - id: check-byte-order-marker + - id: check-case-conflict + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: check-symlinks + - id: check-yaml + - id: detect-private-key + - id: end-of-file-fixer + - id: forbid-new-submodules + - id: requirements-txt-fixer + args: [requirements.txt, test-requirements.txt, extra-requirements.txt, linters-requirements.txt, doc/requirements.txt, infrared_plugin/requirements.txt] + - id: trailing-whitespace + +# - repo: https://github.com/adrienverge/yamllint.git +# rev: v1.23.0 +# hooks: +# - id: yamllint +# files: \.(yaml|yml)$ + +# - repo: https://opendev.org/openstack/bashate.git +# rev: 2.0.0 +# hooks: +# - id: bashate diff --git a/LICENSE b/LICENSE index 68c771a09..67db85882 100644 --- a/LICENSE +++ b/LICENSE @@ -173,4 +173,3 @@ defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. - diff --git a/Vagrantfile b/Vagrantfile index 63eead30d..fc40b5d30 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -121,4 +121,3 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| end end - diff --git a/doc/Makefile b/doc/Makefile index 69fe55ecf..ba501f6f5 100644 --- a/doc/Makefile +++ b/doc/Makefile @@ -16,4 +16,4 @@ help: # Catch-all target: route all unknown targets to Sphinx using the new # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). %: Makefile - @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) \ No newline at end of file + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/doc/requirements.txt b/doc/requirements.txt index cafff7f4a..6da350d32 100644 --- a/doc/requirements.txt +++ b/doc/requirements.txt @@ -2,15 +2,14 @@ # of appearance. Changing the order has an impact on the overall integration # process, which may cause wedges in the gate later. -oslotest>=3.2.0 # Apache-2.0 -oslo.log>=3.36.0 # Apache-2.0 -reno>=2.5.0 # Apache-2.0 -sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD -sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD -sphinx_rtd_theme>=0.4.2,< 1 # Apache-2.0 - # As openstack job build-reno-releasenotes and Read The Docs page support only # one single requirements file for a project, we need to have one such file # which will include all project requirements -r ../requirements.txt -r ../extra-requirements.txt +oslo.log>=3.36.0 # Apache-2.0 +oslotest>=3.2.0 # Apache-2.0 +reno>=2.5.0 # Apache-2.0 +sphinx!=1.6.6,!=1.6.7,>=1.6.2,<2.0.0;python_version=='2.7' # BSD +sphinx!=1.6.6,!=1.6.7,>=1.6.2;python_version>='3.4' # BSD +sphinx_rtd_theme>=0.4.2,< 1 # Apache-2.0 diff --git a/linters-requirements.txt b/linters-requirements.txt index 8945dab89..0a1b5fff2 100644 --- a/linters-requirements.txt +++ b/linters-requirements.txt @@ -4,4 +4,5 @@ ansible-lint==4.2.0 # MIT flake8>=3.8.1 # MIT flake8-import-order==0.12 # LGPLv3 mypy>=0.740 # MIT +pre-commit >= 2.6.0 # MIT pylint>=2.5.2 # GPLv2 diff --git a/lower-constraints.txt b/lower-constraints.txt index 0ccb7ceac..70210d90e 100644 --- a/lower-constraints.txt +++ b/lower-constraints.txt @@ -26,4 +26,3 @@ six==1.11.0 sshtunnel==0.1.5 stestr==3.0.0 testtools==2.2.0 - diff --git a/requirements.txt b/requirements.txt index ba3575731..672b74c33 100644 --- a/requirements.txt +++ b/requirements.txt @@ -2,9 +2,9 @@ docker>=4.0.0 # Apache-2.0 fixtures>=3.0.0 # Apache-2.0/BSD -keystoneauth1>=3.18.0 # Apache-2.0 Jinja2>=2.10.0 # BSD junitxml>=0.7.0 # MIT +keystoneauth1>=3.18.0 # Apache-2.0 netaddr>=0.7.18 # BSD neutron-lib>=1.25.0 # Apache-2.0 oslo.config>=5.2.0 # Apache-2.0 @@ -12,13 +12,13 @@ oslo.log>=3.36.0 # Apache-2.0 paramiko>=2.4.0 # LGPLv2.1 pbr>=4.0.4 # Apache-2.0 podman>=1.6.0 # Apache-2.0 -python-heatclient>=1.5.0 # Apache-2.0 python-glanceclient>=2.16.0 # Apache-2.0 +python-heatclient>=1.5.0 # Apache-2.0 python-neutronclient>=6.7.0 # Apache-2.0 python-novaclient>=9.1.0 # Apache-2.0 python-octaviaclient>=1.9.0 # Apache-2.0 python-openstackclient>=3.12.0 # Apache-2.0 -stestr>=2.0.0 # Apache-2.0 six>=1.11.0 # MIT sshtunnel>=0.1.5.0 # MIT +stestr>=2.0.0 # Apache-2.0 testtools>=2.2.0 # MIT diff --git a/roles/tobiko-common/defaults/main.yaml b/roles/tobiko-common/defaults/main.yaml index 1378cb119..ac6891a65 100644 --- a/roles/tobiko-common/defaults/main.yaml +++ b/roles/tobiko-common/defaults/main.yaml @@ -65,4 +65,3 @@ test_collect_dir: '{{ test_src_dir | realpath }}/{{ test_report_name }}' upper_constraints_file: 'https://opendev.org/openstack/requirements/raw/branch/master/upper-constraints.txt' - diff --git a/tox.ini b/tox.ini index 1aef5163c..fc288ecf1 100644 --- a/tox.ini +++ b/tox.ini @@ -95,6 +95,10 @@ whitelist_externals = bash deps = {[testenv:pep8]deps} envdir = {toxworkdir}/pep8 commands = + pre-commit --version + pre-commit autoupdate + pre-commit run --all-files + pre-commit install {[testenv:pep8]commands} mypy --ignore-missing-imports tobiko/ # Ansible lint @@ -230,7 +234,7 @@ commands = basepython = {[testenv:py3]basepython} envdir = {toxworkdir}/docs deps = - {[testenv]deps} + {env:TOX_CONSTRAINTS} -r{toxinidir}/doc/requirements.txt