These are the release notes for Snapcraft 3.8.
New core features
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:
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.
This release includes an extension to support Gnome 3.28. For discovery, run:
$ snapcraft list-extensions
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
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
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.
Alongside colcon (above), the catkin plugin also includes a fix to enforce parallel building hints from snapcraft.
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
- 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
- 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
- lifecycle: add support for building inside podman containers (#2659)
- docker: remove snapcraft-wrapper
- catkin plugin: forward parallel build count (#2669)
- colcon plugin: forward parallel build count (#2670)
- spread tests: install package marker into ament index
- colcon plugin: add ability to ignore packages (#2687)
- repo: properly handle install query for unknown apt packages (#2692)