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.
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 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. Input on the feature is welcome on the forum.
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 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 @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)