Open rkent opened 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.
For the ROS 1 jobs I think that we rsync all available tags files from the server into the container before executing the job
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.
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:
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.