Background
ROS 1 is currently supported by the Catkin plugin. ROS 2 is currently under development and approaching release of beta 2 (current goal is July 7th), so we’re looking to add support to Snapcraft. ROS 2 changes several key technologies that require a separate plugin:
- It uses a new build system called
ament
- It does not have a master (it uses DDS for distributed discovery)
- Debian packages mostly don’t exist, and are still under heavy development:
-
http://repo.ros2.org, rosdistro
r2b2
for beta 2
-
http://repo.ros2.org, rosdistro
Proposal
Create a new plugin called ament
. Investigate re-using debs as done in the Catkin plugin, but resort to building ROS from source if necessary (the debs may be too unstable).
Re-use as many components from the Catkin plugin as possible, most notably rosdep
. This will require stripping such components out of the Catkin plugin and into a more common area, currently running with creating a snapcraft.plugins.ros
package for such things. Do this as a prerequisite step so as to keep diffs small.