Snapcraft 2.25 has been released

Sergio Schvezov sergio.schvezov at
Thu Jan 19 11:51:42 UTC 2017

Hello snapcrafters!

We are pleased to announce the release of version `2.25` of snapcraft has been released:

This release is now available on xenial-updates, yakkety-updates and zesty.
What follows are the full release notes (the prettier version can be read at

# 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

## 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:

        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` and `rust-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 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 in `prime`.
- 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

# 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

# Final Notes
To get the source for this release check it out at

A great place to collaborate and discuss features, bugs and ideas on
snapcraft is snapcraft at mailing list or on the snapcraft
channel on Rocket Chat

To file bugs, please go to

Happy snapcrafting!
-- Sergio and the team

Sent using Dekko from my Ubuntu device

More information about the Snapcraft mailing list