pre-commit: Migrate pep8 target to pre-commit

This should be identical to what we had previously.

We also modify the various docs-related targets to minimise duplication,
clean up our test dependencies to remove those we don't use (plus
linters, which we don't use at runtime).

Change-Id: Iaf73bf225ee585fd6f6ea2e4cc838ccec59fc59a
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
This commit is contained in:
Stephen Finucane
2025-05-20 11:50:11 +01:00
parent de53d622a2
commit 46b4c63a38
5 changed files with 32 additions and 69 deletions

View File

@@ -12,6 +12,7 @@ repos:
exclude: '.*\.(svg)$'
- id: check-byte-order-marker
- id: check-executables-have-shebangs
- id: check-json
- id: check-merge-conflict
- id: debug-statements
- repo: https://github.com/PyCQA/bandit
@@ -42,6 +43,16 @@ repos:
- flake8-import-order~=0.18.2
- neutron
exclude: '^(doc|releasenotes|tools)/.*$'
- repo: local
hooks:
- id: check-unit-test-structure
name: check unit test structure
language: script
require_serial: true
pass_filenames: false
entry: './tools/check_unit_test_structure.sh'
files: '^.*\.py$'
exclude: '^(doc|releasenotes|tools)/.*$'
# TODO(slaweq): enable pylint check once all issues in the current code will
# be solved
# - id: pylint

View File

@@ -51,7 +51,6 @@
"name": "net2",
"port_security_enabled": true,
"project_id": "26a7980765d0414dbc1fc1f88cdb7e6e",
"qos_policy_id": null,
"provider:network_type": "local",
"provider:physical_network": null,
"provider:segmentation_id": null,

View File

@@ -1,15 +1,6 @@
hacking>=6.1.0,<6.2.0 # Apache-2.0
bandit>=1.1.0 # Apache-2.0
coverage>=4.0 # Apache-2.0
ddt>=1.0.1 # MIT
fixtures>=3.0.0 # Apache-2.0/BSD
flake8-import-order>=0.18.0,<0.19.0 # LGPLv3
pylint>=2.2.0 # GPLv2
isort==4.3.21 # MIT
python-subunit>=1.0.0 # Apache-2.0/BSD
hacking>=6.1.0,<6.2.0 # Apache-2.0
oslotest>=3.2.0 # Apache-2.0
stestr>=1.0.0 # Apache-2.0
testresources>=2.0.0 # Apache-2.0/BSD
testscenarios>=0.4 # Apache-2.0/BSD
testtools>=2.2.0 # MIT

View File

@@ -1,26 +0,0 @@
#! /bin/sh
# Copyright (C) 2017 Midokura SARL.
# All Rights Reserved.
#
# Licensed under the Apache License, Version 2.0 (the "License"); you may
# not use this file except in compliance with the License. You may obtain
# a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations
# under the License.
set -e
DIR=api-ref/source/v2/samples
find $DIR -name "*.json" | while read f; do
if ! python -m json.tool $f > /dev/null; then
echo "$f had errors."
exit 1
fi
done

52
tox.ini
View File

@@ -20,34 +20,24 @@ allowlist_externals = bash
commands =
stestr run {posargs}
[testenv:mypy]
deps = {[testenv:pep8]deps}
commands =
mypy
[testenv:pep8]
description =
Run style checks.
deps =
{[testenv]deps}
mypy==1.14.1
pre-commit~=4.2 # MIT
pylint~=3.0 # GPLv2
commands =
flake8
bash {toxinidir}/tools/check_samples.sh
bash {toxinidir}/tools/check_unit_test_structure.sh
bash ./tools/coding-checks.sh --pylint '{posargs}'
{[testenv:bandit]commands}
{[testenv:mypy]commands}
[testenv:releasenotes]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html
pre-commit run --all-files --show-diff-on-failure
pylint --rcfile=.pylintrc --output-format=colorized neutron_lib
[testenv:venv]
commands = {posargs}
[testenv:cover]
deps =
{[testenv]deps}
coverage>=4.0 # Apache-2.0
setenv =
{[testenv]setenv}
PYTHON=coverage run --source neutron_lib --parallel-mode
@@ -62,7 +52,8 @@ deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
commands =
sphinx-build -W -b html doc/source doc/build/html
[testenv:pdf-docs]
deps = {[testenv:docs]deps}
@@ -73,27 +64,24 @@ commands =
make -C doc/build/pdf
[testenv:api-ref]
allowlist_externals = rm
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
deps = {[testenv:docs]deps}
commands =
rm -rf api-ref/build
sphinx-build -W -b html -d api-ref/build/doctrees api-ref/source api-ref/build/html
sphinx-build -W -b html api-ref/source api-ref/build/html
[testenv:linkcheck]
deps =
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
-r{toxinidir}/requirements.txt
-r{toxinidir}/doc/requirements.txt
allowlist_externals = rm
deps = {[testenv:docs]deps}
commands =
rm -rf api-ref/build
sphinx-build -W -b linkcheck api-ref/source api-ref/build/linkcheck
rm -rf doc/build
sphinx-build -W -b linkcheck api-ref/source api-ref/build/linkcheck
sphinx-build -W -b linkcheck doc/source doc/build/linkcheck
[testenv:releasenotes]
deps = {[testenv:docs]deps}
commands =
sphinx-build -W -b html releasenotes/source releasenotes/build/html
[testenv:debug]
commands = oslo_debug_helper -t neutron_lib/tests/unit {posargs}