ROS Resources: Documentation | Support | Discussion Forum | Index | Service Status | ros @ Robotics Stack Exchange
Ask Your Question
0

When is new package available on the ros2 build farm?

asked 2023-08-03 09:17:00 -0600

Bernd Pfrommer gravatar image

A new driver that is being added to rosdistro depends on a new message package that has just been added to rosdistro for distros Humble and Rolling. The driver and the messages live in different packages. Both have been successfully "bloom released", and the message package builds successfully on the ROS2 build farms, but the driver does not. It fails to find the message package file ("event_camera_msgs") although there is by now a Humble rosdep entry for event_camera_msgs, and the driver's package.xml file does have a dependency on event_camera_msgs. Here is the error I get from the build log of the driver:

09:13:35 -- Found rclcpp_components: 16.0.5 (/opt/ros/humble/share/rclcpp_components/cmake)
09:13:35 CMake Error at cmake/ROS2.cmake:53 (find_package):
09:13:35   By not providing "Findevent_camera_msgs.cmake" in CMAKE_MODULE_PATH this
09:13:35   project has asked CMake to find a package configuration file provided by
09:13:35   "event_camera_msgs", but CMake did not find one.

Why is event_camera_msgs not available on the build farm? Admittedly there has not been a sync for Humble yet since the new event_camera_msgs package has been added. Is that the problem? If two new packages A and B get added to rosdistro, when can package A rely on package B being available on the build farm? Or am I missing some configuration to cause the messages package to be installed before the build starts? The build log shows no attempts to install the missing event_camera_msgs package.

edit retag flag offensive close merge delete

Comments

The error was due to the messages package not having been built correctly. Apparently even though a package is listed in the rosdep database, if its build fails, the building of the dependent package will fail with a cmake not finding the package. Once the message package was built, the driver build also progressed. There seems to be at most a few minutes (if any) delay for the built package to be available on the build farm.

Bernd Pfrommer gravatar image Bernd Pfrommer  ( 2023-08-03 14:20:05 -0600 )edit

1 Answer

Sort by ยป oldest newest most voted
2

answered 2023-08-03 10:20:12 -0600

tfoote gravatar image

updated 2023-08-03 11:10:18 -0600

The package is available and is installable (if you look in the logs you point to you can see it being installed), however it has no content.

You appear to have custom logic in your CMake to detect ROS 2 and ROS 1. However the build of event_camera_msgs is failing to detect the version of ROS and is not doing anything. I would recommend making sure that is an error case that will fail the build so you know it didn't work. But that looks like it means that nothing is built or installed. If that error should probably be a fatal error.

From: https://build.ros2.org/job/Rbin_uJ64_...

08:17:47 ERRORROS_VERSION environment variable is not set!

Which appears to come from here: https://github.com/ros-event-camera/e...

If/since you need to rely on the ROS_VERSION environment variable being present you need a dependency on the package ros_environment which provides that environment variable.

edit flag offensive delete link more

Comments

@tfoote Thanks for the prompt answer. Indeed that was the problem. My cmake file did not err out correctly, so the job status showed "green" and I assumed the package was built correctly. It was not!

Bernd Pfrommer gravatar image Bernd Pfrommer  ( 2023-08-03 14:21:28 -0600 )edit

Question Tools

2 followers

Stats

Asked: 2023-08-03 09:17:00 -0600

Seen: 161 times

Last updated: Aug 03 '23