Skip to content

Releases: canonical/snapcraft

Welcome snapcraft 2.32

27 Jun 15:54

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of snapcraft 2.32:

  • This is a snap-only release, available in the candidate channel: sudo snap install --candidate snapcraft
  • View the full list of merged PRs.
  • Specific bug fixes can be seen on the Launchpad milestone.

Contributions

This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:

New in this release

Core

Who am I?

Several operations in the snap world require one’s account ID out of the store (e.g. creating model assertions). It gets old having to login to the web dashboard to get that ID, so we introduced a snapcraft whoami command that returns information about the account which is currently logged in.

Sources

Snapcraft has always supported local sources (i.e. sources sitting alongside the snapcraft.yaml), but has always used them as a fallback, i.e. if it was determined that it wasn’t another source, then it assumed it was local. This release includes the ability to actually specify that a given source is local, even if it’s e.g. a git repo.

Plugins

catkin

Support was added to the Catkin plugin for the newest ROS distro, Lunar.

rust

Support has been added for cross-compiling Rust parts by using snapcraft --target-arch=<arch>. Note that we’re still working on support for cross-compiling with stage-packages-- stay tuned for multi-arch support.

autotools

The autotools plugin supports a configflags option to supply flags to use when running ./configure. However, it was enforcing uniqueness on these flags, which prevented some projects from building successfully. This release stops enforcing uniqueness on configflags.

Final notes

To get the source for this release, check it out on github.

A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.

Happy snapcrafting!
-- Kyle and the team

Welcome snapcraft 2.31

13 Jun 18:29

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of snapcraft 2.31:

Contributions

This release saw some excellent contributions from outside the snapcraft core team, and we want to give a shout out to those folks. A team thank you to:

New in this release

Core

CLI

The move to the new argument parser caused the CLI to regress slightly by duplicating error messages in some circumstances and changing how it handled arguments to the snap command. That has been fixed in this release.

Resume snap downloads

Snapcraft supports downloading the core snap when building classic snaps. This release adds the ability to resume the download of that snap if an error is encountered when trying to fetch it. This feature is really used more in CI than anywhere else, particularly in our own tests, where downloading the snap fails all the time with connection resets. This change did not help quite as much as we’d hoped in that situation, but it’s nice to have nonetheless.

Sources

The git source-type was using --remote when updating submodules, which updated each submodule rather than using the commit recorded in the super project. That’s fixed in this release.

Better build-packages asset tracking

In this release, build-packages asset tracking has been extracted into a project-wide state area instead of being tracked individually in each part’s state. This fixes some awkward behavior when attempting to walk the dependency tree.

Plugins

qmake

The qmake plugin previously required one to specify the Qt version being used. In this release, it’s started defaulting to Qt5.

Go

Support has been added for cross-compiling Go parts by using snapcraft --target-arch=<arch>. This supports use of cgo as well. We’re currently working on support for cross-compiling with stage-packages-- if you’re using stage-packages, please wait to use this feature. We’re implementing it in phases.

Catkin

Larger Catkin projects often keep track of their components by utilizing one or more rosinstall files. This release adds support for those files to the Catkin plugin, allowing an entire ROS project to be built from a single file.

Store integration

Header change

This release changes away from using X-Ubuntu-Release to X-Ubuntu-Series for communication with the store.

Final notes

To get the source for this release, check it out on github.

A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums and the snapcraft channel on Rocket Chat. Please also feel free to file a bug.

Happy snapcrafting!
-- Kyle and the team

Welcome snapcraft 2.30

23 May 01:34

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of snapcraft 2.30:

  • specifics related to the release process and status of availability can be tracked on this forum post.
  • The full list of merged PRs.
  • Specific bug fixes can be seen on the launchpad milestone.

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:

  • Facundo Batista
  • Paolo Pisati
  • Tim Süberkrüb
  • Julian Liu
  • roxd
  • Eduardo Vega
  • Ricardo N Feliciano

New in this release

Core

snapcraft CLI

This has been a highly requested change in snapcraft, the CLI has been refactored to provide a much cleaner interface to the user (without breaking backwards compatibility). The diferences between one version and the other can be seen on this forum post

containers

The preliminary support for snapcraft to have a container assigned per project has been extended to work with all of the snapcraft build commands, still hidden by the feature flag, SNAPCRAFT_CONTAINER_BUILDS needs to be set. Read more and track it on this forum post

cleanbuild now correctly works when using the :arch syntax in build-packages and stage-packages, this is for example, having a stage-packages entry that ends with :i386 when cleanbuilding on amd64.

asset recording

Asset recording is a feature with two benefits, easier tracking of what is in a snap and also provides enough information to rebuild a snap with the information provided. The plumbing work is nearly done ironing out minor issues. If SNAPCRAFT_BUILD_INFO is set in the environment, the resulting snap will have a snap/snapcraft.yaml which can be use to rebuild the same snap.

More about the final results of asset recording can be looked up on this forum post

sources

There is now support for 7-zip files, if your source has the extension .7z it should just work. If not, it can be used by setting source-type to 7z.

Plugins

meson

A new plugin has made it to snapcraft, a plugin to work with meson, run snapcraft help meson to get acquainted with the plugin.

rust

The rust plugin now correctly works when source-subdir is set.

kernel

The kernel plugin has received a lot of attention this cycle. It correctly provides warnings when certain features are not enabled that would be required for a system to boot.

The plugin has also gained a new property kconfigflavor that works with the knowledge of Ubuntu kernel configurations to assemble a kernel config.

Store integration

snap collaboration

The user interface for this feature has been completed. Hidden in APIs until the store enables the feature so the story is complete.

Branches

Snapcraft has been enhanced to display branch information for the relevant commands.

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.30

A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums on https://forum.snapcraft.io and 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

Welcome snapcraft 2.29

26 Apr 16:06

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of snapcraft 2.29:

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:

  • Andy Li
  • Celso Providelo
  • Chris MacNaughton
  • Colin Watson
  • Eduardo Vega
  • Facundo Batista
  • Jumpei Ogawa
  • Para Siva

New in this release

Core

snapcraft snap

Improvements were made to the way snapcraft (through python) finds libraries when using ctypes, this ensures a correct functioning of snapcraft across operating systems. Other improvements were made for snapcraft across operating systems to have correct fall back mechanisms to continue functioning.

containers

There is now preliminary support for snapcraft to have a container assigned per project being worked on. The support today is limited to local lxd remotes and hidden with the feature flag SNAPCRAFT_CONTAINER_BUILDS that needs to be set.

Read more and track it on the forum: https://forum.snapcraft.io/t/per-project-containers/388

enhanced version support

The much requested feature of changing the user visible version in a dynamic way has arrived. There are two modes:

  • a pure script to run after everything has been primed by use of a version-script keyword.
  • a keyword of git that can be set to the version which tells snapcraft to generate the version from the information provided by the VCS holding the repo. This should be really beneficial for people releasing with annotated git tags.

More of this can be read on the forum: https://forum.snapcraft.io/t/snapcraft-version-scriptlets/106

asset recording

Asset recording is a feature with two benefits, easier tracking of what is in a snap and also provides enough information to rebuild a snap with the information provided. Some of the plumbing work has made it into this release.

More about the final results of asset recording can be looked up on the forums https://forum.snapcraft.io/t/asset-recording-for-a-built-snap/317/1

Plugins

rust

Projects using rust can now enjoy the benefits of classic confinement as the linker flags are now correctly set through rust flags settings.

nodejs

The nodejs plugin now has experimental support for yarn. To use it instead of npm the part just needs to set node-package-manager to yarn, here is an example for a part using the nodejs plugin:

parts:
  shout:
    plugin: nodejs
    node-packages:
      - shout
    node-package-manager: 'yarn'

ant

Proxy support for the ant plugin has been worked on. Mostly invisible to most users but necessary to correctly work on most CI systems like the launchpad builders which can be setup on https://build.snapcraft.io

Store integration

snap collaboration

The plumbing work to get snap collaboration in place has landed, for more information about the design for snap collaboration refer to https://forum.snapcraft.io/t/ux-for-snap-collaboration/86/17

UI polish

Improvements to make the UI less cluttered have been made, left over artifacts have been cleaned up as well. This should mostly affect the operation of the snapcraft push --release command.

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.29

A great place to collaborate and discuss features, bugs and ideas on snapcraft are the forums on https://forum.snapcraft.io and 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

Welcome snapcraft 2.28

30 Mar 17:39

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release snapcraft 2.28:
https://launchpad.net/snapcraft/+milestone/2.28

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:

  • Colin Watson
  • Jonathan Cave
  • Michael Hudson-Doyle
  • Olivier Tilloy
  • Paolo Pisati
  • pachulo

New in this release

Core

snapcraft snap

snapcraft can now properly build as a snap and does the right thing. Starting 2.28 snapcraft should eventually be able to be installed from the store, currently in the edge channel.

repo

The repo module in snapcraft, which deals with stage-packages entries and host distro specific packaging has been moved to a more modular python packge inside snapcraft allowing contributors to add support for other mechanisms such as support for rpm.

cleanbuild

The logic for cleanbuild has been reworked to properly detect when lxd (the lxc client actually) is installed as a snap or manually compiled. This change also comes into play for cross distro snapcraft support.

classic confinement

With this release it should be now possible to use launchpad builders to build for other architectures than amd64 as the detection logic for the dynamic linker in core has been fixed.

sources

Sources, thanks to an external contributor, can now make use of a new entry, source-checksum which can be added to sources that can be hashed, the format is the following: source-checksum: <algorithm>/<digest>. These are the supported algorithms:

  • md5
  • sha1
  • sha224
  • sha256
  • sha384
  • sha3_256
  • sha3_384 (recommended)
  • sha3_512

Plugins

python

Projects that use pbr, mostly openstack, now correctly setup their console_scripts defined in entry_points when using setup.cfg.
When building with python provided as a part, headers are now correctly setup to do the right thing for python packages that need to build code requiring these headers.

kernel

The kernel and kbuild plugins have received some needed attention for this release providing for better out of the box kernel builds.

The demos have been setup to now build proper bootable kernels with todays Ubuntu Core module dependency.

The plugin itself:

  • The plugin itself has added better support to the logic that adds and traces module dependencies when needing them added to initrd.
  • For the case of architectures that use dtbs, if no dtb is specified, all dtbs are installed to make sure the system could boot by default.
  • The kernel target, if not provided is now decided by the plugin depending on the build architecture.
  • When building, custom MAKEFLAGS no longer affect the build.

And to add to that, there is now a test plan for the kernel plugin that tracks the supported kernels.

catkin

The plugin has been expanded to support underlays, the benefit here is that it is now easy to build ROS projects that make use of the content interface. Check out the demo code.

Store integration

Delta uploads are now enabled for every snapcraft push done, a welcome bandwith saving addition.

Every store request now sends a proper User Agent string so the store can behave accordingly to the version of snapcraft in use and properly determine when deprecated APIs can go out the door.

The history command has been deprecated in favor of list-revisions with an alias of revisions. An explanation of the reasoning can be read on the deprecation notice DN4

The status, close and list-revisions commands have been updated to show track information when used.

Others

For the full list of things available on 2.28 feel free to check https://launchpad.net/snapcraft/+milestone/2.28

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.28

A great place to collaborate and discuss features, bugs and ideas on snapcraft is snapcraft@lists.snapcraft.io 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

Snapcraft 2.27 has been released

17 Feb 11:42

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release snapcraft 2.27:
https://launchpad.net/snapcraft/+milestone/2.27

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:

  • Colin Watson
  • John Lenton
  • Kit Randel
  • Loïc Minier
  • Marco Trevisan
  • elespike

New in this release

Faster iteration

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

classic confinement

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 previous to 2.27 implementations of classic confinement had the drawback of having the snapcraft wrappers around command entries for an app in apps export many environment variables relevant to the snap project depending on plugins used, and some conventional paths to binaries and libraries. While this feature is useful in a fully confined strict snap, it can cause issues when working with classic confinement as the environment becomes a mix of the classic system and that of the snap; for this reason no variables are exported into the environment when creating classic confined snaps.

python plugin

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!

CI builds

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.

Building on other lxd remotes

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

Setting up environment

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 channel tracks

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.

Others

For the full list of things available on 2.27 feel free to check https://launchpad.net/snapcraft/+milestone/2.27

Final Notes

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 snapcraft@lists.snapcraft.io 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

Snapcraft 2.26 has been released

03 Feb 11:31

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of version 2.26 of snapcraft has been released:
https://launchpad.net/snapcraft/+milestone/2.26

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:

  • Björn Tillenius
  • Marco Trevisan
  • Matthew Aguirre
  • Olivier Tilloy
  • Shawn Wang

New in this release

Snap directory now in place

All the snapcraft specific asset handling has been moved to the snap directory as the preferred location for the following:

  • snapcraft.yaml
  • setup/gui
  • parts/plugins

This adds up to the already existing location for hooks introduced in 2.25.

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.
However, use of parts/plugins will print a deprecation message with a link to https://snapcraft.io/docs/deprecation-notices/dn2 and use of setup/gui will behave in a similar way but linking to https://snapcraft.io/docs/deprecation-notices/dn3.

stage packages

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.;

parts:
    packages:
        plugin: nil
        stage-packages:
            - libfoo:armhf

Desktop file support enhancements

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.

godeps plugin

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.

As an example let's use juju. It currently as at the time of this writing:

  • github.com/juju/juju/cmd/juju
  • github.com/juju/juju/cmd/jujud
  • github.com/juju/juju/cmd/plugins/juju-metadata
  • github.com/juju/juju/cmd/plugins/juju-upgrade-mongo

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:

parts:
    juju: https://github.com/juju/juju
    go-importpath: github.com/juju/juju
    go-packages:
        - github.com/juju/juju/cmd/juju

catkin plugin

The catkin plugin has been optimized under the hood to work better with the compiler meant to be used with the chosen ROS release.

gradle plugin

The gradle plugin has been enhanced to also work with gradle transparently when gradlew is not provided with the sources of that part.

python plugin

The python plugin will now do the right thing when setting up a requirements entry and having an install_requires entry in setup.py.

General polishing

Some nice polishing that is part of ongoing work is showing up in this release:

  • schema errors related to text length limits now display an error a human can parse.
  • incorrect spacing issues have been fixed in some prompts.
  • some projects that are part of the tour had missing `build-packages added to them.
  • colors have been fixed for failed logins to the store.

Others

For the full list of things available on 2.26 feel free to check https://launchpad.net/snapcraft/+milestone/2.26

Final Notes

To get the source for this release check it out at https://github.com/snapcore/snapcraft/releases/tag/2.26

A great place to collaborate and discuss features, bugs and ideas on snapcraft is snapcraft@lists.snapcraft.io 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

Snapcraft 2.25 has been released

19 Jan 02:44

Choose a tag to compare

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 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 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 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 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 snapcraft@lists.snapcraft.io 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

Snapcraft 2.24 has been released

22 Dec 11:31

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of version 2.24 of snapcraft has been released:
https://launchpad.net/snapcraft/+milestone/2.24

Here's the list of features that you can find in this new release:

  • Experimental classic confinement allowing to create snaps for non pure snappy systems and have them see the full file system.
  • alias support for app entries in apps, which allows multiple top level commands per snap.
  • New core part atrritbures, prepare, build and install, which support scriptlets to run before, replacing and after the build step of a plugin respectively (snapcraft help plugins for more details).
  • New command, list-registered, to have a view of your snaps on the store and some relevant attributes.

Many minor fixes are available as well:

  • ldd crawling for system libraries have been improved with more standard library paths to check within the stage directory.
  • Multiple core plugins have been updated to not show deprecation messages.
  • Multiple parser improvements for shared parts on the wiki.

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:

  • Albert Astals Cil
  • Celso Providelo
  • Chris MacNaughton
  • Larry Price
  • Mathew Aguirre

To get the source for this release check it out at
https://github.com/ubuntu-core/snapcraft/releases/tag/2.24

A great place to collaborate and discuss features, bugs and ideas on
snapcraft is snapcraft@lists.snapcraft.io 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

Snapcraft 2.23 has been released

13 Dec 01:18

Choose a tag to compare

Hello snapcrafters!

We are pleased to announce the release of version 2.23 of snapcraft has been released:
https://launchpad.net/snapcraft/+milestone/2.23

Here's the list of features that you can find in this new release:

  • General cache mechanism for future features that require it.
  • Plumbing layer in place for pushing deltas instead of full sized snaps.
  • Source management for parts is now in the core making it much more robust (and core).
  • FTP is now a valid source.
  • New command snapcraft enable-ci to make it easy for developers to enable continuous delivery when using travis for continuous integration to push to a store development channel.

Many minor fixes are available as well:

  • The nodejs plugin now correctly manages run statements.
  • The cmake plugin now includes the capabilities of the make plugin.
  • The parts parser now supports remote dependencies correctly.
  • build-packages are now apt marked as automatically installed.
  • bash completion improvements when autocompleting commands that take snap files.
  • Proper change tracking for all core properties of a part.
  • Improved terminal support when TERM=dumb is set or not on a tty.
  • Store error improvements for registering and login.

Some testing improvements have been made too:

  • Migrated to testtools for more comprehensive test suites.
  • Replaced subTests with testscenarios.
  • Added tooling to build external snaps as part of our release process

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:

  • Celso Providelo
  • Kelvin Li
  • Kit Randel
  • Larry Price
  • Marco Trevisan
  • Parameswaran Sivatharman

To get the source for this release check it out at
https://github.com/ubuntu-core/snapcraft/releases/tag/2.23

A great place to collaborate and discuss features, bugs and ideas on
snapcraft is snapcraft@lists.snapcraft.io 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