Skip to content

Commit

Permalink
Run sphinx-autobuild via tox -e docs-live[-src]
Browse files Browse the repository at this point in the history
  • Loading branch information
rmartin16 committed Feb 17, 2024
1 parent 71cd314 commit c339e1f
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 31 deletions.
1 change: 1 addition & 0 deletions changes/2400.misc.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
The ``sphinx-autobuild`` tool can now be invoked via ``tox -e docs-live`` and ``tox -e docs-live-src``.
56 changes: 25 additions & 31 deletions tox.ini
Original file line number Diff line number Diff line change
Expand Up @@ -16,54 +16,48 @@ allowlist_externals =
bash
commands =
# TOGA_INSTALL_COMMAND is set to a bash command by the CI workflow.
{env:TOGA_INSTALL_COMMAND:python -m pip install .[dev] ../dummy}
{env:TOGA_INSTALL_COMMAND:python -m pip install .[dev] {tox_root}{/}dummy}
{env:test_command_prefix:} coverage run -m pytest -vv {posargs}
coverage combine
coverage report --rcfile ../pyproject.toml
coverage report --rcfile {tox_root}{/}pyproject.toml

[testenv:towncrier-check]
skip_install = True
deps =
{[testenv:towncrier]deps}
commands =
python -m towncrier.check --compare-with origin/main

[testenv:towncrier]
[testenv:towncrier{,-check}]
skip_install = True
deps =
towncrier ~= 22.8
./core
{tox_root}{/}core
commands =
towncrier {posargs}
check : python -m towncrier.check --compare-with origin/main
!check : python -m towncrier {posargs}

[docs]
build_dir = _build
# -W: make warnings into errors
# --keep-going: continue on errors
# -j: run with multiple processes
sphinx_args = -W --keep-going -j auto
# -v: verbose logging
# -E: force rebuild of environment
# -T: print traceback on error
# -a: read/parse all files
# -d: use tox's temp dir for caching
sphinx_args_extra = {[docs]sphinx_args} -v -E -T -a -d {envtmpdir}/doctrees
docs_dir = {tox_root}{/}docs
build_dir = {[docs]docs_dir}{/}_build
# replace when Sphinx>=7.3 and Python 3.8 is dropped:
# -T -> --show-traceback
# -W -> --fail-on-warning
# -b -> --builder
# -v -> --verbose
# -a -> --write-all
# -E -> --fresh-env
sphinx_args = -T -W --keep-going --jobs auto

[testenv:docs{,-lint,-all}]
[testenv:docs{,-lint,-all,-live,-live-src}]
skip_install = True
change_dir = docs
deps =
./core[docs]
-e {tox_root}{/}core[docs]
passenv =
# On macOS M1, you need to manually set the location of the PyEnchant
# library:
# export PYENCHANT_LIBRARY_PATH=/opt/homebrew/lib/libenchant-2.2.dylib
PYENCHANT_LIBRARY_PATH
commands =
!lint-!all : python -m sphinx {[docs]sphinx_args} -b html . {[docs]build_dir}/html
lint : python -m sphinx {[docs]sphinx_args_extra} -b spelling . {[docs]build_dir}/spell
lint : python -m sphinx {[docs]sphinx_args_extra} -b linkcheck . {[docs]build_dir}/links
all : python -m sphinx {[docs]sphinx_args_extra} -b html . {[docs]build_dir}/html
!lint-!all-!live : python -m sphinx {[docs]sphinx_args} {posargs} -b html {[docs]docs_dir} {[docs]build_dir}{/}html
lint : python -m sphinx {[docs]sphinx_args} {posargs} -b spelling {[docs]docs_dir} {[docs]build_dir}{/}spell
lint : python -m sphinx {[docs]sphinx_args} {posargs} -b linkcheck {[docs]docs_dir} {[docs]build_dir}{/}links
all : python -m sphinx {[docs]sphinx_args} {posargs} -v -a -E -b html {[docs]docs_dir} {[docs]build_dir}{/}html
live-!src : sphinx-autobuild {[docs]sphinx_args} {posargs} -b html {[docs]docs_dir} {[docs]build_dir}{/}live
live-src : sphinx-autobuild {[docs]sphinx_args} {posargs} -a -E --watch {tox_root}{/}core{/}src{/}toga{/} -b html {[docs]docs_dir} {[docs]build_dir}{/}live

[testenv:package]
skip_install = True
Expand All @@ -72,4 +66,4 @@ deps =
twine==4.0.2
commands =
python -m build {posargs}
python -m twine check {posargs}/dist/*
python -m twine check {posargs}{/}dist{/}*

0 comments on commit c339e1f

Please sign in to comment.