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