https://launchpad.net/snapcraf... Contributions This release has seen some contributions from outside of the snapcraft core team, so we want to give a…" /> https://launchpad.net/snapcraf... Contributions This release has seen some contributions from outside of the snapcraft core team, so we want to give a…" />
We are pleased to announce the release snapcraft 2.27:
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:
This release brings in many features to speed up development and iteration, the biggest under the covers improvement is caching of stage-packages works correctly again succesive pull steps including a repeated set of stage-packages will be a breeze.
The other improvment is that delta uploads are now possible, it is currenly disabled but can be toggled by a feature flag in the environment, just set DELTA_UPLOADS_EXPERIMENTAL=1 and enjoy the benefits. The tentative plan is for this to be the default in snapcraft 2.28
Improvements have been made to the experimental classic confinement build setup to be more robust and reliable. These improvements allow to build classic confined snaps that work across a wider set of OS releases (particularly those with differing glibc versions). An early adopter of this work is conjure-up which now sports Trusty Tahr support. Learn more about conjure-up by visiting http://conjure-up.io/
The python plugin has also received some attention with regards to classic confinement. Most importantly it now does not leak any variables specific to the plugin into the environment.
Another improvement that has been made is that the plugin is now capable of detecting already staged interpreter instances and use that instead of providing one itself. This allows one to choose their own interpreter (which is important for classic confined snaps until the core snap implements use of –library-path for ld).
Making use of your own interpreter is really easy as it uses the common language already implemented in snapcraft (the plugin is just now smarter), here’s a snippet:
parts: my-python-app: source: ... plugin: python after: [python] python: source: https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tar.xz plugin: autotools configflags: [--prefix=/usr] build-packages: [libssl-dev] prime: - -usr/include
And with that you get to use python 3.6.0 in your snap!
Previous to snapcraft 2.27 it was not possible to build on non snapd enabled environments as the core snap needs to be available on the system where the classic confined snap is to be built. From this version onwards it should be possible to build classic confined snaps either with cleanbuild or Launchpad builders as snapcraft is hinted about the environment and sets up core accordingly.
A simple but useful feature is offloading builds to different instances, with that in mind one can now offload cleanbuild executions onto other lxd remotes. It is as simple as
snapcraft cleanbuild --remote my-remote
To create my-remote just follow the setup instructions on https://linuxcontainers.org/lxd/getting-started-cli/#multiple-hosts
No more wrapper scripts just to setup on environment entry, this is now tied into an app entry in apps. Here’s a quick example:
apps: vim: command: bin/vim environment: VIMRUNTIME: $SNAP/share/vim/vim80
Releasing to tracks worked out of the box, this is a user experience improvement on the result one sees when trying do to so.
If you are wondering what tracks are, here’s a simple explanation, they are like a Long Term Support channel added to your regular stability level channels (i.e.; stable, candidate, beta, edge), this is useful for cases where some users need to stick to a major version number such as the case of etcd where some might want to stick to 2.3 while others are happy with tracking latest (which is an implicit track).
From a snap developer point of view, here’s how to push and release to edge on the 0.2 track,
$ snapcraft push hello_0.3_amd64.snap --release 0.2/edge Pushing 'hello_0.3_amd64.snap' to the store. Uploading hello_0.3_amd64.snap [==============================================] 100% Ready to release! Revision 3 of 'hello' created. Arch Track Series Channel Version Revision amd64 0.2 16 stable - - candidate - - beta - - edge 0.3 3
And here’s how you would release,
$ snapcraft release hello 3 0.2/beta Arch Track Series Channel Version Revision amd64 0.2 16 stable - - candidate - - beta 0.3 3 edge 0.3 3
The ‘0.2/beta’ channel is now open.
For the full list of things available on 2.27 feel free to check https://launchpad.net/snapcraft/+milestone/2.27
To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.27
A great place to collaborate and discuss features, bugs and ideas on snapcraft is firstname.lastname@example.org 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.
— Sergio and the team
Learn how the Ubuntu desktop operating system powers millions of PCs and laptops around the world.
At Canonical, helping customers overcome their challenges is what we do every day. In the IoT world, a common challenge we encounter is customers who are interested in transitioning to Ubuntu Core and the snapcraft.io ecosystem, but are…
“All my centurions develop using snaps.” Julius Caesar By and large, software development can be an enjoyable process. Until you hit the first error, that is. At that point, you want to get past the stumbling blocks as quickly as possible…
During February 2019 we celebrated another fine Plasma release with our friends at KDE by showcasing a month of KDE snaps on the Snapcraft Twitter and other social accounts. The KDE developers have done amazing work to create an SDK that…