Repository: sparkle-project/Sparkle

Issue #901: UX: Default behaviour interrupts my workflow, makes me wait and then demands restart?
Created: 2016-10-19T03:52:06Z
My only experience of Sparkle is through MacVim. (See the issue raised there.)
I don't know if MacVim is using the default Sparkle configuration or not. But here is why the process bugs me:

It tells me there is an update randomly in the middle of using the app, while I am working.
I would like the option of "OK cool, auto-update later, when the app next closes or opens" but I am instead given the options "Update now" or "Remind me later".
If I select "Remind me later" then I just get the same experience at some point in future.
If I select "Now" I then have to wait a short while for the download to happen (during which time I can still use the app).
When the download completes, a dialog box appears which demands that I restart the app, and it cannot be closed! But I don't want to restart, because I want to keep the current state of the app. (Fortunately I can still use the app. I just have to leave the restart dialog on my desktop for hours/days/weeks until I am finished on the project!)

Here is what I think would be better:

Sparkle checks for update on startup (rather than in the middle of my workflow). (*)
I am given the option to "Download in the background and apply on next restart". (Ask this before, not after the download.)
I am also given the option to "Do that automatically and silently in future".

Although the current process does work, I think these additional improvements to the UX could make it just perfect. Cheers!
(*) Happily I found the option for this in MacVim's preferences. Perhaps there is a good reason you don't make that a default ... to spread server load around the clock perhaps? I am happy to forgo this feature if the others are available.

Duplicate issue #992: Roadmap for Sparkle
Created: 2017-01-10T20:14:10Z
Sparkle is almost 10 years old. I suspect that users' and developers' expectations and requirements have changed since Sparkle was first released, so it might be worthwhile to discuss how updates should work in 2017.

Updates in general used to be suspicious, and auto-updated applications outright scary, so Sparkle is very shy about updating anything. OTOH now lots of apps have taken Chrome's lead and switched to be "evergreen" — they're always up to date, period.
As people started using lots of apps on smartphones, updates started to look like a chore, and many users would rather not hear about any updates at all. All major OSes (desktop and mobile) have now options to auto-update everything without asking (default on on mobile, but I don't remember what's macOS's default now).
Internet-connected applications are common, and for them not being up to date may be a security risk or at least break them due to server APIs changing. There is a tension between giving users control and keeping apps safe and compatible.
macOS has now an established UI for app updates.
macOS is now also used in "enterprise" where apps may be centrally managed.
What else has changed?

Questions:


Should we redesign our UI?

Do the same thing with slightly refreshed UI? (we could make notifications and update window sort-of look like Apple's for example, or we could provide hooks to have in-app notification like in Spotify).
Or maybe completely change approach? Have a separate updater with multi-app window that's just like App Store's.



Should we change our defaults?

Is it still appropriate to have update check permission prompt? (i.e. not the prompt before download/install of the update, but the prompt that disables all updates forever if the user says no).
Should we develop UI that works better with auto-updates? e.g. instead of showing release notes before download, show "what's new" after install.



Would it make sense to have a Pref pane, or a standalone app to manage Sparkle system-wide? To apply updates system-wide?

Closing comment (2017-01-19T22:20:40Z): It would be great if Sparkle Updater App manages all updates system-widely. It can:

Turn on or turn off auto update globally, e.g., when using cellular
Turn on auto download and install globally by default, no more bothering prompt in app.
Allow user to disable auto update for certain apps
Download and update app in background. Do not need open host app and keep it running.
Resumable download. If network is poor, or the update is very large.
Downgrade app if possible.
Restore if host app was deleted unexpectedly.

Updater App can discovery app by scanning SUFeedURL in Info.Plist .
An annoying thing I've experienced with Sparkle is similar to #901. App says it has an update, but download failed after long time waiting because networks is poor. During the download, the status window is unable to hide or minimize.  When the next time app starts, same thing happened again.
Usually I don't care the update, and don't want them to interrupt my work. Updates should not takes too much attention, it better be running while I am sleeping, not working.