Error in Kbin task of the ROS 2 Buildfarm - Installing Jazzy version of dependency

Hello everyone,

I am having some trouble with a Release Job in the farm. I recently published some packages to Kilted (before they were only in Jazzy and they were working fine). One of those packages is multisensor_calibration and the release job is failing. You can see the last log here.

One dependency of that package is small_gicp_vendor, which I also published and both src and bin tasks are doing fine. Inspecting the logs I have seen that the CI is trying to install the Jazzy version of the small_gicp_vendor package, and not the Kilted version (Look for “ros-jazzy-small-gicp-vendor” in the logs). I guess that leads to not finding the cmake config file for small_gicp_vendor and the following failure of the task.

Why is that happening? I have not been able to find any information or similar issues.

Thanks in advance!

The buildfarm is only doing what it’s told to.

And according to ros2-gbp/multisensor_calibration-release/debian/kilted/noble/control, Bloom (the tool that generated the control file) decided that small_gicp_vendor should be resolved to ros-jazzy-small-gicp-vendor when it was releasing your package.

I wouldn’t immediately know why. Perhaps your release env was contaminated/confused somehow?


Edit: the commit history of your -gbp is also a bit confusing. Have you manually edited it? This commit seems to suggest that. Nope, I was just confused.

1 Like

Hello,

thanks for your answer. I did not manually edit the -gbp repo, just followed the release process as I did for Jazzy. Could you maybe point to what is exactly confusing? Maybe we can revert it to a correct state. I do not have much experience with ROS releases. Thanks again!


Edit: Maybe rerunning the bloom-release command to update the -gbp distro could be an option? I do not know either what could be the source of the problem. Having the wrong distro sourced at the time of bloom-release? Not quite sure if that has some influence. But then all other dependencies would have the Jazzy version, not only the small_gicp_vendor.

yes, ignore that question. Your -gbp looks ok.

Maybe we can revert it to a correct state.

At first (or perhaps second) glance it looks OK, actually.

I don’t know what happened when you ran Bloom – but I (still) haven’t checked in detail.

Perhaps you can check your command history to see which commands you ran and in which order. That might provide a clue.

Perhaps @nuclearsandwich and/or @cottsay see something.

In any case, doing the release again might be a faster way to get something to work. You could revert your -gbp to its initial state, but that might/should not be needed.

While rerunning the bloom release (bloom-release multisensor_calibration --rosdistro kilted) I can see the following in the console output:

####
#### Generating 'noble' debian for package 'multisensor_calibration' at version '2.0.4-2'
####
Generating debian for noble...
No homepage set, defaulting to ''
<string>:1: (WARNING/2) Title overline too short.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package multisensor_calibration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Package 'multisensor-calibration' has dependencies:
Run Dependencies:
  rosdep key           => noble key
  libqt5-core          => ['libqt5core5t64']
  libqt5-gui           => ['libqt5gui5t64']
  libqt5-widgets       => ['libqt5widgets5t64']
  rclcpp               => ['ros-kilted-rclcpp']
  rclcpp_components    => ['ros-kilted-rclcpp-components']
  cv_bridge            => ['ros-kilted-cv-bridge']
  image_transport      => ['ros-kilted-image-transport']
  pcl_ros              => ['ros-kilted-pcl-ros']
  pcl_conversions      => ['ros-kilted-pcl-conversions']
  tf2                  => ['ros-kilted-tf2']
  tf2_ros              => ['ros-kilted-tf2-ros']
  tinyxml2             => ['libtinyxml2-dev']
  urdf                 => ['ros-kilted-urdf']
  rviz_common          => ['ros-kilted-rviz-common']
  multisensor_calibration_interface => ['ros-jazzy-multisensor-calibration-interface']
  small_gicp_vendor    => ['ros-jazzy-small-gicp-vendor']
  std_msgs             => ['ros-kilted-std-msgs']
  sensor_msgs          => ['ros-kilted-sensor-msgs']
  geometry_msgs        => ['ros-kilted-geometry-msgs']
  visualization_msgs   => ['ros-kilted-visualization-msgs']
Build and Build Tool Dependencies:
  rosdep key           => noble key
  qtbase5-dev          => ['qtbase5-dev']
  qt5-qmake            => ['qt5-qmake']
  rclcpp               => ['ros-kilted-rclcpp']
  rclcpp_components    => ['ros-kilted-rclcpp-components']
  cv_bridge            => ['ros-kilted-cv-bridge']
  image_transport      => ['ros-kilted-image-transport']
  pcl_ros              => ['ros-kilted-pcl-ros']
  pcl_conversions      => ['ros-kilted-pcl-conversions']
  tf2                  => ['ros-kilted-tf2']
  tf2_ros              => ['ros-kilted-tf2-ros']
  tinyxml2             => ['libtinyxml2-dev']
  urdf                 => ['ros-kilted-urdf']
  rviz_common          => ['ros-kilted-rviz-common']
  multisensor_calibration_interface => ['ros-jazzy-multisensor-calibration-interface']
  small_gicp_vendor    => ['ros-jazzy-small-gicp-vendor']
  std_msgs             => ['ros-kilted-std-msgs']
  sensor_msgs          => ['ros-kilted-sensor-msgs']
  geometry_msgs        => ['ros-kilted-geometry-msgs']
  visualization_msgs   => ['ros-kilted-visualization-msgs']
  ament_cmake          => ['ros-kilted-ament-cmake']
==> In place processing templates in 'debian' folder.
Expanding 'debian/source/options.em' -> 'debian/source/options'
Expanding 'debian/source/format.em' -> 'debian/source/format'
Expanding 'debian/gbp.conf.em' -> 'debian/gbp.conf'
Expanding 'debian/copyright.em' -> 'debian/copyright'
Expanding 'debian/changelog.em' -> 'debian/changelog'
Expanding 'debian/rules.em' -> 'debian/rules'
Expanding 'debian/control.em' -> 'debian/control'
Expanding 'debian/compat.em' -> 'debian/compat'
Creating tag: debian/ros-kilted-multisensor-calibration_2.0.4-2_noble
####
#### Successfully generated 'noble' debian for package 'multisensor_calibration' at version '2.0.4-2'
####

There you can see that the selected version for both small_gicp_vendor and multisensor_calibration_interface are actually Jazzy. In the “bookworm” debian and “rhel 9” RPM sections they are Kilted.

####
#### Generating 'bookworm' debian for package 'multisensor_calibration' at version '2.0.4-2'
####
Generating debian for bookworm...
No homepage set, defaulting to ''
<string>:1: (WARNING/2) Title overline too short.

^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Changelog for package multisensor_calibration
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Package 'multisensor-calibration' has dependencies:
Run Dependencies:
  rosdep key           => bookworm key
  libqt5-core          => ['libqt5core5a']
  libqt5-gui           => ['libqt5gui5']
  libqt5-widgets       => ['libqt5widgets5']
  rclcpp               => ['ros-kilted-rclcpp']
  rclcpp_components    => ['ros-kilted-rclcpp-components']
  cv_bridge            => ['ros-kilted-cv-bridge']
  image_transport      => ['ros-kilted-image-transport']
  pcl_ros              => ['ros-kilted-pcl-ros']
  pcl_conversions      => ['ros-kilted-pcl-conversions']
  tf2                  => ['ros-kilted-tf2']
  tf2_ros              => ['ros-kilted-tf2-ros']
  tinyxml2             => ['libtinyxml2-dev']
  urdf                 => ['ros-kilted-urdf']
  rviz_common          => ['ros-kilted-rviz-common']
  multisensor_calibration_interface => ['ros-kilted-multisensor-calibration-interface']
  small_gicp_vendor    => ['ros-kilted-small-gicp-vendor']
  std_msgs             => ['ros-kilted-std-msgs']
  sensor_msgs          => ['ros-kilted-sensor-msgs']
  geometry_msgs        => ['ros-kilted-geometry-msgs']
  visualization_msgs   => ['ros-kilted-visualization-msgs']
Build and Build Tool Dependencies:
  rosdep key           => bookworm key
  qtbase5-dev          => ['qtbase5-dev']
  qt5-qmake            => ['qt5-qmake']
  rclcpp               => ['ros-kilted-rclcpp']
  rclcpp_components    => ['ros-kilted-rclcpp-components']
  cv_bridge            => ['ros-kilted-cv-bridge']
  image_transport      => ['ros-kilted-image-transport']
  pcl_ros              => ['ros-kilted-pcl-ros']
  pcl_conversions      => ['ros-kilted-pcl-conversions']
  tf2                  => ['ros-kilted-tf2']
  tf2_ros              => ['ros-kilted-tf2-ros']
  tinyxml2             => ['libtinyxml2-dev']
  urdf                 => ['ros-kilted-urdf']
  rviz_common          => ['ros-kilted-rviz-common']
  multisensor_calibration_interface => ['ros-kilted-multisensor-calibration-interface']
  small_gicp_vendor    => ['ros-kilted-small-gicp-vendor']
  std_msgs             => ['ros-kilted-std-msgs']
  sensor_msgs          => ['ros-kilted-sensor-msgs']
  geometry_msgs        => ['ros-kilted-geometry-msgs']
  visualization_msgs   => ['ros-kilted-visualization-msgs']
  ament_cmake          => ['ros-kilted-ament-cmake']
==> In place processing templates in 'debian' folder.
Expanding 'debian/source/options.em' -> 'debian/source/options'
Expanding 'debian/source/format.em' -> 'debian/source/format'
Expanding 'debian/gbp.conf.em' -> 'debian/gbp.conf'
Expanding 'debian/copyright.em' -> 'debian/copyright'
Expanding 'debian/changelog.em' -> 'debian/changelog'
Expanding 'debian/rules.em' -> 'debian/rules'
Expanding 'debian/control.em' -> 'debian/control'
Expanding 'debian/compat.em' -> 'debian/compat'
Creating tag: debian/ros-kilted-multisensor-calibration_2.0.4-2_bookworm
####
#### Successfully generated 'bookworm' debian for package 'multisensor_calibration' at version '2.0.4-2'
####

Still unsure why that happens. But the source of the problem might be there.

Hi. Sorry to insist. Do you have an idea why that might be happening? @nuclearsandwich @cottsay

Thanks in advance.