Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

NotImplementedError on Zephyr master with Sphinx 3.0.0 #7424

Closed
carlescufi opened this issue Apr 6, 2020 · 7 comments
Closed

NotImplementedError on Zephyr master with Sphinx 3.0.0 #7424

carlescufi opened this issue Apr 6, 2020 · 7 comments
Assignees
Milestone

Comments

@carlescufi
Copy link

carlescufi commented Apr 6, 2020

Describe the bug
The following error is triggered when building the Zephyr project doc:

Exception occurred:
  File "/home/carles/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3053, in object_type
    raise NotImplementedError()

To Reproduce

Follow the guide here: https://docs.zephyrproject.org/latest/getting_started/index.html
A summarized version below:

$ pip3 install --user -U west
$ west init zephyrproject
$ pip3 install --user -r zephyr/scripts/requirements.txt
$ cd zephyrproject
$ west update
$ cd zephyr
$ make htmldocs

Expected behavior
Builds without error

Your project
https://github.com/zephyrproject-rtos/zephyr/tree/master/doc

Environment info

Additional context
Adding the log file here:
sphinx-err-kjje5gfz.log

And the visible error output:

cd /home/carles/src/zephyr/zephyr/doc && /home/carles/bin/cmake/cmake-3.13.1-Linux-x86_64/bin/cmake -E env ZEPHYR_BASE=/home/carles/src/zephyr/zephyr ZEPHYR_BUILD=/home/carles/src/zephyr/zephyr/doc/build /home/carles/.local/bin/sphinx-bu
ild -w /home/carles/src/zephyr/zephyr/doc/build/sphinx.log -N -t development -b html -d /home/carles/src/zephyr/zephyr/doc/build/doctrees -q /home/carles/src/zephyr/zephyr/doc/build/rst/doc /home/carles/src/zephyr/zephyr/doc/build/html &
& /home/carles/bin/cmake/cmake-3.13.1-Linux-x86_64/bin/cmake -P /home/carles/src/zephyr/zephyr/cmake/util/fmerge.cmake /home/carles/src/zephyr/zephyr/doc/build/doc.log /home/carles/src/zephyr/zephyr/doc/build/doxy.log /home/carles/src/ze
phyr/zephyr/doc/build/sphinx.log && /usr/bin/python3 /home/carles/src/zephyr/zephyr/scripts/filter-known-issues.py --config-dir /home/carles/src/zephyr/zephyr/.known-issues/doc --errors /home/carles/src/zephyr/zephyr/doc/build/doc.warnin
gs --warnings /home/carles/src/zephyr/zephyr/doc/build/doc.warnings /home/carles/src/zephyr/zephyr/doc/build/doc.log
/home/carles/.local/lib/python3.7/site-packages/sphinx_tabs/tabs.py:341: RemovedInSphinx40Warning: The app.add_javascript() is deprecated. Please use app.add_js_file() instead.
  app.add_javascript(path)
/home/carles/src/zephyr/zephyr/doc/build/rst/doc/conf.py:564: RemovedInSphinx40Warning: The app.add_stylesheet() is deprecated. Please use app.add_css_file() instead.
  app.add_stylesheet("zephyr-custom.css")
/home/carles/src/zephyr/zephyr/doc/build/rst/doc/conf.py:566: RemovedInSphinx40Warning: The app.add_javascript() is deprecated. Please use app.add_js_file() instead.
  app.add_javascript("https://www.googletagmanager.com/gtag/js?id=UA-831873-47")
/home/carles/src/zephyr/zephyr/doc/build/rst/doc/conf.py:567: RemovedInSphinx40Warning: The app.add_javascript() is deprecated. Please use app.add_js_file() instead.
  app.add_javascript("ga-tracker.js")
/home/carles/src/zephyr/zephyr/doc/build/rst/doc/conf.py:568: RemovedInSphinx40Warning: The app.add_javascript() is deprecated. Please use app.add_js_file() instead.
  app.add_javascript("zephyr-custom.js")

Exception occurred:
  File "/home/carles/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3053, in object_type
    raise NotImplementedError()
NotImplementedError
The full traceback has been saved in /tmp/sphinx-err-kjje5gfz.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!
ninja: build stopped: subcommand failed.
@carlescufi
Copy link
Author

carlescufi commented Apr 6, 2020

@jakobandersen
Copy link
Contributor

The stack trace goes through Breathe so it may not be a Sphinx bug. However, Breathe has not yet been updated for Sphinx 3.0.0. If possible, can you try with the Breathe version in breathe-doc/breathe#491?

@oliviermartin
Copy link

oliviermartin commented Apr 7, 2020

Same here for gattlib with Sphinx 3.0.0. I confirm I can duplicate the issue with the latest Breathe (ie: breathe-4.14.2)

To duplicate the issue:

git clone git@github.com:labapart/gattlib.git
cd gattlib
mkdir build && cd build
cmake .. && make

Here the full call stack:

Traceback (most recent call last):
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/cmd/build.py", line 280, in build_main
    app.build(args.force_all, filenames)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/application.py", line 348, in build
    self.builder.build_update()
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 299, in build_update
    len(to_build))
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 311, in build
    updated_docnames = set(self.read())
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 418, in read
    self._read_serial(docnames)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 439, in _read_serial
    self.read_doc(docname)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/builders/__init__.py", line 479, in read_doc
    doctree = read_doc(self.app, self.env, self.env.doc2path(docname))
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/io.py", line 221, in read_doc
    pub.publish()
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/core.py", line 218, in publish
    self.settings)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/io.py", line 126, in read
    self.parse()
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/readers/__init__.py", line 77, in parse
    self.parser.parse(self.input, document)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/parsers.py", line 102, in parse
    self.statemachine.run(inputlines, document, inliner=self.inliner)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 171, in run
    input_source=document['source'])
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/statemachine.py", line 242, in run
    context, state, transitions)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/statemachine.py", line 459, in check_line
    return method(match, context, next_state)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2769, in underline
    self.section(title, source, style, lineno - 1, messages)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 327, in section
    self.new_subsection(title, lineno, messages)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 395, in new_subsection
    node=section_node, match_titles=True)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 282, in nested_parse
    node=node, match_titles=match_titles)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 196, in run
    results = StateMachineWS.run(self, input_lines, input_offset)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/statemachine.py", line 242, in run
    context, state, transitions)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/statemachine.py", line 459, in check_line
    return method(match, context, next_state)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2342, in explicit_markup
    nodelist, blank_finish = self.explicit_construct(match)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2354, in explicit_construct
    return method(self, expmatch)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2097, in directive
    directive_class, match, type_name, option_presets)
  File "/home/olivier/.local/lib/python3.7/site-packages/docutils/parsers/rst/states.py", line 2146, in run_directive
    result = directive_instance.run()
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/directive/index.py", line 90, in run
    return self.handle_contents(project_info)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/directive/index.py", line 59, in handle_contents
    node_list = object_renderer.render(context.node_stack[0], context)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 460, in visit_doxygen
    nodelist.extend(self.render(compound))
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1238, in dispatch_compound
    return self.visit_file(node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 546, in visit_file
    return self.visit_compound(node, render_signature=render_signature)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 474, in visit_compound
    rendered_data = self.render(file_data, parent_context)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 465, in visit_doxygendef
    return self.render(node.compounddef)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 617, in visit_compounddef
    child_nodes = self.render(sectiondef)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 651, in visit_sectiondef
    node_list.extend(self.render_iterable(node.memberdef))
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1318, in render_iterable
    output.extend(self.render(entry))
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1308, in render
    result = method(self, node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1253, in dispatch_memberdef
    return self.visit_define(node)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 1050, in visit_define
    return self.render_declaration(node, declaration, update_signature=update_define_signature)
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 412, in render_declaration
    nodes = self.run_domain_directive(obj_type, [declaration.replace('\n', ' ')])
  File "/home/olivier/.local/lib/python3.7/site-packages/breathe/renderer/sphinxrenderer.py", line 357, in run_domain_directive
    nodes = domain_directive.run()
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3079, in run
    return super().run()
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/directives/__init__.py", line 190, in run
    name = self.handle_signature(sig, signode)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3086, in handle_signature
    ast = self.parse_definition(parser)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3063, in parse_definition
    return parser.parse_declaration(self.object_type, self.objtype)
  File "/home/olivier/.local/lib/python3.7/site-packages/sphinx/domains/c.py", line 3053, in object_type
    raise NotImplementedError()
NotImplementedError

@tk0miya tk0miya added this to the 3.0.1 milestone Apr 7, 2020
@carlescufi
Copy link
Author

The stack trace goes through Breathe so it may not be a Sphinx bug. However, Breathe has not yet been updated for Sphinx 3.0.0. If possible, can you try with the Breathe version in michaeljones/breathe#491?

@jakobandersen
In my particular case, using michaeljones/breathe#491 solves the issue, but I will leave it open since apparently it doesn't fix it for everyone.

@valeros
Copy link

valeros commented Apr 7, 2020

Same here with Zephyr docs:
OS: Ubuntu 18.04
Python version: 3.6.9
Sphinx version: 3.0.0
breathe: 4.15.0

@oliviermartin
Copy link

The stack trace goes through Breathe so it may not be a Sphinx bug. However, Breathe has not yet been updated for Sphinx 3.0.0. If possible, can you try with the Breathe version in michaeljones/breathe#491?

@jakobandersen
In my particular case, using michaeljones/breathe#491 solves the issue, but I will leave it open since apparently it doesn't fix it for everyone.

Actually, my bad, I did not realise the PR was not merged. I confirm with Breathe breathe-4.15.0 it works.
For me, the issue is fixed.

@jakobandersen
Copy link
Contributor

Great, thanks for the quick checking.

@github-actions github-actions bot locked as resolved and limited conversation to collaborators Jul 26, 2021
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

5 participants