Open christian-rauch opened 2 years ago
We discussed this behaviour somewhat recently in https://github.com/ros-tooling/setup-ros/issues/439#issuecomment-1025247201 and added the part you quoted in #464
To check correct dependency resolution, it must be possible to set up the binary ROS repo without installing any ROS packages, except generic packages such as colcon.
This is already the case if you do not set required-ros-distributions
, which is only used to install ros-${ROS_DISTRO}-desktop
: https://github.com/ros-tooling/setup-ros/blob/dd88a18a51b173834c899cfc6cd7295a7fdeeba4/src/setup-ros-linux.ts#L152-L154
Further, required-ros-distributions should not be used in examples to not install the huge set of dependencies from ros-$ROS_DISTRO-desktop. Those are rarely required to run CI on a package and a package should define its own dependencies anyway.
I agree! I'd say this is mostly a documentation/examples issues then: as you mentioned, most/basic examples should be changed to not use required-ros-distributions
. PRs are always welcome, otherwise I'll get to it soon.
Ok, then just removing required-ros-distributions
is doing what I need.
What is the purpose of required-ros-distributions
then? Why would someone install ros-$ROS_DISTRO-desktop
in the CI? Can't we just remove that option entirely? :-)
What is the purpose of required-ros-distributions then? Why would someone install
ros-$ROS_DISTRO-desktop
in the CI?
I think it was originally intended to speed up CI, since then ROS 2 does not need to get built from source every time. However, as mentioned in https://github.com/ros-tooling/setup-ros/issues/439#issuecomment-1025247201, installing the desktop variant takes quite a long time, and users should just rely on action-ros-ci
to use rosdep
for dependencies.
Can't we just remove that option entirely? :-)
Not sure about completely removing it. We might have users that don't use action-ros-ci
and use setup-ros
to install the desktop variant. We can change all examples to not use it, and only mention it at the bottom of the README with a clear disclaimer.
Description
The documentation for
required-ros-distributions
mentions:If I do not use
required-ros-distributions
then ROS has to be built from source:Actual Behavior
According to the documentation, one can either build ROS entirely from source or install a binary distribution that already includes all dependencies of
ros-$ROS_DISTRO-desktop
.required-ros-distributions
is also still used in many examples, e.g. https://github.com/ros-tooling/setup-ros#iterating-on-all-ros-distributions-for-all-platforms.Expected Behavior
To check correct dependency resolution, it must be possible to set up the binary ROS repo without installing any ROS packages, except generic packages such as colcon.
Further,
required-ros-distributions
should not be used in examples to not install the huge set of dependencies fromros-$ROS_DISTRO-desktop
. Those are rarely required to run CI on a package and a package should define its own dependencies anyway.