requirements/tox.ini
Takashi Kajinami 4966810392 Remove Python 3.8 tests and constraints
Python 3.8 reaches its EOL in October 2024, shortly after the 2024.2
release, so is no longer part of the tested runtimes for the 2024.2
release. Remove testing with Python 3.8 because some projects already
started removing Python 3.8 support according to the runtime update.

Also remove py3.8 specific entries from constraints.

Change-Id: I0f84ee438212b4722df66c05684f73c53eca3dca
2024-10-24 13:26:03 +02:00

135 lines
4.2 KiB
INI

[tox]
minversion = 4.11.0
envlist = validate,py3,pep8,pip-install
ignore_basepython_conflict=true
[testenv]
basepython = python3
usedevelop = True
deps = -c{toxinidir}/upper-constraints.txt
-r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands =
stestr run {posargs}
[testenv:py39-check-uc]
allowlist_externals =
check-conflicts
basepython = python3.9
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py310-check-uc]
basepython = python3.10
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py311-check-uc]
basepython = python3.11
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:py312-check-uc]
basepython = python3.12
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[testenv:venv]
commands = {posargs}
[testenv:update]
allowlist_externals =
update-requirements
commands = update-requirements {posargs}
[testenv:generate]
allowlist_externals =
generate-constraints
description = Regenerates upper-constraints.txt
# Generate needs an unconstrained install to get new dependencies
deps = -r{toxinidir}/requirements.txt
-r{toxinidir}/test-requirements.txt
commands = generate-constraints {posargs: -d denylist.txt -r global-requirements.txt -p python3.8 -p python3.9 -p python3.10 -p python3.11 > upper-constraints.txt}
[testenv:validate]
allowlist_externals =
validate-constraints
commands =
validate-constraints {toxinidir}/global-requirements.txt {toxinidir}/upper-constraints.txt {toxinidir}/denylist.txt
[testenv:validate-projects]
allowlist_externals =
validate-projects
commands = validate-projects {toxinidir}/projects.txt
# TODO remove once zuul reconfigured to run linters on gate
[testenv:pep8]
deps = {[testenv:linters]deps}
allowlist_externals =
bash
commands =
flake8
bash -c "find {toxinidir}/tools \
-type f \
-name \*.sh \
-print0 | xargs -0 bashate -v -iE006,E010"
bash -c 'sed -e "s,===,==," upper-constraints.txt > {envtmpdir}/safety-check.txt'
-safety check --json -r {envtmpdir}/safety-check.txt
[testenv:linters]
description = Perform linting
deps =
hacking>=1.0.0
bashate>=0.5.1
safety
allowlist_externals =
bash
commands =
flake8
bash -c "find {toxinidir}/tools \
-type f \
-name \*.sh \
-print0 | xargs -0 bashate -v -iE006,E010"
bash -c 'sed -e "s,===,==," upper-constraints.txt > {envtmpdir}/safety-check.txt'
-safety check --json -r {envtmpdir}/safety-check.txt
[testenv:bindep]
# Do not install any requirements. We want this to be fast and work even if
# system dependencies are missing, since it's used to tell you what system
# dependencies are missing! This also means that bindep must be installed
# separately, outside of the requirements files, and develop mode disabled
# explicitly to avoid unnecessarily installing the checked-out repo too (this
# further relies on "tox.skipsdist = True" above).
deps = bindep
commands = bindep test
usedevelop = False
[testenv:docs]
allowlist_externals =
sphinx-build
deps = -c{env:TOX_CONSTRAINTS_FILE:{toxinidir}/upper-constraints.txt}
-r{toxinidir}/doc/requirements.txt
commands = sphinx-build -W -b html doc/source doc/build/html
[testenv:pip-install]
recreate = True
deps = .
commands = python {toxinidir}/tools/check-install.py
[testenv:requirements-check]
allowlist_externals =
{toxinidir}/playbooks/files/project-requirements-change.py
deps = -r{toxinidir}/requirements.txt
commands =
{toxinidir}/playbooks/files/project-requirements-change.py --local {posargs}
[testenv:babel]
# Use the local upper-constraints.txt file
allowlist_externals =
{toxinidir}/tools/babel-test.sh
deps = Babel
commands = {toxinidir}/tools/babel-test.sh
[flake8]
exclude = .venv,.git,.tox,dist,doc,*egg,build