Categories: BlogCanonicalUbuntu

Snapcraft 6.0 is around the corner

A good sign of maturity and confidence in software is when said software utilizes its own components for future development and enablement. Snapcraft is a command-line utility that allows developers to package and distribute their applications as snaps. But Snapcraft itself is also distributed as a snap, and built in the same manner!

Today, Snapcraft is built using the core18, based off of Ubuntu 18.04 LTS. Very soon, Snapcraft will move to the latest LTS base, core20, both to ensure forward support and updates, as well as to make use of various improvements in the snappy ecosystem. This migration will bring a number of important changes, so we’d like to share our roadmap and plan for Snapcraft, and how these changes may affect you.

Goodbye
Sponsored
i386, hello riscv64!

Ubuntu 20.04 LTS introduces support for a new family of CPU architectures, riscv64. At the same time, the support for i386 was reduced to a skeleton list of 32-bit compatibility libraries. This means that the Snapcraft migration to core20 would entail the addition of riscv64 and the removal of i386 in the list of supported build and run architectures.

At a first glance, this may sound alarming, but it is not:

  • Snapcraft already maintains two tracks in parallel, the mainstream version in the latest track, starting with version 5.x, and the legacy track 4.x, specifically designed for use with developers and publishers who require the use of ESM base (core), and cannot migrate to the newer bases. The legacy track supports core, and the i386 architecture.
  • Similarly, builds for core20 are already configured not to use and build for the i386 architecture, which reduces any potential disruption in development workflows for those already building their snaps with core20.

The change primarily impacts those publishers and developers who are building their snaps with core18 and are targeting the i386 architecture. However, much as we did with the introduction of the ESM support for Ubuntu 16.04 LTS, we want to make the change as seamless as possible. Indeed, the 32-bit compatibility libraries remain in the Ubuntu 20.04 archives, and are not affected by this migration.

Core18 will still be around

The latest version of Snapcraft will use core20 and be published in the 6.x track. The feature set available in the 5.x track will be frozen at the time of the split, and any new features and options will be published in the 6.x track.

Sponsored

Launchpad will automatically dispatch core18 + i386 builds using a new 5.x/stable channel, while dispatching other core18 builds using 6.x. The version of Snapcraft in this channel will remain built on core18 and will retain i386 support.

Individual publishers will have the option to stay on the 5.x track, with its set of features and capabilities, or move on to core20 and adjust or edit the set of architectures they want to support, which would essentially give them the option to drop i386 support. Staying on the 5.x track (for i386 support) implies that publishers will not be able to utilize any new features (like new keywords or extensions) that may become available in the 6.x channel in the future.

Summary

For most developers and publishers, the release of Snapcraft 6.x will not cause any change to their existing processes. They will be able to continue building snaps as before, and utilize the latest features in the 6.x channel. For those who still need to support the i386 architecture, they can use the 5.x channel. Moreover, Launchpad will retain the ability to dispatch core18 tasks, with or without the i386 architecture.

We hope the outlined plan clarifies any questions that may arise around Snapcraft 6.x, and that you will continue having a good, efficient experience with snaps. If you have any concerns or suggestions, please reach out to us via the forum. We are always interested to learn more on how we can make our products better.

Photo by Pravin Rahangdale on Unsplash.

Ubuntu Server Admin

Recent Posts

How to Fix VMware’s “Could not open /dev/vmmon” Error on Ubuntu

You’ve recently installed VMware Workstation on your Ubuntu system and encountered the frustrating “Could not…

6 hours ago

How to Fix Ubuntu 404 Errors While Fetching Dependencies

Have you ever found yourself staring at a terminal full of 404 errors while trying…

6 hours ago

How to Fix ‘Please Install All Available Updates’ Error When Upgrading Ubuntu 18.04 to 20.04 LTS

One particularly frustrating error that many users face when trying to upgrade from Ubuntu 18.04 …

6 hours ago

How to fix “Release is not valid yet” Error in Docker Containers

In the world of containerization, time synchronization issues can create unexpected roadblocks when working with…

6 hours ago

How to fix “Externally Managed Environment” Pip Errors on Ubuntu

If you’ve recently upgraded to Ubuntu 23.04 or newer, you might have encountered a frustrating…

6 hours ago

Ubuntu now officially supports NVIDIA Jetson: powering the future of AI at the edge

Canonical announces the General Availability of Ubuntu for the NVIDIA® Jetson Orin™ for edge AI…

13 hours ago