Stable update notification

Based on this comment, it would need to be opt-in.

I’ll provide information below about my current implementation to serve as ideas for Slicer.

I currently have support for auto version checking for my Slicer custom app by checking a release notes file on the web and comparing the latest version with version of my custom app being run. The update selection is saved as a user setting (False/True or missing if deferred decision by pressing “Cancel”). They can manually check with an action in the menu bar at Help->Check For Updates.

[Application]
auto_version_check=False
last_update_check=2022-05-31 18:58:54.201097

image

If the user has selected “Manual”, I’m a little bit annoying and I will display a message on the status bar if they haven’t manually checked for a new version in the past 30 days. See code below.

long_number_days_since_last_check = 30
if time_since_last_check > timedelta(days=long_number_days_since_last_check):
    message = f"It has been over {long_number_days_since_last_check} days since the last check for a version update. Please go to Help->Check For Updates."
    slicer.util.mainWindow().statusBar().showMessage(message, 30000)  # shown for 30 seconds before cleared

If there is a update available I show release notes for all versions between the current version and the latest version available.
image

I allow the user to “Ignore” the version update (saved as a user setting) if they don’t care about the update (often minor bug fix releases) and if they have “automatic” check mode turned on, then they will only be alerted of the next available release.

[Application]
ignore_version=1.13.1

They can use the “Download” button to automatically download the installer, close the current instance, and run the installer.