Thanks to automatic updates, the tools that make up the snap ecosystem are constantly upgrading and evolving in the background, and this can make it difficult to track changes and new features as they appear.
Below, we outline some of the more significant recent changes to these snap-related tools and their associated documentation:
The current stable version of snapd is 2.48.
A lot of work in this release has gone into building the foundations for Ubuntu Core 20, the next generation of the snap-based and strictly-confined Ubuntu Core operating system. Features include recovery modes, full disk encryption and Raspberry Pi support. See Ubuntu Core 20 for more details.
Additional recent new features include better XDG desktop portal support, improvements to the CUPS interfaces, and our initial support for disk space awareness. For devices, there’s a new
snap reboot command to help a system boot into a recovery mode, and there’s now an option to disable
console-conf when initialising an Ubuntu Core device.
Other recent changes in snapd have added a variety of new interfaces, including system-packages-doc to help read system documentation, the uinput interface to access user devices from
/dev/uinput, and the system-source-code interface to allow snaps access to the host’s kernel config, source code and headers.
Another new feature, an experimental gdbserver option, can help when a snap is crashing or not behaving as expected.
$ snap run --experimental-gdbserver test-snapd-tools-core18.echo "hello gdb"
The above compliments the
snap run --gdb option that can already be used to debug executables running within a snap environment. For more information, see gdbserver option.
A lot of recent work in snapd has been to integrate and support
core20, a new base for snap deployment and development. It’s built on the most recent Ubuntu 20.04 LTS (Focal Fossa) release, and brings with it many of the same advantages.
This work has also been integral to the creation of Ubuntu Core 20, the next generation of Ubuntu-built-from-snaps. Ubuntu Core 20 features full disk encryption via TPM, a recovery mode and recovery chooser, along with enhanced Raspberry Pi support. See Ubuntu Core 20 for more details.
For more details on what’s planned for each snapd release, see the snapd roadmap.
The current stable version of Snapcraft is 4.4 (see below for details).
The Snapcraft team recently announced the release of Snapcraft 4.0, a major update to the tool that most of us use to build snaps.
This update overhauled the plugin system to version 2, which included lots of work to re-engineer older plugins to with the
core20, and a new
package-repositories schema to add additional repositories and components.
Snapcraft 4 also promoted the
--use-lxd option to stable, allowing you to build snaps within an LXD container for faster and less-resource heavy builds.
Since the release of Snapcraft 4.0, there have been several updates:
core20support for ROS 2 a Ninja generator
See Snapcraft release notes for a more detailed look at recent Snapcraft releases.
The latest updates to our documentation include pages on Progressive releases, which enable you to deploy your snap in phases, and Package repositories to add extra package sources to your snap build.
We’ve also made some tentative first steps to produce a troubleshooting page to help users identify the most common issues and hopefully their solutions. And with the recent additions of Flutter and ROS (1 and 2) extensions, the list of Snapcraft extensions has grown enough to warrant a separate page, which we’ve called Supported extensions.
For snap developers, we’ve added a guide to help build Flutter applications, a page to describe the differences between Public, Private and Unlisted snaps, the technical details behind our Security policy and sandboxing, and some guidance for Debugging snaps. The latter has been expanded to include details on using the excellent (and snap embedded) gdb and gdbserver.
We’ve also added an example implementation and, some real-world example scripts, to the Add snap configuration documentation. This hopefully makes adding configurable options to your own snaps easier.
Most of this documentation can be collaboratively discussed and changed on the respective topic in the doc category of the Snapcraft forum. See the documentation guidelines if you’d like to contribute.
Last updated a month ago. Help improve this document in the forum.