Special thanks to the contributors that made this release happen: artivis, cjp256, galgalesh, hellsworth, kenvandine, kyrofa, maxiberta, sergiusens and timsueberkrueb
Command Line
It is now possible to add custom CA certificates into the build environments created by Snapcraft by using `--add-ca-certificates` with the lifecycle related commands.
And, Snapcraft's `snap` command now accepts an `--output` parameter.
Extensions
Desktop
A new mechanism to pre-generate font caches has been added to the desktop related extensions. This allows for system font caches to be generated at install time and isolated from the potentially ABI incompatible host generated cache.
To benefit from this feature, any extension using Snapcraft project just needs to rebuild their snap. More details about this feature can be found in the [specification](https://github.com/snapcore/snapcraft/blob/master/specifications/desktop-extensions-font-hook.org).
Package Repositories
The _experimental_ package repositories feature is adapting to the latest changes:
- The undocumented =$SNAPCRAFT_APT= variables have been removed.
- Introduced improved error handling and schema validation.
The [specification](https://github.com/snapcore/snapcraft/blob/master/specifications/package-repositories.org) has been finalized which opens a path from leaving the experimental flag behind.
Store
Progressive Releases
Progressive releases now support reporting metrics as defined in the [specification](https://github.com/snapcore/snapcraft/blob/master/specifications/progressive-releases.org). Input on the feature is welcome on the [forum](https://forum.snapcraft.io/new-topic?title=Progressive%20Releases%20Feedback&category=snapcraft).
Snap Revisions
Snapcraft's `revisions` command is now internally using a new endpoint which should provide much better results:
- the table headers have slightly changed to better represent architectures.
- channels are now fully qualified (i.e.; `<track/risk/branch>`).
- comma separated column entries no longer have a space separating each item.
Refer to the [specification](https://github.com/snapcore/snapcraft/blob/master/specifications/history-to-releases.org) for further details.
---
Full list of changes
New Features
- cli: remove spaces from progressive metrics sergiusens (3335)
- storeapi: add releases endpoint sergiusens (3311)
- cli: provide option to install ca certs into build environment cjp256 (3224)
- Add PYTHONPATH to environment (fixes 1893262) hellsworth (3270)
- snap packaging: fetch remote icons configured via appstream cjp256 (3241)
- pluginhandler: support using patchelf on strict snaps kyrofa (3277)
- gnome extensions: multiarch bindtextdomain.so support galgalesh (3127)
- db: introduce generalized datastore cjp256 (3238)
- meta: write stubs for command-chain using hooks when needed sergiusens (3296)
- cli: support snap --output <directory> cjp256 (3297)
- extensions: configure hook for fonts sergiusens (3299)
- storeapi: add support for reporting status of progressive releases maxiberta (3306)
- package repositories: improve error handling cjp256 (3334)
- spread tests: move package-repositories test snaps into own dir cjp256 (3331)
Maintenance
- cli: update revisions to use releases API sergiusens (3329)
- storeapi: remove bindings for history sergiusens (3332)
- v1 plugins: lock godep's dependencies cjp256 (3285)
- readme: remove link to Google+ timsueberkrueb (3292)
- storeapi: drop arch requirement for get_channel_mapping() cjp256 (3301)
- build(deps-dev): bump junit from 3.8.1 to 4.13.1 in /tests/spread/plugins/v1/maven/snaps/legacy-maven-hello/my-app dependabot (3316)
- build(deps-dev): bump junit from 3.8.1 to 4.13.1 in /tests/spread/plugins/v1/maven/snaps/maven-hello/my-app dependabot (3315)
- spread tests: introduce electron-builder test cjp256 (3312)
- unit tests: fix runtests.sh not filtering tests when passed a subdirectory maxiberta (3305)
- electron-builder spread test: sync expected snapcraft.yaml cjp256 (3323)
- package repositories: drop $SNAPCRAFT_APT_HOST_ARCH variable cjp256 (3322)
- package repositories: drop $SNAPCRAFT_APT_RELEASE variable cjp256 (3328)
- flutter tests: updated for latest embedder kenvandine (3310)
- lxd unit tests: simplify command checking pattern cjp256 (3326)
Bug Fixes
- package repositories: fix case where formats is empty cjp256 (3330)
- meta: add error check for "command not found" cjp256 (3321)
- snapcraftctl: add checks for empty string for set-version & set-grade cjp256 (3325)
- pluginhandler: properly handle snapcraftctl errors cjp256 (3317)
- schema: add regex to validate description is non-empty cjp256 (3303)
- set ROS_PYTHON_VERSION for rosdep artivis (3324)
- Set ROS_VERSION for rosdep in plugins v1 artivis (3313)
- repo: install requested build-package versions cjp256 (3221)
- project loader: install dirmngr prior to configuring package repositories cjp256 (3294)
- build providers: fix issues running on Windows sergiusens (3289)
- cmake v2 plugin: add help for cmake generators sergiusens (3288)
- setup.py: assert with helpful error when unable to determine version cjp256 (3307)
Specifications and Documentation
- specifications: v1 history to v2 releases sergiusens (3304)
- specification: desktop extension font hook sergiusens (3295)
- specifications: finalization of package repositories spec cjp256 (3333)