Preview conflicts in Arch Linux system upgrade
Every once in a while, kalu will not be able to tell you what upgrades are available. This isn't due to a bug, or because there's something wrong anywhere, it's simply because there is (at least) one conflict.
A conflict often isn't a big deal, and handling it is quite simple, but it requires your intervention, and that's why kalu can't list the upgrades: because you need to decide whether or not to replace one package with another, for example.
This was always a little annoying to me, because then kalu failed to do its first objective: inform about what upgrades are available, what will happen should a system upgrade be performed.
Sure, one can go on Arch's website, check the recent package updates and manually figure things out, but that defeats the purpose of having a tool to do the job for you.
One could also just start a sysupgrade, but it forces you to sync your databases, which basically means you then have to perform the whole operation right now. What if you just wanted to know what would need to be done (including every upgrades unrelated to the conflict), and then make an informed decision, about when you'll perform the sysupgrade?
Introducing a system upgrade "simulation"
This is why kalu now features what's called a "simulation." When there's a conflict - preventing kalu to compile the list of packages for which upgrades are available - a new button will be featured on the notification: "Run simulation"
A simulation is simply running the first step (i.e. compiling the list of packages in the sysupgrade) of kalu's updater on a temporary copy of your (synchronized) databases, in order to see what the conflict(s) is (are).
You will be presented with the usual GUI of kalu's updater, and after answering the questions to resolve (or not) the conflicts, you'll be able to see the full list of available upgrades.
Of course it stops there, there's no upgrading. The point of this is simply to see how to resolve the conflict, and see what the upgrades are, as there might be new dependencies to install, old packages to remove/replace, and of course a few other/unrelated packages with available upgrades.
Try again, test different scenario
Once you have the list of packages - or just an error message about unresolved conflict, as might also happen - you can easily start over.
Pressing the button "Rerun simulation" will reset the things, and instantly have questions asked again, so you can try different scenario and see their impact and figure out which one works (best) for you.
Once you're done, press "Close" and all temporary files will be removed. That's
it, your system remains unchanged. If you now want to actually do the upgrade,
use "Upgrade system" as usual (or manually run
pacman -Syu or whatever you
Of course, you don't actually need to use kalu's updater for this to work, the simulation will be available regardless of what action you've set for the "Upgrade system" button (and even if you don't use that feature at all).
The only requirement is that kalu's updater was compiled in, of course, i.e. it
won't work if you compiled kalu using
Wanna try it?
If you wanna test it, it's been pushed to the branch 'next' on Github, and you can use this PKGBUILD to install it.
After that, all you need is a conflict in your next sysupgrade! :) And don't hesitate to report any problems/bugs/suggestions you have for kalu, about this feature or something else.