1
1
[tox]
2
- minversion = 3.8
2
+ minversion = 3.24.4
3
3
envlist = lint,py,docs,packaging
4
+ isolated_build = True
4
5
5
6
[testenv]
6
7
deps =
7
8
-r{toxinidir}/test-requirements.txt
8
9
commands = pytest {posargs}
9
10
whitelist_externals =
10
11
rm
12
+ sh
13
+ setenv =
14
+ PIP_DISABLE_PIP_VERSION_CHECK =1
11
15
12
16
[testenv:lint]
13
17
deps =
@@ -19,25 +23,33 @@ commands =
19
23
deps =
20
24
-r{toxinidir}/doc/requirements.txt
21
25
commands =
22
- doc8 -e .rst doc CONTRIBUTING.rst README.rst
26
+ python -m doc8 -e .rst doc CONTRIBUTING.rst README.rst
23
27
sphinx-build -W -b html doc/source doc/build/html
24
28
25
29
[testenv:packaging]
26
30
description =
27
- Do packagin/distribution. If tag is not present or PEP440 compliant upload to
28
- PYPI could fail
29
- # `usedevelop = true` overrides `skip_install` instruction, it's unwanted
31
+ Build package, verify metadata, install package and assert behavior
32
+ deps =
33
+ build >= 0.7.0, < 0.8.0
34
+ twine
30
35
usedevelop = false
31
- # don't install molecule itself in this env
32
36
skip_install = true
33
- deps =
34
- collective.checkdocs >= 0.2
35
- pep517 >= 0.5.0
36
- twine >= 1.14.0
37
- setenv =
37
+ # Ref: https://twitter.com/di_codes/status/1044358639081975813
38
38
commands =
39
- rm -rfv {toxinidir}/dist/
40
- python setup.py sdist bdist_wheel
41
- # metadata validation
42
- python -m setup checkdocs --verbose
43
- python -m twine check {toxinidir}/dist/*
39
+ # build wheel and sdist using PEP-517
40
+ {envpython} -c ' import os.path, shutil, sys; \
41
+ dist_dir = os.path.join("{toxinidir}", "dist"); \
42
+ os.path.isdir(dist_dir) or sys.exit(0); \
43
+ print("Removing \{ !s\} contents...".format(dist_dir), file=sys.stderr); \
44
+ shutil.rmtree(dist_dir)'
45
+ {envpython} -m build \
46
+ --outdir {toxinidir}/dist/ \
47
+ {toxinidir}
48
+ # Validate metadata using twine
49
+ twine check --strict {toxinidir}/dist/*
50
+ # Ensure package is not installed
51
+ pip uninstall -y doc8
52
+ # Install the wheel
53
+ sh -c " python3 -m pip install {toxinidir}/dist/*.whl"
54
+ # Ensure package can be uninstalled
55
+ pip uninstall -y doc8
0 commit comments