sphinx-doc / sphinx

The Sphinx documentation generator
https://www.sphinx-doc.org/
Other
6.43k stars 2.1k forks source link

4.0.3: libcst documentation build fails #9432

Closed kloczek closed 3 years ago

kloczek commented 3 years ago

Describe the bug

On building libcst documentation sphinx fails

+ /usr/bin/python3 setup.py build_sphinx -b man --build-dir build/sphinx
running build_sphinx
Running Sphinx v4.0.3
making output directory... done
[autosummary] generating autosummary for: best_practices.rst, codemods.rst, codemods_tutorial.rst, experimental.rst, helpers.rst, index.rst, matchers.rst, matchers_tutorial.ipynb, metadata.rst, metadata_tutorial.ipynb, motivation.rst, nodes.rst, parser.rst, scope_tutorial.ipynb, tutorial.ipynb, visitors.rst, why_libcst.rst
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 17 added, 0 changed, 0 removed
reading sources... [100%] why_libcst
/home/tkloczko/rpmbuild/BUILD/LibCST-0.3.19/libcst/metadata/full_repo_manager.py:docstring of libcst.metadata.full_repo_manager.FullRepoManager.__init__:7: WARNING: Field list ends without a blank line; unexpected unindent.
/home/tkloczko/rpmbuild/BUILD/LibCST-0.3.19/libcst/metadata/full_repo_manager.py:docstring of libcst.metadata.full_repo_manager.FullRepoManager.__init__:10: WARNING: Unexpected indentation.
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... python-libcst.3 { why_libcst motivation tutorial metadata_tutorial scope_tutorial matchers_tutorial codemods_tutorial best_practices parser nodes visitors metadata matchers codemods helpers experimental } failed

Exception occurred:
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 463, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: CodeAreaNode
The full traceback has been saved in /tmp/sphinx-err-szrv8tbr.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
[tkloczko@barrel SPECS]$ cat /tmp/sphinx-err-szrv8tbr.log
# Sphinx version: 4.0.3
# Python version: 3.8.11 (CPython)
# Docutils version: 0.17.1 release
# Jinja2 version: 3.0.1
# Last messages:
#   parser
#   nodes
#   visitors
#   metadata
#   matchers
#   codemods
#   helpers
#   experimental
#   }
#   failed
# Loaded extensions:
#   sphinx.ext.mathjax (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.5) from /usr/lib/python3.8/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.2) from /usr/lib/python3.8/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /usr/lib/python3.8/site-packages/alabaster/__init__.py
#   nbsphinx (0.8.6) from /usr/lib/python3.8/site-packages/nbsphinx.py
#   sphinx.ext.autodoc.preserve_defaults (1.0) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/preserve_defaults.py
#   sphinx.ext.autodoc.type_comment (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/type_comment.py
#   sphinx.ext.autodoc (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py
#   sphinx.ext.autosummary (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autosummary/__init__.py
#   sphinx.ext.graphviz (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/graphviz.py
#   sphinx.ext.intersphinx (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/intersphinx.py
#   sphinx.ext.viewcode (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/viewcode.py
#   sphinx_rtd_theme (unknown version) from /usr/lib/python3.8/site-packages/sphinx_rtd_theme/__init__.py
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/setup_command.py", line 175, in run
    app.build(force_all=self.all_files)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 350, in build
    self.builder.build_update()
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 289, in build_update
    self.build(['__all__'], to_build)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 356, in build
    self.write(docnames, list(updated_docnames), method)
  File "/usr/lib/python3.8/site-packages/sphinx/util/__init__.py", line 547, in wrapper
    return f(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/manpage.py", line 103, in write
    docwriter.write(largetree, destination)
  File "/usr/lib/python3.8/site-packages/docutils/writers/__init__.py", line 78, in write
    self.translate()
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 39, in translate
    self.document.walkabout(visitor)
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  [Previous line repeated 4 more times]
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 219, in walkabout
    visitor.dispatch_visit(self)
  File "/usr/lib/python3.8/site-packages/sphinx/util/docutils.py", line 472, in dispatch_visit
    super().dispatch_visit(node)
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 2021, in dispatch_visit
    return method(node)
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 463, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: CodeAreaNode

How to Reproduce

git clone https://github.com/Instagram/LibCST/
cd LibCST
python3 setup.py build_sphinx -b man --build-dir build/sphinx

Expected behavior

No errors.

Your project

N/A

Screenshots

+ /usr/bin/python3 setup.py build_sphinx -b man --build-dir build/sphinx
running build_sphinx
Running Sphinx v4.0.3
making output directory... done
[autosummary] generating autosummary for: best_practices.rst, codemods.rst, codemods_tutorial.rst, experimental.rst, helpers.rst, index.rst, matchers.rst, matchers_tutorial.ipynb, metadata.rst, metadata_tutorial.ipynb, motivation.rst, nodes.rst, parser.rst, scope_tutorial.ipynb, tutorial.ipynb, visitors.rst, why_libcst.rst
loading intersphinx inventory from https://docs.python.org/3/objects.inv...
building [mo]: targets for 0 po files that are out of date
building [man]: all manpages
updating environment: [new config] 17 added, 0 changed, 0 removed
reading sources... [100%] why_libcst
/home/tkloczko/rpmbuild/BUILD/LibCST-0.3.19/libcst/metadata/full_repo_manager.py:docstring of libcst.metadata.full_repo_manager.FullRepoManager.__init__:7: WARNING: Field list ends without a blank line; unexpected unindent.
/home/tkloczko/rpmbuild/BUILD/LibCST-0.3.19/libcst/metadata/full_repo_manager.py:docstring of libcst.metadata.full_repo_manager.FullRepoManager.__init__:10: WARNING: Unexpected indentation.
looking for now-outdated files... none found
pickling environment... done
checking consistency... done
writing... python-libcst.3 { why_libcst motivation tutorial metadata_tutorial scope_tutorial matchers_tutorial codemods_tutorial best_practices parser nodes visitors metadata matchers codemods helpers experimental } failed

Exception occurred:
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 463, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: CodeAreaNode
The full traceback has been saved in /tmp/sphinx-err-szrv8tbr.log, if you want to report the issue to the developers.
Please also report this if it was a user error, so that a better error message can be provided next time.
A bug report can be filed in the tracker at <https://github.com/sphinx-doc/sphinx/issues>. Thanks!
[tkloczko@barrel SPECS]$ cat /tmp/sphinx-err-szrv8tbr.log
# Sphinx version: 4.0.3
# Python version: 3.8.11 (CPython)
# Docutils version: 0.17.1 release
# Jinja2 version: 3.0.1
# Last messages:
#   parser
#   nodes
#   visitors
#   metadata
#   matchers
#   codemods
#   helpers
#   experimental
#   }
#   failed
# Loaded extensions:
#   sphinx.ext.mathjax (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/mathjax.py
#   sphinxcontrib.applehelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/applehelp/__init__.py
#   sphinxcontrib.devhelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/devhelp/__init__.py
#   sphinxcontrib.htmlhelp (1.0.1) from /usr/lib/python3.8/site-packages/sphinxcontrib/htmlhelp/__init__.py
#   sphinxcontrib.serializinghtml (1.1.5) from /usr/lib/python3.8/site-packages/sphinxcontrib/serializinghtml/__init__.py
#   sphinxcontrib.qthelp (1.0.2) from /usr/lib/python3.8/site-packages/sphinxcontrib/qthelp/__init__.py
#   alabaster (0.7.12) from /usr/lib/python3.8/site-packages/alabaster/__init__.py
#   nbsphinx (0.8.6) from /usr/lib/python3.8/site-packages/nbsphinx.py
#   sphinx.ext.autodoc.preserve_defaults (1.0) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/preserve_defaults.py
#   sphinx.ext.autodoc.type_comment (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/type_comment.py
#   sphinx.ext.autodoc (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autodoc/__init__.py
#   sphinx.ext.autosummary (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/autosummary/__init__.py
#   sphinx.ext.graphviz (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/graphviz.py
#   sphinx.ext.intersphinx (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/intersphinx.py
#   sphinx.ext.viewcode (4.0.3) from /usr/lib/python3.8/site-packages/sphinx/ext/viewcode.py
#   sphinx_rtd_theme (unknown version) from /usr/lib/python3.8/site-packages/sphinx_rtd_theme/__init__.py
Traceback (most recent call last):
  File "/usr/lib/python3.8/site-packages/sphinx/setup_command.py", line 175, in run
    app.build(force_all=self.all_files)
  File "/usr/lib/python3.8/site-packages/sphinx/application.py", line 350, in build
    self.builder.build_update()
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 289, in build_update
    self.build(['__all__'], to_build)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/__init__.py", line 356, in build
    self.write(docnames, list(updated_docnames), method)
  File "/usr/lib/python3.8/site-packages/sphinx/util/__init__.py", line 547, in wrapper
    return f(*args, **kwargs)
  File "/usr/lib/python3.8/site-packages/sphinx/builders/manpage.py", line 103, in write
    docwriter.write(largetree, destination)
  File "/usr/lib/python3.8/site-packages/docutils/writers/__init__.py", line 78, in write
    self.translate()
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 39, in translate
    self.document.walkabout(visitor)
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 227, in walkabout
    if child.walkabout(visitor):
  [Previous line repeated 4 more times]
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 219, in walkabout
    visitor.dispatch_visit(self)
  File "/usr/lib/python3.8/site-packages/sphinx/util/docutils.py", line 472, in dispatch_visit
    super().dispatch_visit(node)
  File "/usr/lib/python3.8/site-packages/docutils/nodes.py", line 2021, in dispatch_visit
    return method(node)
  File "/usr/lib/python3.8/site-packages/sphinx/writers/manpage.py", line 463, in unknown_visit
    raise NotImplementedError('Unknown node: ' + node.__class__.__name__)
NotImplementedError: Unknown node: CodeAreaNode

OS

Linux/x86_64

Python version

3.8.11

Sphinx version

4.0.3

Sphinx extensions

From docs/source/conf.py

extensions = [
    "nbsphinx",
    "sphinx.ext.autodoc",
    "sphinx.ext.autosummary",
    "sphinx.ext.graphviz",
    "sphinx.ext.intersphinx",
    "sphinx.ext.viewcode",
    "sphinx_rtd_theme",
]

Extra tools

N/A

Additional context

N/A

astrojuanlu commented 3 years ago

Just for the record, CodeAreaNode belongs to nbsphinx, but I'm not sure what the solution is. cc @mgeier

kloczek commented 3 years ago

Ha .. thx for noticing that (I was not aware of that). If someone would be asking I have installed nbsphinx 0.8.6.

tk0miya commented 3 years ago

I don't know where CodeAreNode came from. But it's not a part of Sphinx-core. So it would be a bug of the nbsphinx. Thanks,

astrojuanlu commented 3 years ago

Let's continue the conversation upstream