Commit Graph

14 Commits

Author SHA1 Message Date
Stephen Finucane 7116d8e5f1 pre-commit: Bump linter versions
Change-Id: I6825266702a7a4626b0c80bebdcb83cbb43849ea
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-20 18:33:33 +00:00
Stephen Finucane e3e35ba2d0 pre-commit: Add mypy
Add mypy so we can run these checks as part of our linting step. Note
that mypy is the last item in the list of checks since flake8 is going
to catch e.g. syntax issues which should be addressed first.

This also allows us to drop use of mypywrap: rather than wrapping mypy,
we can make use of mypy's configuration to specify the files we wish to
run checks on.

Change-Id: Ie51401ead4e31ccd70ab833c59cb397f802ff188
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-20 18:31:47 +00:00
Stephen Finucane 2ffdf2e917 tox: Use pre-commit for pep8 target
pre-commit is an effective linter runner. No need to duplicate things.
We are able to remove our homegrown "is this valid JSON" check by using
the one built into pre-commit. Beautiful!

Change-Id: I89398d4a1c5d4e7205f5f9c499cba0b4ff90fa46
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-19 16:37:57 +00:00
Zuul 5e914c27a0 Merge "Bump hacking version" 2023-12-18 21:20:36 +00:00
Sean Mooney f4852f4c81 [codespell] fix final typos and enable ci
This chnage adds the pre-commit config and
tox targets to run codespell both indepenetly
and via the pep8 target.

This change correct all the final typos in the
codebase as detected by codespell.

Change-Id: Ic4fb5b3a5559bc3c43aca0a39edc0885da58eaa2
2023-12-15 12:32:42 +00:00
Stephen Finucane 3973fc393c Bump hacking version
This bumps the version of flake8 and resolves some erroneous failures in
f-strings. A number of new E721 (do not compare types) class errors are
picked up, which are all addressed.

Change-Id: I7a1937b107ff3af8d1e5fe23fc32b120ef4697f7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-12-14 10:54:26 +00:00
Stephen Finucane bb03564cfd pre-commit: Use native hacking pre-commit hook
Change-Id: I9401cf21f00c669f81e6e279ec20736e34664b96
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-10-02 11:19:57 +01:00
Stephen Finucane 964c902287 pre-commit: Update plugin versions
Generated with 'pre-commit autoupdate' plus a manual update for the
local hacking plugin.

Change-Id: I4665d977bb8c720975d9259b4da0471c76e443a7
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2023-10-02 11:19:46 +01:00
Stephen Finucane 3fddfa9fc2 pre-commit: Sync hacking version, bump plugins
Sync the hacking version used with 'test-requirements.txt'. While we're
at it, bump the various plugins to their latest versions.

Change-Id: I851f67bd04950a30e88f9a737462f98559412cd9
Signed-off-by: Stephen Finucane <stephenfin@redhat.com>
2022-04-05 13:02:18 +01:00
Sean Mooney f3d48000b1 Add autopep8 to tox and pre-commit
autopep8 is a code formating tool that makes python code pep8
compliant without changing everything. Unlike black it will
not radically change all code and the primary change to the
existing codebase is adding a new line after class level doc strings.

This change adds a new tox autopep8 env to manually run it on your
code before you submit a patch, it also adds autopep8 to pre-commit
so if you use pre-commit it will do it for you automatically.

This change runs autopep8 in diff mode with --exit-code in the pep8
tox env so it will fail if autopep8 would modify your code if run
in in-place mode. This allows use to gate on autopep8 not modifying
patches that are submited. This will ensure authorship of patches is
maintianed.

The intent of this change is to save the large amount of time we spend
on ensuring style guidlines are followed automatically to make it
simpler for both new and old contibutors to work on nova and save
time and effort for all involved.

Change-Id: Idd618d634cc70ae8d58fab32f322e75bfabefb9d
2021-11-08 12:37:27 +00:00
Stephen Finucane e3da87a45d Switch to hacking 2.x
This bumps the version of flake8 and pycodestyle to something much
newer, which resolves a long-standing warning about nested sets and
allows us to use new fangled features like f-strings if we so choose.

Change-Id: I0bb9077f1cea2243b7945e87cfa140f9cf89d558
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-01-17 11:30:40 +00:00
Stephen Finucane 4b8560563a pre-commit: Use Python 3 to run checks
We need this otherwise flake8 will run in Python 2 mode, which results
in syntax errors for Python 3-only syntax like kwarg-only functions.

Change-Id: Id55dbce1d9a19ccaa4fe605985fb165e9b3ab48c
Signed-off-by: Stephen Finucane <sfinucan@redhat.com>
2020-01-14 14:59:08 +00:00
Monty Taylor e7cc5efd20 Keep pre-commit inline with hacking and fix whitespace
The flake8 hook for pre-commit installs its own flake8 which is
not what hacking is pinned to. This results in a bunch of errors.
By doing a local hook we can cause these to be the same.

There are flake8 exclusions in tox.ini that need to be used
in pre-commit. Also we should exclude svg files from the whitespace
modifications, because who cares.

Once those are fixed, running pre-commit -a fixes some whitespace
issues. While the normal use isn't to run -a - if someone does make
a patch that touches any of these they'll get erroneous unrelated
errors compared to their lower work - so fix all of the existing
issues, which are mostly space-at-end-of-line issues it seems.

Change-Id: I78e753492e99c03b30a0a691db3bd75ee3d289c9
2019-12-12 14:56:39 +00:00
Stephen Finucane 5f8dd65f6c 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>
2019-11-28 12:46:55 +00:00