21ea9aff19
Enable doc8 but disable D000 (RST validation) and D001 test (overlong lines). This also disables all the problems we had in the past with doc8 checking, the current files pass doc8 after fixing a few minor problems (part of change). This basically tests for whitespace. Change-Id: I648ac7f78b3a31f3b1434dc7d7d0b887ce4d5128
157 lines
5.6 KiB
INI
157 lines
5.6 KiB
INI
[tox]
|
|
minversion = 1.6
|
|
envlist = checkniceness,checksyntax,checkdeletions,checkbuild,checklang,checklinks
|
|
skipsdist = True
|
|
|
|
[testenv]
|
|
basepython=python2.7
|
|
setenv =
|
|
VIRTUAL_ENV={envdir}
|
|
deps = -r{toxinidir}/test-requirements.txt
|
|
whitelist_externals =
|
|
bash
|
|
cp
|
|
mkdir
|
|
rm
|
|
rsync
|
|
|
|
[testenv:venv]
|
|
commands = {posargs}
|
|
|
|
[testenv:checklinks]
|
|
commands = openstack-doc-test --check-links {posargs}
|
|
|
|
[testenv:checkniceness]
|
|
commands =
|
|
openstack-doc-test --check-niceness {posargs}
|
|
flake8
|
|
doc8 doc
|
|
|
|
[testenv:checksyntax]
|
|
commands =
|
|
openstack-doc-test --check-syntax {posargs}
|
|
# Check that .po and .pot files are valid:
|
|
bash -c "find doc -type f -regex '.*\.pot?' -print0|xargs -0 -n 1 msgfmt --check-format -o /dev/null"
|
|
|
|
[testenv:checkdeletions]
|
|
commands = openstack-doc-test --check-deletions {posargs}
|
|
|
|
[testenv:checkbuild]
|
|
commands =
|
|
# Build first the www pages so that openstack-doc-test creates a link to
|
|
# www/www-index.html.
|
|
mkdir -p publish-docs/www
|
|
python tools/www-generator.py --source-directory www/ --output-directory publish-docs/www/
|
|
cp www/www-index.html publish-docs/
|
|
rsync -a www/static/ publish-docs/www/
|
|
# Build and copy RST Guides
|
|
# TODO(ajaeger): We publish to content to allow for reviewing, this needs a
|
|
# change of openstack-doc-tools to remove content here in the file layout
|
|
# for previewing.
|
|
# Build both RST User Guides
|
|
{toxinidir}/tools/build-user-guides.sh
|
|
# Copy RST user-guide
|
|
mkdir -p publish-docs/user-guide/content/
|
|
rsync -a doc/user-guides/build/html/ publish-docs/user-guide/content
|
|
# Copy RST user-guide-admincontent
|
|
mkdir -p publish-docs/user-guide-admin/content/
|
|
rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/content/
|
|
# Build RST networking guide
|
|
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
|
|
sphinx-build -E -W doc/networking-guide/source doc/networking-guide/build/html
|
|
mkdir -p publish-docs/networking-guide/content/
|
|
rsync -a doc/networking-guide/build/html/ publish-docs/networking-guide/content/
|
|
# Build DocBook Guides, note we do not build the DocBook XML Networking Guide
|
|
openstack-doc-test --check-build --ignore-book networking-guide {posargs}
|
|
|
|
[testenv:docs]
|
|
commands =
|
|
{toxinidir}/tools/build-user-guides.sh
|
|
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
|
|
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
|
|
|
|
[testenv:network]
|
|
commands =
|
|
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
|
|
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
|
|
|
|
[testenv:publishdocs]
|
|
# Prepare all documents (except www subdir) so that they can get
|
|
# published on docs.openstack.org with just copying publish-docs/*
|
|
# over.
|
|
commands =
|
|
# Create directory, it might not be here if openstack-doc-test does
|
|
# not publish anything.
|
|
mkdir publish-docs
|
|
# We only publish changed manuals.
|
|
# Do not publish DocBook XML Networking Guide
|
|
openstack-doc-test --check-build --ignore-book networking-guide --publish
|
|
# Build both RST User Guides
|
|
{toxinidir}/tools/build-user-guides.sh
|
|
# Copy RST user-guide
|
|
mkdir -p publish-docs/user-guide/
|
|
rsync -a doc/user-guides/build/html/ publish-docs/user-guide/
|
|
# Copy RST user-guide-admin
|
|
mkdir -p publish-docs/user-guide-admin/
|
|
rsync -a doc/user-guides/build-admin/html/ publish-docs/user-guide-admin/
|
|
# Build RST Networking Guide
|
|
{toxinidir}/tools/glossary2rst.py doc/networking-guide/source/glossary.rst
|
|
sphinx-build -W doc/networking-guide/source doc/networking-guide/build/html
|
|
# Copy RST Networking Guide as draft
|
|
mkdir -p publish-docs/draft/networking-guide/
|
|
rsync -a doc/networking-guide/build/html/ publish-docs/draft/networking-guide/
|
|
# Now publish www as well, we cannot do this from
|
|
# openstack-doc-test. Use rsync so that .htaccess gets also
|
|
# copied.
|
|
python tools/www-generator.py --source-directory www/ --output-directory publish-docs/
|
|
rsync -a www/static/ publish-docs/
|
|
|
|
[testenv:checklang]
|
|
# Generatedocbook needs xml2po which cannot be installed
|
|
# in the venv. Since it's installed in the system, let's
|
|
# use sitepackages.
|
|
sitepackages=True
|
|
whitelist_externals = doc-tools-check-languages
|
|
commands = doc-tools-check-languages doc-tools-check-languages.conf test all
|
|
|
|
[testenv:buildlang]
|
|
# Run as "tox -e buildlang -- $LANG"
|
|
# Generatedocbook needs xml2po which cannot be installed
|
|
# in the venv. Since it's installed in the system, let's
|
|
# use sitepackages.
|
|
sitepackages=True
|
|
whitelist_externals = doc-tools-check-languages
|
|
commands = doc-tools-check-languages doc-tools-check-languages.conf test {posargs}
|
|
|
|
[testenv:publishlang]
|
|
# Generatedocbook needs xml2po which cannot be installed
|
|
# in the venv. Since it's installed in the system, let's
|
|
# use sitepackages.
|
|
sitepackages=True
|
|
whitelist_externals = doc-tools-check-languages
|
|
commands = doc-tools-check-languages doc-tools-check-languages.conf publish all
|
|
|
|
[testenv:generatepot-rst]
|
|
# Generate POT files for translation, needs {posargs} like:
|
|
# tox -e generatepot-rst -- user-guides
|
|
commands = {toxinidir}/tools/generatepot-rst.sh {posargs}
|
|
|
|
[doc8]
|
|
# Settings for doc8:
|
|
# Ignore target directories
|
|
ignore-path = doc/*/target,doc/*/build
|
|
# File extensions to use
|
|
extensions = .rst,.txt
|
|
# Disable some doc8 checks:
|
|
# D000: Check RST validity (cannot handle lineos directive)
|
|
# D001: Ignore lines longer than 79 chars
|
|
ignore = D000, D001
|
|
|
|
[flake8]
|
|
show-source = True
|
|
# H803 skipped on purpose per list discussion.
|
|
# E123, E125 skipped as they are invalid PEP-8.
|
|
ignore = E123,E125,H803
|
|
builtins = _
|
|
exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build,doc/common/samples
|