Implement an automatic update of the main program and installed extensions.
Rename
I wouldn't want my program and extensions be updated without my control. Is this what you're proposing?
Not really. Sorry for not being so clear. This is a follow-up to another discussion:
https://www.wealth-lab.com/Discussion/Notify-of-out-of-date-extensions-6739
The proposal is to have the user notified that there are updates and ask to trigger the automatic download and installation of those updates.
https://www.wealth-lab.com/Discussion/Notify-of-out-of-date-extensions-6739
The proposal is to have the user notified that there are updates and ask to trigger the automatic download and installation of those updates.
OK thanks for clarifying. Renamed your topic's title to better reflect the request.
I created an extension to do exactly this over the weekend. Testing currently...
The Extension aims to:
1) Look for updates to WL7Client and Extensions
2) Look for new, not yet installed extensions
3) Download updates in background
4) Manage the installation of updates
5) Relaunch WL7
I hope to expand it to give user option to select which extensions are checked, currently it's "everything available".
See description and screen grabs in this post:
https://www.wealth-lab.com/Discussion/Update-all-extensions-at-once-6893
The Extension aims to:
1) Look for updates to WL7Client and Extensions
2) Look for new, not yet installed extensions
3) Download updates in background
4) Manage the installation of updates
5) Relaunch WL7
I hope to expand it to give user option to select which extensions are checked, currently it's "everything available".
See description and screen grabs in this post:
https://www.wealth-lab.com/Discussion/Update-all-extensions-at-once-6893
Quick Update: I've added some additional functionality to this extension finished the help files today.
Right now, I'm now waiting for WL7 Build34 to be released to test the new features. If all goes well, we'll wrap it up and get it very soon.
Here is a teaser:
Right now, I'm now waiting for WL7 Build34 to be released to test the new features. If all goes well, we'll wrap it up and get it very soon.
Here is a teaser:
Looks cool and feature rich! Liked the snapshot management idea.
yeah, it definitely "evolved".
Quick question. Is there a way to uninstall Extensions where all installed files are removed? (.dll, .md , required resource files, images, etc)
The installers seem to install only. No uninstall / modify options.
Quick question. Is there a way to uninstall Extensions where all installed files are removed? (.dll, .md , required resource files, images, etc)
The installers seem to install only. No uninstall / modify options.
No, uninstallation is manual.
My only concern for the snapshot management & restore is that reverting to a previous "stable" build might leave the user without support and create an impression on Discussions that he's running the latest build. But our team has to check and make sure he is doing so anyway.
My only concern for the snapshot management & restore is that reverting to a previous "stable" build might leave the user without support and create an impression on Discussions that he's running the latest build. But our team has to check and make sure he is doing so anyway.
I could put a warning message in there if you think its appropriate.
Something like:
The idea behind the rollback feature was to provide fast recourse in the event of an unidentified conflict between thirdparty extensions. As more developers create valuable add-ons there is an increased chance of conflict... Wordpress is a wonderful example!
I thought it would be helpful to quickly roll back a bulk update, then update only the non-conflicting extensions until such time as the conflict is resolved by the developers.
Another example might be a "breaking change" in the WL Client that impacts an extension that is required for an individual users strategy management. In such a case, they would benefit from rolling back the client build until the extension developer has had time to resolve the issue.
Bottom line, If my system is actively trading (or publishing) I need a way to restore the last known stable instance in the event of a conflict that prevents my system from functioning. I can't wait for the developers to fix it. Immediate action is required. But that action, IMO should be a temporary stop gap measure, not a permanant solution.
I understand your concern especially when fielding support through the forum. That could create an unnecessary burden.
Crazy thought, when WL authenticates, could it tell WL servers what build is currently running and update a field in the user profile. That way when dealing with support through the forum you would immediately know if the user is running an up-to-date system.
For example: It could change the display name to something like "Splodge [B:33]" or use a colourcode similar to the premium/customer/trial/author icons. You could use a colour scale of green , yellow, orange, red to indicate up to 3 builds behind current.
By using the authenticate process you'll always have a "most recent instance" vantage point.
-----------
Side note... IMO it would be wise for all users with active systems (live or demo) to install new updates into a temporary staging directory to TEST first, then if everything appears stable, install the updates to the live directory after backing up the working directory. This, I beleive would be good policy and reduce the risk (and stress) of unexpected incompatibilities and breaking changes.
Something like:
QUOTE:
Warning, due to the rapid development environment of the WealthLab development community, rolling back to previous versions may result in limited support from the software or extension developer. Previous versions may not contain features required for your stregies to function correctly. Only proceed if you understand the risks and accept the limitations imposed by the technology.
The idea behind the rollback feature was to provide fast recourse in the event of an unidentified conflict between thirdparty extensions. As more developers create valuable add-ons there is an increased chance of conflict... Wordpress is a wonderful example!
I thought it would be helpful to quickly roll back a bulk update, then update only the non-conflicting extensions until such time as the conflict is resolved by the developers.
Another example might be a "breaking change" in the WL Client that impacts an extension that is required for an individual users strategy management. In such a case, they would benefit from rolling back the client build until the extension developer has had time to resolve the issue.
Bottom line, If my system is actively trading (or publishing) I need a way to restore the last known stable instance in the event of a conflict that prevents my system from functioning. I can't wait for the developers to fix it. Immediate action is required. But that action, IMO should be a temporary stop gap measure, not a permanant solution.
I understand your concern especially when fielding support through the forum. That could create an unnecessary burden.
Crazy thought, when WL authenticates, could it tell WL servers what build is currently running and update a field in the user profile. That way when dealing with support through the forum you would immediately know if the user is running an up-to-date system.
For example: It could change the display name to something like "Splodge [B:33]" or use a colourcode similar to the premium/customer/trial/author icons. You could use a colour scale of green , yellow, orange, red to indicate up to 3 builds behind current.
By using the authenticate process you'll always have a "most recent instance" vantage point.
-----------
Side note... IMO it would be wise for all users with active systems (live or demo) to install new updates into a temporary staging directory to TEST first, then if everything appears stable, install the updates to the live directory after backing up the working directory. This, I beleive would be good policy and reduce the risk (and stress) of unexpected incompatibilities and breaking changes.
Overall, I think your rollback/snapshot idea adds real value and could help to quickly unroll an upgrade gone bad due to API change / 3rd party extension conflict. Thank you for implementing it. Your new (paid?) extension is a step forward even compared to the legacy Extension Manager (V6).
Yes, this is already on our internal wishlist :)
QUOTE:
Crazy thought, when WL authenticates, could it tell WL servers what build is currently running and update a field in the user profile.
Yes, this is already on our internal wishlist :)
QUOTE:
(Paid?)
I haven't decided yet. There are good arguments either way. I'd love to hear some feedback form WL7 users on this.
QUOTE:
already on our internal wishlist
Well then, at the rate you push out new features this will be done before I wake up tomorrow ;)
It looks amazing! Great job.
Free is always appreciated!
But it seems like a great addition that took a lot of work so it makes sense you should get paid somehow (user or WL buys it). If there is a cost, even though I would love automated updates, I'm not sure I'd pay a ton for it since it's a time saver (5 min every couple of weeks) and not added features (other than the roll-back but I'm not sure how many people need that and you can also do that manually if it's really important to you).
Free is always appreciated!
But it seems like a great addition that took a lot of work so it makes sense you should get paid somehow (user or WL buys it). If there is a cost, even though I would love automated updates, I'm not sure I'd pay a ton for it since it's a time saver (5 min every couple of weeks) and not added features (other than the roll-back but I'm not sure how many people need that and you can also do that manually if it's really important to you).
Mmm, nice. I was going to say something like: this is nice, but just a time saver so it would better be free rather than paid... but it has Restore Manager that looks like a value-adding feature.
WL7's and extensions' updates are so frequent - we need your extension!))
Hey Splodge, since this is the #1 most requested open Feature Request now do you have any updates? I want to check in with you before we think about possibly doing anything in-house.
Yes, sorry I took a break over Christmas / New year then hit with a family emergency. But, the extension ran perfectly with the updates when I returned (including the jump to build 43 from the pre-christmas versions) so let's bounce some emails back a forward and figure this out.
Since we last spoke I added a complete WL7 appfolder copy function prior to updates so that installers were not needed to roll back or forward between versions which is a much faster "single click" solution. I'll need to make sure thats all working correctly but that's not difficult.
Since we last spoke I added a complete WL7 appfolder copy function prior to updates so that installers were not needed to roll back or forward between versions which is a much faster "single click" solution. I'll need to make sure thats all working correctly but that's not difficult.
The Update Manager is now available, Build 1 is a beta release, so any feedback is appreciated!
https://www.wealth-lab.com/extension/detail/UpdateManager
https://www.wealth-lab.com/extension/detail/UpdateManager
Thank you!
Just took it for a quick test drive and here are my impressions:
- Very full featured!
- Yet, very easy to use.
- The update seems to work well: I already had the latest build and extensions up to date; so I used it to install 3 third-party extensions that I didn't yet have, since I don't need them. I will be able to test better, next time a new build and extensions are released.
- The snapshot feature is also a nice add-on. But, most likely, I will still continue to do regular backups of the user folder. In case of something catastrophic happening during an update (unlikely, since we are already at build 45 and not such thing occurred), I personally prefer to just reinstall it from scratch and then overwriting the main folder. Plus, I am a bit nervous about the consequences of restoring to an older version of the main software or some extension, after some updates in between.
In any case, very nice work!
Just took it for a quick test drive and here are my impressions:
- Very full featured!
- Yet, very easy to use.
- The update seems to work well: I already had the latest build and extensions up to date; so I used it to install 3 third-party extensions that I didn't yet have, since I don't need them. I will be able to test better, next time a new build and extensions are released.
- The snapshot feature is also a nice add-on. But, most likely, I will still continue to do regular backups of the user folder. In case of something catastrophic happening during an update (unlikely, since we are already at build 45 and not such thing occurred), I personally prefer to just reinstall it from scratch and then overwriting the main folder. Plus, I am a bit nervous about the consequences of restoring to an older version of the main software or some extension, after some updates in between.
In any case, very nice work!
Thank you @alkimist
A quick note on the Restore Feature...
The UpdateManager will back up the entire WealthLab7 Program Folder (Wealthlab software, extension dlls', help files etc)... but does not copy the AppData/WealthLab folder (Strategies, indicators, optiization result files etc)..
I would strongly recommend using a scheduled backup software to copy that folder onto a completely seperate drive regularly.... The Restore installers, and copies of the Program folder are kept in AppData/WealthLab/UpdateManager so a back-up this one folder should contain everything you need to get operational quickly in the event of a hardware failure..
Also, when installing the WealthLab client DO NOT sleect "Run WealthLab" at the end of the installer if there are extensions to install. The UpdateManager installs the lastest client FIRST then the extensions. However WealthLab must remain closed while the extensions are installed. The Install Manager will Launch WL7 once it's finished.
So, at the end of the WealthLab7 Client update, click CLOSE
.
A quick note on the Restore Feature...
The UpdateManager will back up the entire WealthLab7 Program Folder (Wealthlab software, extension dlls', help files etc)... but does not copy the AppData/WealthLab folder (Strategies, indicators, optiization result files etc)..
I would strongly recommend using a scheduled backup software to copy that folder onto a completely seperate drive regularly.... The Restore installers, and copies of the Program folder are kept in AppData/WealthLab/UpdateManager so a back-up this one folder should contain everything you need to get operational quickly in the event of a hardware failure..
Also, when installing the WealthLab client DO NOT sleect "Run WealthLab" at the end of the installer if there are extensions to install. The UpdateManager installs the lastest client FIRST then the extensions. However WealthLab must remain closed while the extensions are installed. The Install Manager will Launch WL7 once it's finished.
So, at the end of the WealthLab7 Client update, click CLOSE
.
Thank you @splodge for the extra details and nice tips.
Backups are indeed very important. I run a daily backup of my complete computer to a synology NAS; complemented with a less regular backup of the complete WL data folder to Dropbox.
Again, congrats on the nice work! Thank you very much for sharing.
Backups are indeed very important. I run a daily backup of my complete computer to a synology NAS; complemented with a less regular backup of the complete WL data folder to Dropbox.
Again, congrats on the nice work! Thank you very much for sharing.
Well thought out and nicely designed tool! Thank you @splodge for making it available to the community.
So, today WL's team published a new build of the main program and updates to 3 extensions.
I used the "Download and Install Updates" extension to update it all.
All in all, it went well but I managed to mess it up a bit (not on purpose):
- First, I did a "Check for Updates".
- Then "Download Updates". While the download was taking place, I closed the main program window thinking, wrongly, that the update extension could run on its own. This closed it all, including the extension.
- I then repeated the same process, but this time leaving the main program open while downloading.
- Then I selected "Install updates" and started getting the problem: the extensions updated just fine, but the main program kept mentioned "corrupted", even after several attempts at re-downloading it.
- No big deal: I just went to the User Data Folder and then manually deleted the Build 47 installer from inside "\UpdateManager\Client".
- After this, everything went well.
Still, I am guessing that the extension looks for the content of the folder and does not re-download the file if it is already there. This saves a bit of bandwidth, but can lead to the situation that I described above. Perhaps it should always force the re-download of the files when someone presses "Download Updates", regardless of whether the files are already in the filesystem or not. This should also be better in the case that WL team releases another installer with the same build number (I believe this already happened in the past, when the one first published had a problem with some dependencies).
Also, after pressing "Install Updates", I believe there was a popup instructing to close the main program window (this time I didn't do it because of what happened earlier); but then the same message is displayed again, when the command-line looking screen fires up. I think that the message should only appear here; otherwise is a bit confusing, since we cannot close it twice.
And a final suggestion for improvement: yesterday, to test the extension, I ended up installing a few third-party extensions that I am not interested in (I already bought the 3 that I wanted). These come with a trial period, after which some annoying popups will start appearing. I then intend to uninstall those extensions. Could it be possible to add that feature to this extension? For example: in the list printed under "My Installed Extensions", one could select one and then press an option "Uninstall". As far as I know, the only way to currently uninstall an extension is to delete it from the filesystem, so this would be a nice addon.
Sorry for the long post, but since I started the topic and you were generous enough to develop an extension and share it for free, the minimum that I could do is provide a comprehensive constructive feedback.
I used the "Download and Install Updates" extension to update it all.
All in all, it went well but I managed to mess it up a bit (not on purpose):
- First, I did a "Check for Updates".
- Then "Download Updates". While the download was taking place, I closed the main program window thinking, wrongly, that the update extension could run on its own. This closed it all, including the extension.
- I then repeated the same process, but this time leaving the main program open while downloading.
- Then I selected "Install updates" and started getting the problem: the extensions updated just fine, but the main program kept mentioned "corrupted", even after several attempts at re-downloading it.
- No big deal: I just went to the User Data Folder and then manually deleted the Build 47 installer from inside "\UpdateManager\Client".
- After this, everything went well.
Still, I am guessing that the extension looks for the content of the folder and does not re-download the file if it is already there. This saves a bit of bandwidth, but can lead to the situation that I described above. Perhaps it should always force the re-download of the files when someone presses "Download Updates", regardless of whether the files are already in the filesystem or not. This should also be better in the case that WL team releases another installer with the same build number (I believe this already happened in the past, when the one first published had a problem with some dependencies).
Also, after pressing "Install Updates", I believe there was a popup instructing to close the main program window (this time I didn't do it because of what happened earlier); but then the same message is displayed again, when the command-line looking screen fires up. I think that the message should only appear here; otherwise is a bit confusing, since we cannot close it twice.
And a final suggestion for improvement: yesterday, to test the extension, I ended up installing a few third-party extensions that I am not interested in (I already bought the 3 that I wanted). These come with a trial period, after which some annoying popups will start appearing. I then intend to uninstall those extensions. Could it be possible to add that feature to this extension? For example: in the list printed under "My Installed Extensions", one could select one and then press an option "Uninstall". As far as I know, the only way to currently uninstall an extension is to delete it from the filesystem, so this would be a nice addon.
Sorry for the long post, but since I started the topic and you were generous enough to develop an extension and share it for free, the minimum that I could do is provide a comprehensive constructive feedback.
Thank you @alkimist for the feedback.
Yes, it sounds like you "jumped the gun" by exiting WL7 before receiving the confirmation that updates were ready to install. And exiting while the download was in progress has corupted the installer.
You can close the extension window, but WL7 needs to remain open while downloads are in progress.
The Extension will notify you three times during the update process:
1) First, notify you when updates available (unless Notifications are turned off under settings) and give you options to:
- Download according to your settings
- Choose what to download (If you are concerned about conflicts)
- Ignore the message (if you are busy and don't want to install at that monent)
2) Then, notify you when your downloaded updates are ready to install and Install Manager has been created. NOTE: The extension does not automatically begin the install process because you may be in the middle of running a backtest, publishing signals etc. this is by design to ensure minimal disruption to critical usage. instead it notifies you with optins to:
- Launch the Install Manager Immediately
- Launch the Install Manager Later via the Extension Window (Install Updates Button)
3) And Finally, asks if you would like to backUp your program folder prior to running the install manager.
IMPORTANT: Don't close WL7 until the Install Manager Opens. (Messages changed in new new build to avoid confusion as suggested)
If your settings are "check on program start" there is no need to open the extension (it's already running in the background) unless ofcourse you want to choose specific updates from those available. The background checker will let you know within about 30seconds of opening if updates are available. Just click "Yes" when you are notified to continue downloading in the background.
The extension is checking for local installer version prior to download and there are some case scenarios where this is helpful, however it sounds like and override would be a good idea. So I've added that to the next build.
Where was the "corrupted" message - In WL7 or in the InstallManager (CommandPrompt), or from the installer file?
The Uninstaller is a little more tricky. I like the idea, and have consdiered it for the exact scenario you have encountered. I've been hesitant about adding such a feature for several reasons. But perhaps there is a way. Let me think on it.
Yes, it sounds like you "jumped the gun" by exiting WL7 before receiving the confirmation that updates were ready to install. And exiting while the download was in progress has corupted the installer.
You can close the extension window, but WL7 needs to remain open while downloads are in progress.
The Extension will notify you three times during the update process:
1) First, notify you when updates available (unless Notifications are turned off under settings) and give you options to:
- Download according to your settings
- Choose what to download (If you are concerned about conflicts)
- Ignore the message (if you are busy and don't want to install at that monent)
2) Then, notify you when your downloaded updates are ready to install and Install Manager has been created. NOTE: The extension does not automatically begin the install process because you may be in the middle of running a backtest, publishing signals etc. this is by design to ensure minimal disruption to critical usage. instead it notifies you with optins to:
- Launch the Install Manager Immediately
- Launch the Install Manager Later via the Extension Window (Install Updates Button)
3) And Finally, asks if you would like to backUp your program folder prior to running the install manager.
IMPORTANT: Don't close WL7 until the Install Manager Opens. (Messages changed in new new build to avoid confusion as suggested)
If your settings are "check on program start" there is no need to open the extension (it's already running in the background) unless ofcourse you want to choose specific updates from those available. The background checker will let you know within about 30seconds of opening if updates are available. Just click "Yes" when you are notified to continue downloading in the background.
The extension is checking for local installer version prior to download and there are some case scenarios where this is helpful, however it sounds like and override would be a good idea. So I've added that to the next build.
Where was the "corrupted" message - In WL7 or in the InstallManager (CommandPrompt), or from the installer file?
The Uninstaller is a little more tricky. I like the idea, and have consdiered it for the exact scenario you have encountered. I've been hesitant about adding such a feature for several reasons. But perhaps there is a way. Let me think on it.
Hi @splodge,
Thank you for the detailed explanation.
The message that I was referring to as a bit confusing, is the one in your second screenshot, under item 2): it instructs the user to close the main program, but I think we should only close it after the Install Manager Opens, no?
As to the corrupted message that I got, that was because when I interrupted the program, the main program was probably not fully downloaded yet (not the extensions).
Thank you for the detailed explanation.
The message that I was referring to as a bit confusing, is the one in your second screenshot, under item 2): it instructs the user to close the main program, but I think we should only close it after the Install Manager Opens, no?
As to the corrupted message that I got, that was because when I interrupted the program, the main program was probably not fully downloaded yet (not the extensions).
QUOTE:
The message that I was referring to as a bit confusing, is the one in your second screenshot, under item 2): it instructs the user to close the main program,
Already changed :) I've reworded some others to be more clear also.
Was the Corrupted Message a "popUp" from WL7 or was it a message from the installer?
I am pretty sure the message was from the main WL installer.
ok thanks... not a lot I can do about that :)
Build 2 released with some tweaks and requested features.
Build 2 (2022/02/17)
- Added Extension Removal Tool
- Force new download of current updates when "Download Updates" is clicked by user on the Extension GUI window (Helpful if installers are corrupted)
- Changed Popup Message wording to reduce confusion.
- Added double-encrypted error reporting
- New check for Breaking Changes that alerts user and prompt to install all available updates
- Install Manager now installs WL7 Client update last to avoid possible conflicts caused by reopening WL7 while extensions are installing.
Enjoy
Build 2 (2022/02/17)
- Added Extension Removal Tool
- Force new download of current updates when "Download Updates" is clicked by user on the Extension GUI window (Helpful if installers are corrupted)
- Changed Popup Message wording to reduce confusion.
- Added double-encrypted error reporting
- New check for Breaking Changes that alerts user and prompt to install all available updates
- Install Manager now installs WL7 Client update last to avoid possible conflicts caused by reopening WL7 while extensions are installing.
Enjoy
This is an awesome tool and I've liked using it, thank you!
One small thing, "Preferences" is spelled wrong on the tab.
If you plan on doing more updates, one feature that would be nice would be an "Uninstall extension" feature. When I first got WL7 I downloaded every free extension. Then most of them just became an annoyance. I eventually got the right search done and had to go delete a bunch of dll's, which isn't a huge deal, but this seems like the perfect tool to add a feature to uninstall any particular extension.
Thanks again!
One small thing, "Preferences" is spelled wrong on the tab.
If you plan on doing more updates, one feature that would be nice would be an "Uninstall extension" feature. When I first got WL7 I downloaded every free extension. Then most of them just became an annoyance. I eventually got the right search done and had to go delete a bunch of dll's, which isn't a huge deal, but this seems like the perfect tool to add a feature to uninstall any particular extension.
Thanks again!
@MustPlayOptions Thanks for the feedback.
Removal Tool was introduced in Build 2.
Build 3 just released with minor fixes and error reporting enhancements.
I'll fix the spelling on the next update.
Removal Tool was introduced in Build 2.
Build 3 just released with minor fixes and error reporting enhancements.
I'll fix the spelling on the next update.
Your Response
Post
Edit Post
Login is required