These are the release notes for Snapcraft 3.10.
For general details, including installation instructions, see Snapcraft overview, or take a look at Snapcraft release notes for other Snapcraft releases.
Snapcraft now supports the configuration of system usernames for daemons. This functionality was recently added to snapd, and enables a daemon to run as the user specified within an application’s ‘command’ entry, for example, among other functions.
Snapcraft now tracks the files within a snap that are derived from those listed under staged-packages
.
A build manifest already includes the set of all staged packages in staged-packages
, but the build manifest also includes files that were installed, then removed or filtered out, from the resulting snap.
The resulting list of staged and tracked packages is maintained within primed-stage-packages
. Security notices will eventually use primed-stage-packages
to reduce the number of false positive alerts that are caused by staged-packages listing packages that are not eventually present in the snap.
Snapcraft now reads a configuration file to populate the default snapcraft command-line options.
$HOME/.config/snapcraft/config.yaml
YAML
For example, a config like:
use-lxd: true
bind-ssh: true
http-proxy: http://192.168.1.10:3128
https-proxy: http://192.168.1.10:3128 ```
Matches:
snapcraft --use-lxd \
--bind-ssh \
--http-proxy http://10.155.149.232:3128 \
--https-proxy http://10.155.149.232:3128
While an argument can be overridden, it cannot be unset. For instance, if using
http-proxy
ordebug
, there is no method to currently unset these values.
Many improvements have been made to Remote build, including the removal of unnecessary options such as entering a Launchpad ID, which is provided via the login process.
To build snaps, remote build
previously used snapcraft from the edge
channel. From this release, snaps are created using snapcraft from the stable
channel.
The user interface has also been cleaned-up, with more changes on the way.
Snapcraft now supports passing http_proxy
and https_proxy
through to LXD and Multipass build environments. Options have also been added to specify these using --http-proxy <proxy>
and -https-proxy <proxy>
.
Local SSH configuration can now be passed through to LXD and Multipass environments.
The user’s SSH directory, (eg. ${HOME}/.ssh
), is bind-mounted to the build-environment, enabling SSH configuration within that build environment. This option is enabled by using --bind-ssh
with the LXD or Multipass providers.
The Rust plugin now correctly works with cargo workspaces.
From this release, the default is to now use the minimal rust profile for building, which solves a problem of generally building on s390x, arm64 and Ppcel64 architectures.
A few smaller issues, such as using the same path for CARGO_HOME
and RUSTUP_HOME
, have been fixes with this release, and Cargo.lock
files are now also properly respected.
The Go plugin has been cleaned-up and, as part of this release, now includes support for Go Mod
If a project makes use of the Go Modules feature, the right things will happen.
A long lived workaround has been removed from the robotics tooling. This includes the
‘rospack’ workaround now that rosdep -i
works correctly.
Another improvement to the plugin includes fixing an issue when using ‘–destructive-mode`, where some installation paths from the host machine leaked into the list of paths,considered by the Catkin plugin. This resulted in dependencies being found in the host path and consequently not being installed by the plugin in the expected parts path.
From this release, the Python plugin will process its requirements separately from setup.py. This helps to better satisfying local dependencies declared in
install_requires`. As a result, building becomes less costly as wheels are not unnecessarily generated with every build.
The Python plugin also creates a cleaner sitecustomize
that no longer leaks Snapcraft’s site-packages
into the part that the plugin processes.
Projects using extensions will gain better performance with this release, thanks to the scaffolding to bring up desktop applications being improved. These improvements include pre-checks being run before spawning shells to run some setup commands (even if they were idempotent - pre-checking avoids their cost).
Icon caching pre-checks are now also in place, and can reduce the time to bring up an application by up to 10 seconds.
Several AppStream fixes arrive with this release. These include a fix related to silently breaking XSLT transformations, when comments were present in the AppStream file, and support for the recently specced <em>
and <code>
tags. These are now supported by Snapcraft when using the parse-info
functionality with AppStream files.
The issues and features worked on for Snapcraft 3.10 are reflected in the following change list:
primed-stage-packages
run()
hide_output
flag to abstract _run() definitionstore
parameter in (_try)_login()prepend_command_chain
(#2861)<em>
Last updated 1 year, 4 months ago.