Snapcraft 2.25 has been released
Hello snapcrafters!
We are pleased to announce the release of version 2.25
of snapcraft has been released:
https://launchpad.net/snapcraft/+milestone/2.25
Contributions
This release has seen some contributions from outside of the snapcraft core team, so we want to give a shout out to these folks, here's a team thank you for:
- Chris Holcombe
- Jonathon Love
- Kit Randel
- Marco Trevisan
- Matthew Aguirre
- Olivier Tilloy
New in this release
Support for hooks
Hooks support has arrived. There are currently two ways to use them, either with a by-convention path or by using a part
and installing into an expected path in the part's install directory.
Find out more about this feature at https://github.com/snapcore/snapcraft/blob/master/docs/hooks.md
Desktop file support
Aside from the by-convention functionality already in place, you can now declare a desktop file from your app within an apps
entry using a path relative to the prime
directory pointing to a desktop file, snapcraft will take care of the rest. So if your project already has a desktop file, say in ./prime/usr/share/applications/my-app.desktop
all you need to do is something like this:
apps:
my-app:
command: my-app
desktop: usr/share/applications/my-app.desktop
That said, it is worth mentioning that the by-convention mechanism is still supported.
rust plugin
The rust
plugin has seen an improvement and a couple of bug fixes.
The added feature allow for one to set rust-features
which is a list of strings used to build optional dependencies (run snapcraft help rust
for a bit more details).
The bug fixes relate to:
- Allowing to build with
Cargo.toml
not in the base source directory. - Repecting the other
rust
plugin properties:rust-channel
andrust-revision
.
nodejs plugin
The plugin now correctly downloads dependencies in package.json
to the correct location.
godeps plugin
This plugin is now no longer affected by GOBIN
being set in the environment.
deb sources
deb
sources are now being handled with python-debian
which does incorrecly handle symlinks.
More modes for daemon's in apps
You can now set the daemon
property in an apps
entry to notify
(and it will follow systemd's expected behavior for this service type).
Deprecations
Some new deprecations have been introduced, for parts
the prime
keyword is now favored over the snap
one. When using the snap
keyword a link to http://snapcraft.io/docs/deprecation-notices/dn1 will be presented with more information and the migration path.
Plugins that are part of snapcraft that were displaying DEPRECATED
notices have all been updated to use the newer plugin API.
Classic confinement
Some improvements were made to classic confinement with a more comprehensive error when the prerequisites to build a classic confined snap are not met.
parts
Improvements were made to the core parts management of snapcraft:
stage
entries now don't need to be replicated inprime
.- cleaning all parts works correctly even if
snapcraft.yaml
is broken.
Others
For the full list of things available on 2.25 feel free to check https://launchpad.net/snapcraft/+milestone/2.25
Final Notes
To get the source for this release check it out at
https://github.com/snapcore/snapcraft/releases/tag/2.25
A great place to collaborate and discuss features, bugs and ideas on
snapcraft is [email protected] mailing list or on the snapcraft
channel on Rocket Chat https://rocket.ubuntu.com/channel/snapcraft
To file bugs, please go to https://bugs.launchpad.net/snapcraft/+filebug.
Happy snapcrafting!
-- Sergio and the team