Feature idea
Currently when there is an update of an IDE this will be downloaded and installed automatically (unless I bump the version in my ide.properties or I use --skip-updates).
Since plugins can be incompatible we have a simple strategy to purge all plugins and reinstall them.
However, the question is if we can avoid this for e.g. minor updates.
Esp. for VScode that both often gets new releases with small updates and where many plugins are typically configured, this can be annoying since the plugin installation is time consuming and is rerun often.
Example I called ide update what caused this effect:
Start: Install vscode
No CVEs found for version 1.134.0 of tool vscode.
Start: Configuring workspace main for IDE vscode
Successfully ended step 'Configuring workspace main for IDE vscode'.
Resetting all installed plugins...
Start: Install plugin prettier-formatter (1/19)
Successfully installed plugin: prettier-formatter
Successfully ended step 'Install plugin prettier-formatter (1/19)'.
Start: Install plugin git-lens (2/19)
Successfully installed plugin: git-lens
Successfully ended step 'Install plugin git-lens (2/19)'.
Start: Install plugin remote-extensionpack (3/19)
Successfully installed plugin: remote-extensionpack
Successfully ended step 'Install plugin remote-extensionpack (3/19)'.
Start: Install plugin yaml (4/19)
Successfully installed plugin: yaml
Successfully ended step 'Install plugin yaml (4/19)'.
Start: Install plugin spellchecker (5/19)
Successfully installed plugin: spellchecker
Successfully ended step 'Install plugin spellchecker (5/19)'.
Start: Install plugin drawio (6/19)
Successfully installed plugin: drawio
Successfully ended step 'Install plugin drawio (6/19)'.
Start: Install plugin rest-client (7/19)
Successfully installed plugin: rest-client
Successfully ended step 'Install plugin rest-client (7/19)'.
Start: Install plugin git-history (8/19)
Successfully installed plugin: git-history
Successfully ended step 'Install plugin git-history (8/19)'.
Start: Install plugin errorlens (9/19)
Successfully installed plugin: errorlens
Successfully ended step 'Install plugin errorlens (9/19)'.
Start: Install plugin kubernetes-tools (10/19)
Successfully installed plugin: kubernetes-tools
Successfully ended step 'Install plugin kubernetes-tools (10/19)'.
Start: Install plugin plantuml (11/19)
Successfully installed plugin: plantuml
Successfully ended step 'Install plugin plantuml (11/19)'.
Start: Install plugin openapi (12/19)
Successfully installed plugin: openapi
Successfully ended step 'Install plugin openapi (12/19)'.
Start: Install plugin docker (13/19)
Successfully installed plugin: docker
Successfully ended step 'Install plugin docker (13/19)'.
Start: Install plugin fabric8-analytics (14/19)
Successfully installed plugin: fabric8-analytics
Successfully ended step 'Install plugin fabric8-analytics (14/19)'.
Start: Install plugin asciidoctor (15/19)
Successfully installed plugin: asciidoctor
Successfully ended step 'Install plugin asciidoctor (15/19)'.
Start: Install plugin todo-highlight (16/19)
Successfully installed plugin: todo-highlight
Successfully ended step 'Install plugin todo-highlight (16/19)'.
Start: Install plugin stylelint (17/19)
Successfully installed plugin: stylelint
Successfully ended step 'Install plugin stylelint (17/19)'.
Start: Install plugin code-runner (18/19)
Successfully installed plugin: code-runner
Successfully ended step 'Install plugin code-runner (18/19)'.
Start: Install plugin xml (19/19)
Successfully installed plugin: xml
Successfully ended step 'Install plugin xml (19/19)'.
Successfully installed vscode in version 1.134.0 replacing previous version 1.133.0 of vscode at D:\projects\IDEasy\software\vscode
Successfully ended step 'Install vscode'.
Additional context
Maybe we can study for each IDE if they have a documented strategy or we can gain from practical experience whether only major updates can break plugins and require a full reinstallation.
For VSCode I never observed this so here it might be a valid assumption that only if the major version changed, we need to purge and reinstall all plugins.
So far this is just a guess that should be challenged.
A strategy should be decided and implemented per IDE while a generic implementation should be used in IdeToolCommandlet allowing a concrete IDE like Vscode or Intellij to override a protected method specifying the release version segment index indicating a change that should be considered incompatible causing the plugins to be purged (Resetting all installed plugins).
Also the log message Resetting all installed plugins is helpful but it would be also good to see the reason for it.
In my case there was no download and extraction of VSCode triggered, since I already had the update installed in my software repo from another project (where also all plugins got purged and reinstalled - so I am even more annoyed getting the same effect multiple times for each VSCode update). In this case I did not even understand that this was triggered by an update of VScode, because the relevant message
Successfully installed vscode in version 1.134.0 replacing previous version 1.133.0 of vscode at D:\projects\IDEasy\software\vscode
Only appeared after all plugins had already been installed what was a lot later.
It would be great to instead see something like this before the plugins get installed:
Resetting all installed plugins due to update of vscode from version 1.333.0 to 1.134.0.
Besides for each plugin I see two success messages.
The first one seems to be logged explicitly as success message and the second one is auto-generated by the step on success.
We should remove the explicit success message to avoid the duplication.
Feature idea
Currently when there is an update of an IDE this will be downloaded and installed automatically (unless I bump the version in my
ide.propertiesor I use--skip-updates).Since plugins can be incompatible we have a simple strategy to purge all plugins and reinstall them.
However, the question is if we can avoid this for e.g. minor updates.
Esp. for VScode that both often gets new releases with small updates and where many plugins are typically configured, this can be annoying since the plugin installation is time consuming and is rerun often.
Example I called
ide updatewhat caused this effect:Additional context
Maybe we can study for each IDE if they have a documented strategy or we can gain from practical experience whether only major updates can break plugins and require a full reinstallation.
For VSCode I never observed this so here it might be a valid assumption that only if the major version changed, we need to purge and reinstall all plugins.
So far this is just a guess that should be challenged.
A strategy should be decided and implemented per IDE while a generic implementation should be used in
IdeToolCommandletallowing a concrete IDE likeVscodeorIntellijto override a protected method specifying the release version segment index indicating a change that should be considered incompatible causing the plugins to be purged (Resetting all installed plugins).Also the log message
Resetting all installed pluginsis helpful but it would be also good to see the reason for it.In my case there was no download and extraction of VSCode triggered, since I already had the update installed in my software repo from another project (where also all plugins got purged and reinstalled - so I am even more annoyed getting the same effect multiple times for each VSCode update). In this case I did not even understand that this was triggered by an update of VScode, because the relevant message
Only appeared after all plugins had already been installed what was a lot later.
It would be great to instead see something like this before the plugins get installed:
Besides for each plugin I see two success messages.
The first one seems to be logged explicitly as success message and the second one is auto-generated by the step on success.
We should remove the explicit success message to avoid the duplication.