CUAHSI / HydroDesktop

HydroDesktop is a free and open source GIS enabled desktop application that helps you search for, download, visualize, and analyze hydrologic and climate data registered with the CUAHSI Hydrologic Information System. HydroDesktop is part of the legacy CUAHSI toolkit and is not under active development. Click the "releases" link below to download the latest installer for Microsoft Windows.
73 stars 20 forks source link

Auto Update Extensions #87

Open xhqiao89 opened 6 years ago

xhqiao89 commented 6 years ago

shieldst[CodePlex]
(See also Issue 8624 : http://hydrodesktop.codeplex.com/workitem/8624 ).

Feature Request: HydroDesktop updates extensions/plugins automatically when started up.

xhqiao89 commented 6 years ago

Sonic87[CodePlex]
I believe there have been changes made to this feature and there is an auto-update that occurs in the 1.7?

xhqiao89 commented 6 years ago

smithry[CodePlex]
I don't feel that I can adequately test this. Jacob, could you test and close it since Eric resolved it?

xhqiao89 commented 6 years ago

shieldst[CodePlex]
The newest Extension Manager allows users to select which feeds (if any) to check for autoupdates and will inform users which extensions were updated when they occur.

I think this is at a good point to mark this issue fixed and start working on hammering it out if there is anything else that needs changing.

xhqiao89 commented 6 years ago

shieldst[CodePlex]
I have made some good progress on this.

Experimental release 1.6.2 will have the following three changes:

If updates occur, user will be informed with a simple message box. (As of now, the message does NOT say what extensions were updated, just that updates occurred. This could be added pretty easily if desired). User can select which feeds to check for updates when HD starts by marking a checkbox in the Extension Manager form. This information is saved in a settings file. Progress bar will scroll continuously as the checking for updates process happens.

There is a potential problem that I still haven't figured out how to address. If I make changes in the ExtensionsManager plugin that rely on changes that I've made in DotSpatial.Control, then user that downloads the new ExtensionManager but is not using the newest DotSpatial.Control dll will be out of luck. We need a way to hide updates from specific versions of HydroDesktop, I guess. It would be nice if we could figure out a way that Core DotSpatial DLLs could be updated as well, but I'm not sure how feasible that is.

xhqiao89 commented 6 years ago

danames[CodePlex]
Two items discussed today:

1) On start up scroll through a list of the extensions being checked just to give the user some patience about what's going on .

2) In the extensions dialog add a check box next to the feeds so that the user can select which feeds to auto update. Use this option to determine checking for updates at start up. However when loading the extensions form we should still check everything for updates that are available.

xhqiao89 commented 6 years ago

shieldst[CodePlex]
I have spent a fair amount of time working on this enhancement and need feedback on some aspects of it. Experimental Release 6.1 should have the AutoUpdate feature in it when it's released, so please give feedback.

The following list explains the way this feature behaves as I have it working now:

This noticeably slows the start up time of HydroDesktop. It's not that bad, but it is something to think about. Updates will be downloaded when HydroDesktop is started, but will not be activated until user closes and reopens HydroDesktop. (We can probably show a MessageBox informing the user that Updates have been installed, please restart to finish the update process or something. It would be nice to start HD with the updates activated, but this turns out to be more complicated than you'd think.) Only two feeds will be checked for autoupdates: myget.org/f/dotspatial and myget.org/f/hydrodesktop (or wherever the main DotSpatial and HydroDesktop plugins are being hosted, if it should change soon).

Any given nuget package will be able to avoid being auto-updated by using the following tag when uploading: HideFromAutoUpdate. (e.g., if developers want to upload a new version of the MenuBar for testing, but we're not necessarily ready for every HD user to start using it automatically, then we will be able to stop the autoupdate from occurring by using this tag).