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
This commit is contained in:
Clark Boylan 2023-01-24 10:33:12 -08:00 committed by Jeremy Stanley
parent 72661fc4d8
commit c7f4d61b82
5 changed files with 44 additions and 26 deletions

1
.gitignore vendored
View File

@ -1,4 +1,5 @@
.tox .tox
.nox
build/* build/*
*.pyc *.pyc
jeepyb/versioninfo jeepyb/versioninfo

View File

@ -2,8 +2,8 @@
check: check:
jobs: jobs:
- gerritlib-jeepyb-integration - gerritlib-jeepyb-integration
- tox-pep8 - nox-linters
gate: gate:
jobs: jobs:
- gerritlib-jeepyb-integration - gerritlib-jeepyb-integration
- tox-pep8 - nox-linters

34
noxfile.py Normal file
View File

@ -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)

View File

@ -32,3 +32,10 @@ console_scripts =
update-blueprint = jeepyb.cmd.update_blueprint:main update-blueprint = jeepyb.cmd.update_blueprint:main
update-bug = jeepyb.cmd.update_bug:main update-bug = jeepyb.cmd.update_bug:main
welcome-message = jeepyb.cmd.welcome_message: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

24
tox.ini
View File

@ -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