diff options
-rw-r--r-- | bindep.txt | 7 | ||||
-rw-r--r-- | stevedore/sphinxext.py | 12 | ||||
-rw-r--r-- | tox.ini | 12 |
3 files changed, 25 insertions, 6 deletions
diff --git a/bindep.txt b/bindep.txt new file mode 100644 index 0000000..7a2df73 --- /dev/null +++ b/bindep.txt @@ -0,0 +1,7 @@ +# This is a cross-platform list tracking distribution packages needed for install and tests; +# see https://docs.openstack.org/infra/bindep/ for additional information. + +# graphviz is necessary for documentation build +graphviz [!platform:gentoo] +media-gfx/graphviz [platform:gentoo] + diff --git a/stevedore/sphinxext.py b/stevedore/sphinxext.py index 3c9b6ce..8ca88bb 100644 --- a/stevedore/sphinxext.py +++ b/stevedore/sphinxext.py @@ -18,10 +18,13 @@ from docutils import nodes from docutils.parsers import rst from docutils.parsers.rst import directives from docutils.statemachine import ViewList +from sphinx.util import logging from sphinx.util.nodes import nested_parse_with_titles from stevedore import extension +LOG = logging.getLogger(__name__) + def _get_docstring(plugin): return inspect.getdoc(plugin) or '' @@ -72,16 +75,13 @@ class ListPluginsDirective(rst.Directive): has_content = True def run(self): - env = self.state.document.settings.env - app = env.app - namespace = ' '.join(self.content).strip() - app.info('documenting plugins from %r' % namespace) + LOG.info('documenting plugins from %r' % namespace) overline_style = self.options.get('overline-style', '') underline_style = self.options.get('underline-style', '=') def report_load_failure(mgr, ep, err): - app.warn(u'Failed to load %s: %s' % (ep.module_name, err)) + LOG.warning(u'Failed to load %s: %s' % (ep.module_name, err)) mgr = extension.ExtensionManager( namespace, @@ -111,5 +111,5 @@ class ListPluginsDirective(rst.Directive): def setup(app): - app.info('loading stevedore.sphinxext') + LOG.info('loading stevedore.sphinxext') app.add_directive('list-plugins', ListPluginsDirective) @@ -48,6 +48,18 @@ deps = -r{toxinidir}/doc/requirements.txt commands = sphinx-build -a -E -W -d releasenotes/build/doctrees -b html releasenotes/source releasenotes/build/html +[testenv:bindep] +basepython = python3 +# 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:lower-constraints] basepython = python3 deps = |