requirements/tox.ini
Brian Haley ea345875cd Improve terminology in the requirements tree
There is no real reason we should be using some of the
terms we do, they're outdated, and we're behind other
open-source projects in this respect. Let's switch to
using more inclusive terms in all possible places.

Change-Id: I90ac679c1745a31474c6f24ec7953624ad056d79
2024-05-14 10:08:34 +02:00

137 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:py38-check-uc]
allowlist_externals =
check-conflicts
basepython = python3.8
deps = -r{toxinidir}/upper-constraints.txt
commands = check-conflicts {toxinidir}/upper-constraints.txt {toxinidir}/upper-constraints-xfails.txt
[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: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