snap changes is too secretive
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
snapd |
New
|
Undecided
|
Unassigned |
Bug Description
I understand that you want to not overwhelm people with output,
but I'm not asking to change the defaults you have.
Yet on the other hand when debugging, quite often one ends up like
- how many updates happenned?
- when did they happen?
- between which versions?
An example system I have has this:
$ journalctl -b 0 | grep "Started snap.firefox.
Mai 23 20:51:40 Keschdeichel systemd[1]: Started snap.firefox.
Mai 30 04:17:07 Keschdeichel systemd[1]: Started snap.firefox.
Jun 12 20:02:12 Keschdeichel systemd[1]: Started snap.firefox.
Jun 17 11:22:04 Keschdeichel systemd[1]: Started snap.firefox.
Jun 21 13:02:04 Keschdeichel systemd[1]: Started snap.firefox.
Jun 28 05:16:14 Keschdeichel systemd[1]: Started snap.firefox.
Jul 09 21:36:22 Keschdeichel systemd[1]: Started snap.firefox.
So I know there have been a few.
$ snap changes firefox
no changes found
I'd love if you could provide an --extended or whatever you'd like to call it.
That should not only provide a much longer (max: forever if you are ok with that - minimum: "since boot") look back in time.
But ideally also the information that people chasing older updates look for
For example here:
$ snap changes lxd
ID Status Spawn Ready Summary
399 Done yesterday at 14:05 CEST yesterday at 14:06 CEST Auto-refresh snap "lxd"
430 Done today at 09:58 CEST today at 09:58 CEST Revert "lxd" snap
444 Done today at 10:07 CEST today at 10:07 CEST Refresh "lxd" snap
In addition to go back in time, that would be so much more helpful if it would include:
- from-revision
- to-revision
With normal (debian-based) software, there is a changelog one can refer to in order to see what changes are being applied. For example:
$ apt-get changelog snapd /changelogs. ubuntu. com snapd 2.63+22.04ubuntu0.1 Changelog [728 kB] 04ubuntu0. 1) jammy-security; urgency=medium
Get:1 https:/
snapd (2.63+22.
* SECURITY UPDATE: sandbox escape via $HOME/bin builtin/ home: explicitly deny writing to @{HOME}/bin
- interfaces/
- CVE-2024-1724
* SECURITY UPDATE: denial-of-service via crafted files in squashfs image
- snap, snapdir, squashfs: improve validation of target file
mode/types
- CVE-2024-29068
...
It would be helpful to have a similar functionality for snap, that shows a packager-oriented changelog, for several different situations / use cases:
1. After a snap refresh of one or more packages the system is misbehaving. Being able to refer to the changelog can help in diagnosing which snap failed, at what version it started occurring and, possibly, for what reasons.
2. A snap sends a notification that it will auto-update in N days. Upgrading takes time (e.g. stopping services/ containers/ etc.) so you want to know what's changing so you can decide if it should be done urgently or postponed.
3. You're running an older version of a snap for stability reasons, but run into an issue that has been resolved in newer versions. You don't want to run /latest due to stability concerns, so want to identify which channel has the fix so that you can upgrade the minimum amount required.
4. As a snap developer, when putting out a new release you can provide release notes or a changelog (e.g. https:/ /launchpad. net/ppa- dev-tools/ +announcement/ 54109) but there seems not to be a way to provide this info visibly in the snap store (e.g. https:/ /snapcraft. io/ppa- dev-tools).
A `snap changes --extended` as the OP suggests or `snap changelog` command as analogous to apt or even just a page or dedicated link in the snap store, would help address all three of these use cases.