Unexpectedly, Canonical has shared a new blog post detailing ‘the future of Snapcraft’ — but don’t get carried away: they’re not moving away from the Snap app format!
In fact, they’re kinda doubling down.
Canonical’s Igor Ljubuncic explains in a relatively wordy-yet-somewhat-vague blog post that the current codebase for Snapcraft (the technology used to build Snap apps) is being made “legacy”. A newer, smaller, and ‘even more modular’ Snapcraft codebase (retooled using something called Craft Parts) is going to replace it.
Yes, Canonical is rewiring Snapcraft, potentially making it easier and less effort for developers to build Snap apps as a result.
Don’t panic if you’re already an avid Snap-ee though: Snaps based on the “monolithic”
core20 codebases will continue to work well into the future. Additionally, developers can transition to the modular
core22 if they want.
A ‘fallback mechanism’ is also being built into the Snap build process. This will mean developers don’t even have to explicitly choose a core, the right core is picked for them.
One hopes that the fruits of revamp filter down to address some of the format’s pre-existing shortcomings, and that the changes broaden the appeal of building Snaps within the wider Linux development community (who, anecdotally, based on being someone who writes about Linux software, seem to prefer Flatpak).
There’s nothing else to see at the moment. Igor cautions that the current “early proof of concept only covers some aspects of the Snapcraft functionality” but that it “[illustrates] a relatively quick conversion to the new modular design.”
He adds: “Going forward, you should expect to see quite a few new, interesting developments in the product, all aimed at making things simpler, faster, more robust, and without adversely affecting the user experience.“
Developers will hopefully get to see, hear, and hopefully kick the tyres on this new and improved Snapcraft over the course of 2022 — who knows: maybe it’ll land in place in time to benefit Ubuntu 22.04 LTS, due for release in April.
- Current Snapcraft codebase is now considered “legacy”
- New codebase is ‘even more modular’
- Project config data will use pydantic model
- Existing Snaps will continue to work
- New version is in active development