Closed cottsay closed 2 years ago
As an alternative, we could look through the resolved list of packages and only install the workspace package if we see any other packages in the list that start with
ros-$ROSDISTRO-*
. It's a bit of a violation, though, because rosdep is responsible for transforming package names into debian names.
I think we could do that. Just as we could also check if the only rosdistro resolved rosdep keys are in that bootstrap layer below ros_workspace
: ament_package
, ament_cmake_core
, and ros_workspace
itself. But given that ROS 1 jobs unconditionally install catkin for workspace packages, I think we can do the same for ROS 2 distributions. In the very long term I'd like to make this bootstrap layer part of the specification somehow so that we can define what's in it and how it should behave more globally rather than needing to do it ad-hoc through each tool.
I think we could do that. Just as we could also check if the only rosdistro resolved rosdep keys are in that bootstrap layer below
ros_workspace
:ament_package
,ament_cmake_core
, andros_workspace
itself. But given that ROS 1 jobs unconditionally install catkin for workspace packages, I think we can do the same for ROS 2 distributions. In the very long term I'd like to make this bootstrap layer part of the specification somehow so that we can define what's in it and how it should behave more globally rather than needing to do it ad-hoc through each tool.
All of this sounds reasonable. I think that this change is a good mitigation until we're ready to give some of that a try.
This will revert devel jobs to the previous behavior while leaving the CI jobs workspace-less.
As an alternative, we could look through the resolved list of packages and only install the workspace package if we see any other packages in the list that start with
ros-$ROSDISTRO-*
. It's a bit of a violation, though, because rosdep is responsible for transforming package names into debian names.Fixes: #950