ros-infrastructure / rosdoc_lite

A light-weight version of rosdoc that does not rely on ROS infrastructure for crawling packages.
10 stars 31 forks source link

Cross referencing broken #51

Closed dirk-thomas closed 9 years ago

dirk-thomas commented 9 years ago

Some cross references work correctly, e.g.: http://docs.ros.org/indigo/api/roscpp/html/classros_1_1XMLRPCCallWrapper.html

XmlRpc::XmlRpcServerMethod in the inheritance diagram links to the correct page in a different package.

But some others are broken, e.g.: http://docs.ros.org/indigo/api/rosbag/html/c++/player_8h.html

rosbag/macros.h in the include dependency graph links to the wrong URL.

I suspect the problem to be related to the fact that the second case uses c++ subfolders for the docs (since these packages also generate Python docs). Based on that assumption it seems to be a very big problem for the ROS documentation.

tfoote commented 9 years ago

This looks like the metadata which is inaccurate: https://github.com/ros-infrastructure/rosdoc_tag_index/blob/master/indigo/tags/ros-indigo-rosbag#L1

dirk-thomas commented 9 years ago

Since jenkins_scripts generated the tag file for the rosdoc_tag_index repo it needs to add additional information about the generator specific subfolders: https://github.com/ros-infrastructure/jenkins_scripts/commit/3fe239005f8a34db7bb9e89584eed57501ecd95d

It uses the newly introduce API in rosdoc_lite to query that information: https://github.com/ros-infrastructure/rosdoc_lite/commit/e328c803128357a34f7b0504c41262013e940b5f (also needs https://github.com/ros-infrastructure/rosdoc_lite/commit/4f98045db45a80f943e9b5eeffe81d437392671d)

Based on these additional information rosdoc_lite can generate the correct relative link: https://github.com/ros-infrastructure/rosdoc_lite/commit/34b448d90e4fe453570da5172a544f70190b9499

This addressed most of the wrong cross-references. But some are still invalid on http://docs.ros.org/indigo/api/rosbag/html/c++/player_8h.html:

trainman419 commented 9 years ago

It looks like the invalid links to "rosbag/macros.h" is pointing to the correct package now (rosbag_storage), but it still isn't honoring the subfolder config in that pacakge.

tfoote commented 9 years ago

There's also an issue with having three copies of rosbag/macro.h of which the left most is broken, and the right two have correct links, but incorrectly say rosbag/macro.h they should be cpp_common/macros.h or rospack/macros.h

dirk-thomas commented 9 years ago

jenkins_scripts generates generic tag files for all packages of the processed repo (instead of using the existing once or the ones being generated during this job). This has been worked around in ros-infrastructure/jenkins_scripts@de30936234c0732dceb33decf853d832a28d8300

With this the links finally look good.

The label on some nodes in the graph is still showing the wrong namespace (while pointing to the correct location).

dirk-thomas commented 9 years ago

I don't know what in our infrastructure / configuration might be responsible for the wrong labels in the graph (especially since all links point to the correct location now. Anyone having an idea on this otherwise I might call it a dixygen problem and close the ticket since the actual links are all fixed now?

tfoote commented 9 years ago

Looks good, it's working and I don't see red flags for future issues. I've opened #52 for the graph box labels separately.