Upgrading experience improvements - support for easy rollback

Intro

Hi,

I was recently attending a conference where I had an opportunity to see many interested speakers and topics they presented.
One of them was Fedora Silverblue which made a great impression on me and some other attendees that didn’t know it before.
The concept behind that seems really good and we could see a live upgrade & rollback process just in a 5 min lasting lightning talk - which stands for the stability of the solution.

We were also speaking about the year of the Linux on the desktop, where I shared my recent post-upgrade issue that caused this lightning talk at the very next day.
But why do I mention that?
It sheds some light on why I even started thinking about the upgrading experience in Ubuntu in the first place.

Problem

What was my problem that made me think?
Recently I upgraded my Desktop from 22.04 LTS to 24.04 LTS.
Unfortunately, apart from some other smaller issues that I was able to resolve, my webcam stopped working.
This is apparently well known issue with the laptop I have, but that doesn’t really matter.
The issue was not present in 22.04 and people in the Internet seem to second my experience - they also didn’t have this issue.
Of course we can discuss many options here, trying to resolve the underlying the issue, but if it would happen to my parents or grandparents, or any non-technical people we would like to introduce to Ubuntu, their setup would be screwed and would require lots of efforts to bring the system back to the previous, fully operational (to their needs) state.

Solution Proposal

Here comes my idea about following what Fedora did with Silverblue and make some efforts to gain a similar solution in Ubuntu in the future.
Having a tool that could do the upgrade/rollback in a form of snapshots, integrated with GNOME, could really improve the overall experience for users.
In my scenario it would let me quickly rollback to previous release, so I could work on the things I need to work currently instead of resolving post-upgrade issues, especially that most likely I can only wait for the solution to be worked out between Canonical and the laptop vendor.

I think about starting low, like adding some code to the do-release-upgrade tool that would do the LVM snapshot as a pre-upgrading step.
It could then have an option to do do-release-upgrade --rollback flag that could show available snapshots and let user pick the one to rollback to before proceeding.
I would be even happy to try to contribute to the tool if someone could guide me how to contribute to Ubuntu (I tried to find it, but it doesn’t look clear to me, so a guidance would be much appreciated).
It could be the very first approach that would work both for desktops and servers and later someone more experienced might bring it up to be integrated into UI, as it is with the Silverblue.

Final words

I would like to start a discussion about such improvement, to speak for/against just the idea itself and to ideate about possible implementations.
My proposal is just how I imagine it for now, but perhaps there are some other options that would be more feasible.
The end goal is to have a way to easily upgrade and also easily rollback in case of any issues - Silberblue has many features around the rollback process that we can dive deeper into details to get some ideas regarding how this could work with Ubuntu.

Of course I could simply switch to Fedora, but I use Ubuntu for 12 year or more, I really like the distribution and I would like to see Ubuntu as the most stable distribution for desktop, even if it wouldn’t be a trendsetter but following ideas from other distros.
With that I hope my idea will at least get some discussion if it’s good, bad or maybe completely pointless.

4 Likes

Snapper and rollback options are so needed

Fedora is not fully bulletproof still WIP and it works pretty good on Silverblue and kunoite, but it is not enabled on workstation or spins due multiple issues on BTRFS, snapper, grub and dnf as I remember it is unstable and unreliable on normal fedora.

Why it works on atomucs is because image based so there is image snapshot on each update well on each update that changes base image

openSUSE has similar on atomics and Normal using systems boot and snapper with BTRFS and have been really good

I can imagine that the (hopefully) forthcoming Ubuntu Core Desktop will make this possible. (I.e., immutable filesystem, transactional package installation, ability to rollback an install.)

In fact, Snapcraft already allows this on an individual snap basis ( sudo snap revert mysnappackage). Although this is too granular, and not an equivalent of reverting a full update operation, the way it can be done in Silverblue or Guix (mentioning only the immutable OSes I’m familiar with.)

Let’s hope Ubuntu Core Desktop provides this, and an interface friendly enough to make it easy to use for a “regular” home or office user.

2 Likes

Is there a good place comparising Ubuntu Desktop to Desktop Core?
From the information I have found about Core versions so far this doesn’t seem to be a satisfying option, but perhaps I missed or misunderstood something.

there is not too much details on CORE Desktop yet we need to wait and see when more details comes…

in meantime i went to download latest core desktop and installed it on bare metal on my test intel laptop and see what it has eaten

1 Like

Then, by the current description on what CORE distro is, I would rather think of having a current regular desktop experience, but with immutable approach available (e.g. as a separate branch or whatever would work).

But let’s see what will be announced and if any comparison chart will be available.