ros-infrastructure / rosdoc2

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

Cross references not working in public facing http://docs.ros.org/en/rolling/p/mrpt_map_server #91

Open rkent opened 2 months ago

rkent commented 2 months ago

This may be a build farm issue, and not rosdoc2, but I will start here.

I started looking into cross references today, and the first solid test case I came up with was not working. If I go to http://docs.ros.org/en/rolling/p/mrpt_map_server/generated/classMapServer.html#_CPPv49MapServer which defines a superclass of ros2::Node, the cross link for Node is not working. That is, in the class definition with blue background:

class MapServer : public rclcpp::Node

there should be a hyperlink on Node on the final "Node" there to http://docs.ros.org/en/rolling/p/rclcpp/generated/classrclcpp_1_1Node.html#_CPPv4N6rclcpp4NodeE but there is not.

If I try this locally, using rosdoc2 build first on rclcpp then on mrpt_map_server, I get the crosslink. If I don't build rclcpp first, then I get the same behavior as the public site, no cross link.

Crosslinks rely on dependencies being built before dependent packages (or the crosslink directory being saved and reused between runs). I suspect that is not happening on the build farm.

clalancette commented 2 months ago

Crosslinks rely on dependencies being built before dependent packages (or the crosslink directory being saved and reused between runs). I suspect that is not happening on the build farm.

Correct. The scripts that run rosdoc2 on the buildfarm don't currently have the ability to do this.

That said, we do this for the old "rosdoc_lite" that we use for ROS 1, so the buildfarm has the facility to do it. We just haven't had time to port this over to the scripts that run rosdoc2.

tfoote commented 2 months ago

For the ROS 1 jobs I think that we rsync all available tags files from the server into the container before executing the job

https://github.com/ros-infrastructure/ros_buildfarm/blob/7ad8967b95aa096ab5d337522c9f0350c6c3a54d/ros_buildfarm/templates/doc/doc_job.xml.em#L107-L131

Of particular interest is the symbols: https://github.com/ros-infrastructure/ros_buildfarm/blob/7ad8967b95aa096ab5d337522c9f0350c6c3a54d/ros_buildfarm/templates/doc/doc_job.xml.em#L124 We will need to make sure that we can push and fetch the symbols in the same way for this to work.