Closed Flova closed 4 months ago
@clalancette, @nuclearsandwich Any thoughts, why ament_cmake
package not found on the Rolling ros-action-ci scripts?
This is probably related to the move to Ubuntu 24.04. There's an open PR on standby for that, but it might still need some adjustments. I won't have access to a computer until this upcoming Monday, though.
I have similar issues (only on rolling, works with iron and humble). For rolling it finds some ament stuff, but doesn't find the ament_clang_format_cmake
package. Using setup-ros@0.7.1 and action-ros-ci@0.3.5.
I'm confused what to use as the build image. I use ubuntu-latest, but since noble has not been release yet, wouldn't that default to jammy, an OS that rolling already has transitioned away from?
-- Found ament_cmake_copyright: 0.16.3 (/opt/ros/rolling/share/ament_cmake_copyright/cmake)
-- Found ament_cmake_cppcheck: 0.16.3 (/opt/ros/rolling/share/ament_cmake_cppcheck/cmake)
-- Found ament_cmake_cpplint: 0.16.3 (/opt/ros/rolling/share/ament_cmake_cpplint/cmake)
CMake Error at CMakeLists.txt:64 (find_package):
By not providing "Findament_cmake_clang_format.cmake" in CMAKE_MODULE_PATH
this project has asked CMake to find a package configuration file provided
by "ament_cmake_clang_format", but CMake did not find one.
Could not find a package configuration file provided by
"ament_cmake_clang_format" with any of the following names:
ament_cmake_clang_formatConfig.cmake
ament_cmake_clang_format-config.cmake
In the case of ament_cmake_clang_format not found, this is due to ros-rolling-ament-cmake-clang-format not being installed during the setup phase. That package should be installed though because there is a dependency on it in package.xml, and there is also a rosdep db entry for ament_cmake_clang_format. The package also exists under rolling.
Yeah, you can see here that rosdep
doesn't really install any ROS packages: https://github.com/ros-sports/humanoid_base_footprint/actions/runs/8342223887/job/22829915596#step:5:86. From what I understand, that workflow is configured not to install ROS 2 Rolling in setup-ros
and rely on rosdep
in action-ros-ci
to install required dependencies. However, for example, it can't find sensor_msgs
or ament_lint_common
for Jammy.
This is due to the switch to Ubuntu 24.04 Noble*. rosdep
now can only resolve Rolling packages on Ubuntu Noble, not Jammy. For example, I haven't run rosdep update
on my system for quite a while, so it does correctly resolve ament_cmake
for Ubuntu Jammy and Rolling (but not Ubuntu Noble and Rolling):
$ rosdep resolve ament_cmake --os=ubuntu:jammy --rosdistro=rolling
#apt
ros-rolling-ament-cmake
$ rosdep resolve ament_cmake --os=ubuntu:noble --rosdistro=rolling
ERROR: No definition of [ament_cmake] for OS version [noble]
No definition of [ament_cmake] for OS version [noble]
rosdep key : ament_cmake
OS name : ubuntu
OS version : noble
Data:
_is_ros: true
debian:
bullseye:
apt:
packages:
- ros-rolling-ament-cmake
osx:
homebrew:
packages:
- ros/rolling/ament_cmake
rhel:
'9':
dnf:
packages:
- ros-rolling-ament-cmake
ubuntu:
jammy:
apt:
packages:
- ros-rolling-ament-cmake
After running rosdep update
, it can resolve ament_cmake
for Ubuntu Noble and Rolling, but not Ubuntu Jammy and Rolling:
$ rosdep update
reading in sources list data from /etc/ros/rosdep/sources.list.d
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/osx-homebrew.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/base.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/python.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/rosdep/ruby.yaml
Hit https://raw.githubusercontent.com/ros/rosdistro/master/releases/fuerte.yaml
Query rosdistro index https://raw.githubusercontent.com/ros/rosdistro/master/index-v4.yaml
Skip end-of-life distro "ardent"
Skip end-of-life distro "bouncy"
Skip end-of-life distro "crystal"
Skip end-of-life distro "dashing"
Skip end-of-life distro "eloquent"
Skip end-of-life distro "foxy"
Skip end-of-life distro "galactic"
Skip end-of-life distro "groovy"
Add distro "humble"
Skip end-of-life distro "hydro"
Skip end-of-life distro "indigo"
Add distro "iron"
Skip end-of-life distro "jade"
Skip end-of-life distro "kinetic"
Skip end-of-life distro "lunar"
Skip end-of-life distro "melodic"
Add distro "noetic"
Add distro "rolling"
updated cache in /home/christophe.bedard/.ros/rosdep/sources.cache
$ rosdep resolve ament_cmake --os=ubuntu:jammy --rosdistro=rolling
ERROR: No definition of [ament_cmake] for OS version [jammy]
No definition of [ament_cmake] for OS version [jammy]
rosdep key : ament_cmake
OS name : ubuntu
OS version : jammy
Data:
_is_ros: true
debian:
bookworm:
apt:
packages:
- ros-rolling-ament-cmake
osx:
homebrew:
packages:
- ros/rolling/ament_cmake
rhel:
'9':
dnf:
packages:
- ros-rolling-ament-cmake
ubuntu:
noble:
apt:
packages:
- ros-rolling-ament-cmake
$ rosdep resolve ament_cmake --os=ubuntu:noble --rosdistro=rolling
#apt
ros-rolling-ament-cmake
We need https://github.com/ros-tooling/setup-ros/pull/658 and https://github.com/ros-tooling/action-ros-ci/pull/842 to be able to use Noble with setup-ros
and action-ros-ci
.
(*) assuming this kind of disruption is intended; see also https://discourse.ros.org/t/preparing-ros-2-rolling-for-the-transition-to-ubuntu-24-04/35673/10
Have there been any updates on this? I've had contributions to several repos be blocked on Ubuntu 24.04 tests that use this action.
This should work fine if you're using Rolling on Ubuntu 24.04.
It indeed does... after your suggestion to update!
For those reading this issue, you should bump your version of this setup-ros
action to the latest (0.7.7
or v0.7
at the time of writing).
Description
The build step in the rolling ci fails with what looks like a missing source command. The same CI setup passes the build step just fine for iron and humble. The failing package only contains some message descriptions.
Expected Behavior
The build of the messages should pass.
Actual Behavior
The build results in this error, which seems like ros isn't sourced correctly.
the error is from https://github.com/ros-sports/ipm but is also happening in other repos https://github.com/ros-sports/humanoid_base_footprint/pull/51 and doesn't seem to be package specific.
To Reproduce
** Steps to reproduce the behavior, e.g.
ros-action-ci
targeting ROS rolling to your GitHub actionsSystem (please complete the following information)
Additional context
Used workflow definition: