<div dir="ltr"><div>Hello snapcrafters!</div><div><br></div><div>We are pleased to announce the release of version `2.26` of snapcraft has been released:</div><div><a href="https://launchpad.net/snapcraft/+milestone/2.26">https://launchpad.net/snapcraft/+milestone/2.26</a></div><div><br></div><div><span style="font-size:12.8px">This </span><span class="gmail-il" style="font-size:12.8px">release</span><span style="font-size:12.8px"> is now available on xenial-updates, yakkety-updates and zesty.</span><br style="font-size:12.8px"><span style="font-size:12.8px">What follows are the full </span><span class="gmail-il" style="font-size:12.8px">release</span><span style="font-size:12.8px"> notes (the prettier version can be read at <a href="https://github.com/snapcore/snapcraft/releases/tag/2.25" rel="noreferrer" target="_blank" style="font-size:12.8px">https://github.com/snapcore/</a></span><a href="https://github.com/snapcore/snapcraft/releases/tag/2.26" rel="noreferrer" target="_blank" style="font-size:12.8px">snapcraft/releases/tag/2.26</a><span style="font-size:12.8px">)</span><br></div><div><br></div><div># Contributions</div><div><br></div><div>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:</div><div><br></div><div>- Björn Tillenius</div><div>- Marco Trevisan</div><div>- Matthew Aguirre</div><div>- Olivier Tilloy</div><div>- Shawn Wang</div><div><br></div><div># New in this release</div><div><br></div><div>## Snap directory now in place</div><div><br></div><div>All the snapcraft specific asset handling has been moved to the `snap` directory as the preferred location for the following:</div><div><br></div><div>- `snapcraft.yaml`</div><div>- `setup/gui`</div><div>- `parts/plugins`</div><div><br></div><div>This adds up to the already existing location for `hooks` introduced in 2.25.</div><div><br></div><div>On `snapcraft init`, snapcraft will now create a `snap/snapcraft.yaml` file. Keep in mind that the existing `snapcraft.yaml` and `.snapcraft.yaml` are still valid and *not* deprecated.</div><div>However, use of `parts/plugins` will print a deprecation message with a link to  <a href="https://snapcraft.io/docs/deprecation-notices/dn2">https://snapcraft.io/docs/deprecation-notices/dn2</a> and use of `setup/gui` will behave in a similar way but linking to <a href="https://snapcraft.io/docs/deprecation-notices/dn3">https://snapcraft.io/docs/deprecation-notices/dn3</a>.</div><div><br></div><div>## stage packages</div><div><br></div><div>The experience for using multi-architecture package entries in `stage-packages` has been refined. This should provide a better experience for when someone wants to; to illustrate image that on an `arm64` you would want to include an `armhf` package, e.g.;</div><div><br></div><div>```yaml</div><div>parts:</div><div>    packages:</div><div>        plugin: nil</div><div>        stage-packages:</div><div>            - libfoo:armhf</div><div>```</div><div><br></div><div>## Desktop file support enhancements</div><div><br></div><div>Snapcraft 2.25 introduced support for `desktop` file entries in as part of an app entry in `apps`. There have been improvements to this functionality for when the app entry in `apps` matches the snap `name` as well as polishing in the assembly of the resutling snap.</div><div><br></div><div>## godeps plugin</div><div><br></div><div>The `godeps` plugin until this release fetched all the dependencies defined in `dependencies.tsv` or that defined in the part by the `godeps-file` entry and proceeded to build all `package main` sources found in the tree. This can now be limited to only build certain packages by use of the `go-packages` entry.</div><div><br></div><div>As an example let's use `juju`. It currently as at the time of this writing:</div><div><br></div><div>- `<a href="http://github.com/juju/juju/cmd/juju`">github.com/juju/juju/cmd/juju`</a></div><div>- `<a href="http://github.com/juju/juju/cmd/jujud`">github.com/juju/juju/cmd/jujud`</a></div><div>- `<a href="http://github.com/juju/juju/cmd/plugins/juju-metadata`">github.com/juju/juju/cmd/plugins/juju-metadata`</a></div><div>- `<a href="http://github.com/juju/juju/cmd/plugins/juju-upgrade-mongo`">github.com/juju/juju/cmd/plugins/juju-upgrade-mongo`</a></div><div><br></div><div>Without the `go-packages` entry you would end up with 4 binaries in your snap `juju`. `jujud`. `juju-metadata` and `juju-upgrade-mongo`. If for example you wanted to only build `juju` something like this would do the trick:</div><div><br></div><div>```yaml</div><div>parts:</div><div>    juju: <a href="https://github.com/juju/juju">https://github.com/juju/juju</a></div><div>    go-importpath: <a href="http://github.com/juju/juju">github.com/juju/juju</a></div><div>    go-packages:</div><div>        - <a href="http://github.com/juju/juju/cmd/juju">github.com/juju/juju/cmd/juju</a></div><div>```    </div><div><br></div><div>## catkin plugin</div><div><br></div><div>The `catkin` plugin has been optimized under the hood to work better with the compiler meant to be used with the chosen ROS release.</div><div><br></div><div>## gradle plugin</div><div><br></div><div>The `gradle` plugin has been enhanced to also work with `gradle` transparently when `gradlew` is not provided with the `sources` of that part.</div><div><br></div><div>## python plugin</div><div><br></div><div>The `python` plugin will now do the right thing when setting up a `requirements` entry and having an `install_requires` entry in `setup.py`.</div><div><br></div><div>## General polishing</div><div><br></div><div>Some nice polishing that is part of ongoing work is showing up in this release:</div><div><br></div><div>- schema errors related to text length limits now display an error a human can parse.</div><div>- incorrect spacing issues have been fixed in some prompts.</div><div>- some projects that are part of the tour had missing `build-packages added to them.</div><div>- colors have been fixed for failed logins to the store.</div><div><br></div><div>## Others</div><div><br></div><div>For the full list of things available on 2.26 feel free to check <a href="https://launchpad.net/snapcraft/+milestone/2.26">https://launchpad.net/snapcraft/+milestone/2.26</a></div><div><br></div><div># Final Notes</div><div><br></div><div>To get the source for this release check it out at <a href="https://github.com/snapcore/snapcraft/releases/tag/2.26">https://github.com/snapcore/snapcraft/releases/tag/2.26</a></div><div><br></div><div>A great place to collaborate and discuss features, bugs and ideas on snapcraft is <a href="mailto:snapcraft@lists.snapcraft.io">snapcraft@lists.snapcraft.io</a> mailing list or on the snapcraft channel on Rocket Chat <a href="https://rocket.ubuntu.com/channel/snapcraft">https://rocket.ubuntu.com/channel/snapcraft</a></div><div><br></div><div>To file bugs, please go to <a href="https://bugs.launchpad.net/snapcraft/+filebug">https://bugs.launchpad.net/snapcraft/+filebug</a>.</div><div><br></div><div>Happy snapcrafting!</div><div>-- Sergio and the team</div><div><br></div></div>