ros-infrastructure / rosdoc2

Command-line tool for generating documentation for ROS 2 packages.
Apache License 2.0
38 stars 9 forks source link

Failure after `Exhale: parsing Doxygen XML` #127

Open christophfroehlich opened 2 months ago

christophfroehlich commented 2 months ago

I have made a custom rosdoc2 config for a package, which runs great on the respective rolling branch but does not on the humble branch. (the CI job uses the same workflow, i.e., OS and dependencies are the same)

Doxygen returns code "0" in both cases, I just can't find any other hint what is wrong there. Any hints what could cause the issue? Thanks in advance!

$ rosdoc2 build -p src/ros2_control/transmission_interface/
...
[~] Exhale: adding tree view css / javascript.
[+] Exhale: added tree view css / javascript.
[~] Exhale: parsing Doxygen XML.
(!) Exception caught while parsing:Traceback (most recent call last):
  File "/home/vscode/.local/lib/python3.10/site-packages/exhale/deploy.py", line 392, in explode
    textRoot.parse()
  File "/home/vscode/.local/lib/python3.10/site-packages/exhale/graph.py", line 1165, in parse
    self.parseFunctionSignatures()
  File "/home/vscode/.local/lib/python3.10/site-packages/exhale/graph.py", line 2199, in parseFunctionSignatures
    parameters.append(param.type.text)
AttributeError: 'NoneType' object has no attribute 'text'

Full log output: humble.txt

tfoote commented 1 month ago

My best guess on this is that it's a version mismatch between exhale and an underlying library such as BeautifulSoup.

Tracing back param https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2199

comes from memberdef_find_all https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2198

which comes from func_section.find_all https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2171

which comes from cdef.find_all https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2162

Which comes from parent_soup.doxygen.compounddef https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2160

Which is an instance of BeautifySoup https://github.com/svenevs/exhale/blob/c99592533143b5144a69bf685c85cdb63e534b0b/exhale/graph.py#L2156