Giter VIP home page Giter VIP logo

Comments (8)

christophebedard avatar christophebedard commented on August 19, 2024 1

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 ros-tooling/setup-ros#658 and #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

from action-ros-ci.

sea-bass avatar sea-bass commented on August 19, 2024 1

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).

from action-ros-ci.

MichaelOrlov avatar MichaelOrlov commented on August 19, 2024

@clalancette, @nuclearsandwich Any thoughts, why ament_cmake package not found on the Rolling ros-action-ci scripts?

from action-ros-ci.

christophebedard avatar christophebedard commented on August 19, 2024

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.

from action-ros-ci.

berndpfrommer avatar berndpfrommer commented on August 19, 2024

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 [email protected] and [email protected].
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

from action-ros-ci.

berndpfrommer avatar berndpfrommer commented on August 19, 2024

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.

from action-ros-ci.

sea-bass avatar sea-bass commented on August 19, 2024

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.

from action-ros-ci.

christophebedard avatar christophebedard commented on August 19, 2024

This should work fine if you're using Rolling on Ubuntu 24.04.

from action-ros-ci.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.