ROS Resources: Documentation | Support | Discussion Forum | Service Status | Q&A answers.ros.org

Core, base and desktop releases

Hi,

Where do I find the list of packages that are included in the core (ros-rolling-ros-core), base (ros-rolling-ros-base) and desktop (ros-rolling-desktop) releases? How are these bundles generated? I think it would be great to have them separated also in the source installation to make the source, apt-get and docker installations behave in a similar way.

// Kristofer

1 Like

As in ROS 1, in a REP: REP 2001: ROS Bouncy and Newer Variants.

It’s not completely up-to-date with the current set of packages though, see comment below.

I’m not sure what you mean by bundles, but currently, that REP is updated manually.

There is some discussion about this though, see ros-infrastructure/rep#320. Whether automatically updating those lists aligns with what the intent of the (previous) REP(s) is is a bit unclear (hence the discussion).

ros2/variants contains the metapackages for the variants, and those are up-to-date.

I think it would be great to have them separated also in the source installation to make the source, apt-get and docker installations behave in a similar way.

There are already Docker images which correspond to the variants defined in REP 2001, see hub.docker.com/ros/name=foxy (note: ros:foxy-ros-core and ros:foxy-ros-base). Dockerfiles from osrf/docker_images.

For source builds: generating a list of the packages in a specific variant can be done using rosinstall_generator (similar to how this is done for ROS 1 source builds, it’s the same infrastructure):

# all packages in the 'ros_core' variant for Foxy
rosinstall_generator ros_core --rosdistro foxy --deps --tar > foxy-ros-core.rosinstall

# all packages in the 'ros_base' variant for Foxy
rosinstall_generator ros_base --rosdistro foxy --deps --tar > foxy-ros-base.rosinstall

# all packages in the 'desktop' variant for Foxy
rosinstall_generator desktop --rosdistro foxy --deps --tar > foxy-desktop.rosinstall

Finally, all variants are available as Debian metapackages, so to install ros_core for Foxy, you’d:

sudo apt install ros-foxy-ros-core

similar commands for the other variants.


PS: your post is more of a question than something to discuss, and as such should’ve been posted on ROS Answers. Please keep that in mind next time.

1 Like

Thanks for the information. I didn’t know about the variants repo. I will ask these type of questions in the ROS answers next time.

The core, base and desktop are easy to use in docker and when installing in ubuntu, but not when installing or building on for example mac. It would be great if it was easy to build from each variant. But maybe the solution is to include the rosinstall_generator in the documentation
Building ROS 2 on macOS — ROS 2 Documentation: Rolling documentation?

Just one more questions: one thing that I cannot find is what rmw-implementations that are included in each variant. I started looking into this when fastdds was not included in my rolling-base docker image. I know that cyclone will be the default but i thought that fastdds still would be bundled. We are using the discovery server. Where in the variant-files are the rmw implementations included if I would like to make my own variants?

We’ve been working towards this. I put in a proposal to make the change formally here: Switch from ros2.repos to rosinstall_generator for source installation instructions · Issue #1470 · ros2/ros2_documentation · GitHub

rmw implementations are just regular packages in general. You just need to install the other rmw implementation’s packages before you build. We only include the default one by default becaue that saves, build time, space, and avoids confusion for the simple cases.

@nuclearsandwich preciently opened a PR with more information on variants which will answer most of your questions about making your own.