As a IDEasy user comming from a devonfw-ide project, I want to have a command to upgrade my settings from devonfw-ide to IDEasy so that I can get rid of all legacy after all my team members have already switched to IDEasy.
An UpgradeSettingsCommandlet shall be added so I can run ide upgrade-settings to upgrade my settings:
General note:
- Whenever it says a folder shall be renamed, it must be ensured that the new name does not already exist. Otherwise the rename should not take place and a warning must be logged.
As a IDEasy user comming from a devonfw-ide project, I want to have a command to upgrade my settings from devonfw-ide to IDEasy so that I can get rid of all legacy after all my team members have already switched to IDEasy.
An
UpgradeSettingsCommandletshall be added so I can runide upgrade-settingsto upgrade my settings:devon.propertiesare renamed toide.properties. In case a correspondingide.propertiesalready exists, the config from thedevon.propertiesis merged into the existingide.propertieswhereide.propertiesis the new one and therefore has priority if different values for the same property are defined in both files, the one fromdevon.propertiesis ignored/lost. This not only applies tosettingsbut also toconfand allworkspaces.ide.propertiesare replaced with their new name (if both legacy and new variable name is defined, the legacy one is removed).ide.propertiesare removed (only the last occurrence is kept).DEVON_IDE_CUSTOM_TOOLSexists, it is converted into aide-custom-tools.jsonfile insettingsand the variable is removed (see here and legacy).settings/devonfolder exists, it is renamed tosettings/templatessettings/projectsfolder exists, it is renamed tosettings/repositoriessettings/workspaceandsettings/*/workspaceand replace all knownIdeVariablesfrom CURLY into ANGLED syntax and legacy variable names are replaced with their new names. So e.g.${DEVON_IDE_HOME}is replaced with$[IDE_HOME]or${MAVEN_VERSION}is replaced with$[MVN_VERSION]. We also need to replace${SETTINGS_PATH}with$[IDE_HOME]/settings.xmlfile that is not containing the XML namespace of our merger, we print a warning with the filepath saying that this file is most-likely outdated and print a link to a documentation page about this settings migration feature and linking to our XML merger docs in configurator and telling the project to sync their workspace config manually with the officialide-settingsgit repo on github provided by us as template for the settings.settings/ide.propertiesdoes not containIDE_VARIABLE_SYNTAX_LEGACY_SUPPORT_ENABLED=falseit will be added.if a replacement-patterns.properties is found in aworkspacefolder a warning will be logged if the file is not empty and the file will be deleted.General note: