Release notes: Snapcraft 4.2
The team behind Snapcraft is pleased to announce the release of Snapcraft 4.2.
Highlights for this release include:
- new ROS 2 (Foxy Fitzroy) support
- cmake Ninja generator with
- improved track and channel listing
For general details, including installation instructions, see Snapcraft overview, or take a look at Snapcraft release notes for other Snapcraft releases.
Special thanks to the contributors that helped to make this release happen: @GamePad64, @Saviq, @cjp256, @igorljubuncic and @sergiusens.
ROS 2 Foxy Fitzroy extension and updated colcon plugin
Snapcraft 4.2 includes experimental support for Robot Operating System (ROS 2) Foxy Fitzroy LTS with a new extension and colcon plugin when used with
For example, ROS 2 applications can now be built with a
snapcraft.yaml as simple as:
summary: ROS2 Talker/Listener Example
This example launches a ROS2 talker and listener.
build-packages: [make, gcc, g++]
command: opt/ros/foxy/bin/ros2 launch demo_nodes_cpp talker_listener.launch.py
plugs: [network, network-bind]
For a walkthrough on how to work with the plugin and extension, see https://snapcraft.io/blog/how-to-build-a-snap-using-ros-2-foxy.
Ninja file generation with cmake
By default, the cmake plugin creates a Makefile when used with with
core20 . This release adds the
cmake-generator plugin property to optionally generate of a Ninja file:
List channel tracks from Snapcraft
You can now view the available channel tracks for a given snap with the new
snapcraft list-tracks <snap-name> command (or with its alias, tracks).
The command output shows a list of tracks together with their status, creation date, and assigned version pattern, which is required by a given snap revision to be able to release to a given track:
Name Status Creation-Date Version-Pattern
latest default - -
Status can be one of the following:
- default (implicit active)
- meta: detailed warnings for resolution of commands @cjp256 (#3219)
- file utils: introduce get_host_tool_path() to find commands on host @cjp256 (#3244)
- plugins v2: use repo.Repo not repo.Ubuntu in colcon @cjp256 (#3257)
- remote-build: use requests.get() instead of urlopen() @cjp256 (#3255)
- spread tests: fix classic patchelf linker regex to match all arches @cjp256 (#3247)
- tests: restrict colcon / ros2-foxy test to amd64 & arm64 @cjp256 (#3254)
- extensions: prepend the snapd glvnd path @Saviq (#3253)
- build providers: honour http proxy settings for snapd @cjp256 (#3251)
- snapcraft: use system certificates by default for https requests @cjp256 (#3252)
Specification and documentation changes