From c7f4d61b82e084a10eeb2cdee2947ca741b1914c Mon Sep 17 00:00:00 2001 From: Clark Boylan Date: Tue, 24 Jan 2023 10:33:12 -0800 Subject: [PATCH] Switch from tox to nox Recent tox releases have put us on a config treadmill. Avoid these issues entirely by using nox. Nox is a tox alternative that uses standard tools like pip and should be simpler to use for us. Change-Id: Ifce288808f535b5ee071dddc597ef54a6d3d03bb Depends-On: https://review.opendev.org/883664 --- .gitignore | 1 + .zuul.yaml | 4 ++-- noxfile.py | 34 ++++++++++++++++++++++++++++++++++ setup.cfg | 7 +++++++ tox.ini | 24 ------------------------ 5 files changed, 44 insertions(+), 26 deletions(-) create mode 100644 noxfile.py delete mode 100644 tox.ini diff --git a/.gitignore b/.gitignore index d1c5cdb..305a3af 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ .tox +.nox build/* *.pyc jeepyb/versioninfo diff --git a/.zuul.yaml b/.zuul.yaml index 6107d2f..0e78370 100644 --- a/.zuul.yaml +++ b/.zuul.yaml @@ -2,8 +2,8 @@ check: jobs: - gerritlib-jeepyb-integration - - tox-pep8 + - nox-linters gate: jobs: - gerritlib-jeepyb-integration - - tox-pep8 + - nox-linters diff --git a/noxfile.py b/noxfile.py new file mode 100644 index 0000000..c6a7079 --- /dev/null +++ b/noxfile.py @@ -0,0 +1,34 @@ +# 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. + +import nox + + +nox.options.error_on_external_run = True +nox.options.reuse_existing_virtualenvs = True +nox.options.sessions = ["linters"] + + +@nox.session(python="3") +def linters(session): + session.install("-r", "requirements.txt") + session.install("-r", "test-requirements.txt") + session.install(".") + session.run("flake8") + + +@nox.session(python="3") +def venv(session): + session.install("-r", "requirements.txt") + session.install("-r", "test-requirements.txt") + session.install(".") + session.run(*session.posargs) diff --git a/setup.cfg b/setup.cfg index 73ab438..e14db8b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -32,3 +32,10 @@ console_scripts = update-blueprint = jeepyb.cmd.update_blueprint:main update-bug = jeepyb.cmd.update_bug:main welcome-message = jeepyb.cmd.welcome_message:main + +[flake8] +# E125 and H are intentionally ignored +# W503 is a mistake in flake8 +ignore = E125,H,W503,W504 +show-source = True +exclude = .venv,.tox,.nox,dist,doc,build,*.egg diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 46bd1ce..0000000 --- a/tox.ini +++ /dev/null @@ -1,24 +0,0 @@ -[tox] -envlist = pep8 - -[testenv] -setenv = VIRTUAL_ENV={envdir} -deps = -r{toxinidir}/requirements.txt - -r{toxinidir}/test-requirements.txt -basepython = python3 - -[testenv:pep8] -commands = flake8 - -[testenv:pyflakes] -commands = flake8 - -[testenv:venv] -commands = {posargs} - -[flake8] -# E125 and H are intentionally ignored -# W503 is a mistake in flake8 -ignore = E125,H,W503,W504 -show-source = True -exclude = .venv,.tox,dist,doc,build,*.egg