forked from pypa/virtualenv
-
Notifications
You must be signed in to change notification settings - Fork 0
/
tox.ini
133 lines (124 loc) · 3.35 KB
/
tox.ini
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
[tox]
envlist =
fix
py311
py310
py39
py38
py37
pypy3
coverage
readme
docs
isolated_build = true
skip_missing_interpreters = true
requires = tox>=4
[testenv]
description = run tests with {basepython}
extras =
test
commands =
coverage erase
coverage run -m pytest {posargs:--junitxml {toxworkdir}/junit.{envname}.xml tests --int}
coverage combine
coverage report --skip-covered --show-missing
coverage xml -o {toxworkdir}/coverage.{envname}.xml
coverage html -d {envtmpdir}/htmlcov --show-contexts --title virtualenv-{envname}-coverage
package = wheel
pass_env =
CI_RUN
PYTEST_*
TERM
set_env =
_COVERAGE_SRC = {envsitepackagesdir}/virtualenv
COVERAGE_FILE = {toxworkdir}/.coverage.{envname}
COVERAGE_PROCESS_START = {toxinidir}/pyproject.toml
{upgrade}: PYTHONWARNINGS = ignore:DEPRECATION::pip._internal.cli.base_command
wheel_build_env = .pkg
[testenv:fix]
description = format the code base to adhere to our styles, and complain about what we cannot do automatically
skip_install = true
deps =
pre-commit>=2.21
commands =
pre-commit run --all-files --show-diff-on-failure
[testenv:coverage]
description = [run locally after tests]: combine coverage data and create report;
generates a diff coverage against origin/main (can be changed by setting DIFF_AGAINST env var)
skip_install = true
deps =
covdefaults>=2.2.2
coverage[toml]>=7.0.1
diff_cover>=7.3
extras =
parallel_show_output = true
commands =
coverage combine
coverage report --skip-covered --show-missing
coverage xml -o {toxworkdir}/coverage.xml
coverage html -d {toxworkdir}/htmlcov
diff-cover --compare-branch {env:DIFF_AGAINST:origin/main} {toxworkdir}/coverage.xml
depends =
py311
py310
py39
py38
py37
pypy3
pass_env =
DIFF_AGAINST
set_env =
COVERAGE_FILE = {toxworkdir}/.coverage
[testenv:readme]
description = check that the long description is valid (need for PyPI)
skip_install = true
deps =
build>=0.9
twine>=4.0.2
extras =
commands =
python -m build -o {envtmpdir} --wheel --sdist .
twine check {envtmpdir}/*
[testenv:docs]
description = build documentation
extras =
docs
commands =
python -c 'import glob; import subprocess; subprocess.call(["proselint"] + glob.glob("docs/*.rst") + glob.glob("docs/**/*.rst"))'
sphinx-build -d "{envtmpdir}/doctree" docs "{toxworkdir}/docs_out" --color -b html {posargs:-W}
python -c 'import pathlib; print("documentation available under file://\{0\}".format(pathlib.Path(r"{toxworkdir}") / "docs_out" / "index.html"))'
[testenv:upgrade]
description = upgrade pip/wheels/setuptools to latest
skip_install = true
deps =
black>=22.12
commands =
python upgrade_wheels.py
change_dir = {toxinidir}/tasks
pass_env =
UPGRADE_ADVISORY
[testenv:release]
description = do a release, required posarg of the version number
deps =
gitpython>=3.1.30
packaging>=22
towncrier>=22.12
commands =
python release.py --version {posargs}
change_dir = {toxinidir}/tasks
[testenv:dev]
description = generate a DEV environment
extras =
docs
test
commands =
python -m pip list --format=columns
python -c 'import sys; print(sys.executable)'
package = editable
[testenv:zipapp]
description = generate a zipapp
skip_install = true
deps =
packaging>=22
commands =
python tasks/make_zipapp.py