Release notes: Snapcraft 3.8


#1

These are the release notes for Snapcraft 3.8.

For general details, including installation instructions, see Snapcraft overview, or take a look at Snapcraft release notes for other Snapcraft releases.

New core features

Windows installer

A lot of work has been done in preparation for the imminent installer for Microsoft Windows, which means Snapcraft will soon be able to run natively on Windows.

Improved build-base support

The following snap types have been added to build-base:

  • kernel
  • snapd

Extensions

Extensions replace Remote parts to help developers easily incorporate a group of components with single package.

They’re used at build and run time to ensure the inclusion of any necessary build and run dependencies.

Gnome 3.28

This release includes an extension to support Gnome 3.28. For discovery, run:

$ snapcraft list-extensions

Use the extension command to read details on what an extension does:

$ snapcraft extension gnome-3-28

The Gnome extension configures each application with the following plugs:

  • GTK3 themes
  • common icon themes
  • common sound themes
  • Gnome 3.28 runtime libraries and utilities.

For easier desktop integration, it also configures each application entry with these additional plugs:

To add the Gnome extension to an existing snapcraft.yaml, add gnome-3-28 to the apps entry that requires it.

To see how it extends the snapcraft.yaml, at the root of the project, run

$ snapcraft expand-extensions

Plugins

colcon

We’ve added a new syntax to ignore packages:

- colcon-packages-ignore:
  (list of strings)
  List of colcon packages to ignore. If not specified or set to an empty
  list ([]), no packages will be ignored.

There’s also a fix to enforce parallel building hints from snapcraft.

catkin

Alongside colcon (above), the catkin plugin also includes a fix to enforce parallel building hints from snapcraft.

rust


Support for properly building on s390x (natively) has been added.

Full list of changes

The issues and features worked on for 3.8 can be seen on the 3.8 launchpad milestone which are reflected in the following change list:

List of changes for Snapcraft 3.8

Chris Patterson

  • elf: handle invalid elf files
  • cli: handle exception when cleaning a part with a fresh project
  • spread: fix unbound variable error
  • docs: quick init for lxd in HACKING.md
  • windows: drop cx_Freeze support in setup.py
  • cli: use absolute import paths instead of relative imports
  • requirements: update to python 3.7 for PyYaml wheel
  • requirements: uprev all OS to pexpect 4.7.0
  • requirements: add pyinstaller 3.5 for win32
  • windows: add snapcraft.ico icon
  • windows: add pyinstaller spec file to generate frozen snapcraft.exe
  • dirs: find Windows data directory for currently-known scenarios
  • lxd: conditionally import pylxd based on OS
  • windows: add inno-installer script
  • windows: add powershell script to generate self-signed certificate
  • tests: fix snapcraft command for win32 virtual env
  • appveyor: build Windows inno-installer
  • windows: add MSIX/AppX installer
  • dirs: raise SnapcraftDataDirectoryMissingError() if paths not set
  • multipass: update ProverNotFound url to https://multipass.run
  • indicators: windows fix for is_dumb_terminal
  • multipass: add installation support for windows
  • travis: use apt addon to prevent apt update issues in CLA-check
  • multipass: fix setup exception when multipass is not found in PATH
  • dirs: check for existence of required data directories

Sergio Schvezov

  • test: autopkgtest beta
  • debian: minimal deb package for autopkgtest
  • extensions: new gnome extension (#2655)
  • deltas: code cleanup
  • tests: move meta testing to its own package
  • yaml utils: move OctInt from meta
  • spread tests: minor performance improvements
  • meta: move _errors to errors with related error classes
  • meta: decouple DesktopFile logic
  • schema: schema: build-base support for the snapd type
  • rust plugin: support for s390x
  • schema: build-base support for the kernel type
  • spread tests: update gnome extension tests
  • extensions: rename extension classes to known names
  • extensions: create the gnome-platform directory
  • extensions: improve docsting (used in the cli)
  • spread tests: fine tune arch support for autopkgtests

Anatoli Babenia

  • lifecycle: add support for building inside podman containers (#2659)
  • docker: remove snapcraft-wrapper

Jeremie Deray

  • catkin plugin: forward parallel build count (#2669)
  • colcon plugin: forward parallel build count (#2670)

Kyle Fazzari

  • spread tests: install package marker into ament index
  • colcon plugin: add ability to ignore packages (#2687)

Stefano Rivera

  • repo: properly handle install query for unknown apt packages (#2692)

Snap documentation
#2

3.8?
An here’s 20 characters


#3

Oops, thanks! Maybe we should write haiku or something to fill up those 20 chars when we need to.