GNOME Bugzilla – Bug 763611
Restart and install dialog for OS upgrades
Last modified: 2016-06-30 09:44:09 UTC
Software now supports installing operating system upgrades - a system modal confirmation dialog for restarting and performing the upgrade is therefore required. The dialog should be similar to the dialog for restarting and installing updates, with some differences. A countdown until the reboot should not be used in this case: OS upgrades are too time consuming and too serious a change to install without explicit user confirmation. Suggested text for the dialog: "Restart & Install Upgrade" "<distro> <version> will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in."
Something like https://kalev.fedorapeople.org/shutdown-dialog-system-upgrade.png ?
Looks good to me, modulo spacing between the title and the body. Do you have a patch ?
Looks good to me too. I know that spacing in these dialogs can be a bit inconsistent and tricky from a theme point of view, so wouldn't block on that personally.
Sorry for the delay. Here are the gnome-shell patches; we also need some new PackageKit API for this, those are in a branch in https://github.com/kalev/PackageKit/tree/shell-system-upgrades
Created attachment 324555 [details] [review] endSessionDialog: Rename a variable
Created attachment 324556 [details] [review] endSessionDialog: Use new PackageKit DBus API
Created attachment 324557 [details] [review] endSessionDialog: Add support for system upgrades
This adds two new strings, "Restart & Install Upgrade" and "%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in." I wonder if it would make sense to put these on the 3.20 branch now and ship them in the .1 release to give translators a bit of time to translate the new strings?
Review of attachment 324555 [details] [review]: LG, though it's not quite obvious why this is a separate patch
Review of attachment 324556 [details] [review]: Doesn't this break logging out when using PackageKit from 3.20.0?
Review of attachment 324557 [details] [review]: The concerns from the other patch regarding API breakage during a stable cycle apart, looks good to me with a string freeze exception ::: js/ui/endSessionDialog.js @@ +738,3 @@ + else if (this._type == DialogType.RESTART && + this._pkOfflineProxy.UpgradeTriggered) + this._type = DialogType.UPGRADE_RESTART; IMHO easier to read as: if (this._type == DialogType.RESTART) { if (this._pkOfflineProxy.UpdateTriggered) this._type = DialogType.UPDATE_RESTART; else if (this._pkOfflineProxy.UpgradeTriggered) this._type = DialogType.UPGRADE_RESTART; }
hughsie is suggesting to use an a{sv} PreparedUpgrade property so that we wouldn't need separate PreparedUpgradeName and PreparedUpgradeVersion properies.
OK, here's an updated patch that fixes the thing from comment #11 and adapts it to use the slightly modified PK API from https://github.com/hughsie/PackageKit/commit/305fca956dafd0c97897e35eee908e12f7f23de2
Created attachment 330134 [details] [review] endSessionDialog: Add support for system upgrades
Review of attachment 330134 [details] [review]: ::: js/ui/endSessionDialog.js @@ +142,3 @@ + return _("%s %s will be installed after restart. Upgrade installation can take a long time: ensure that you have backed up and that the computer is plugged in.").format(distroName, distroVersion); + }, + disableTimer: true, Not sure about the "disable == true" pattern, could be split out in a separate patch @@ +191,3 @@ <arg type="s" name="action" direction="in"/> \ </method> \ + <method name="TriggerUpgrade"> \ This is unused
(In reply to Florian Müllner from comment #15) > Review of attachment 330134 [details] [review] [review]: > > ::: js/ui/endSessionDialog.js > @@ +142,3 @@ > + return _("%s %s will be installed after restart. Upgrade > installation can take a long time: ensure that you have backed up and that > the computer is plugged in.").format(distroName, distroVersion); > + }, > + disableTimer: true, > > Not sure about the "disable == true" pattern, could be split out in a > separate patch Sure, I could instead do 'showTimer: true' in all others dialogs and 'showTimer: false' in this one, if you think that would be better?
Is there any way to show these dialogs arbitrarily? For themeing purposes. Same for that audio-jack dialog.
(In reply to Florian Müllner from comment #15) > Review of attachment 330134 [details] [review] [review]: > @@ +191,3 @@ > <arg type="s" name="action" direction="in"/> \ > </method> \ > + <method name="TriggerUpgrade"> \ > > This is unused Ah indeed, thanks! Fixed.
Attachment 324555 [details] pushed as db8f6b4 - endSessionDialog: Rename a variable Attachment 324556 [details] pushed as 58a733d - endSessionDialog: Use new PackageKit DBus API Attachment 330134 [details] pushed as ab68360 - endSessionDialog: Add support for system upgrades