Skip to content

Add UpgradeSettingsCommandlet for the upgrade of legacy devonfw-ide settings to IDEasy #759

@hohwille

Description

@hohwille

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:

  • all devon.properties are renamed to ide.properties. In case a corresponding ide.properties already exists, the config from the devon.properties is merged into the existing ide.properties where ide.properties is the new one and therefore has priority if different values for the same property are defined in both files, the one from devon.properties is ignored/lost. This not only applies to settings but also to conf and all workspaces.
  • We ensure all legacy variables in ide.properties are replaced with their new name (if both legacy and new variable name is defined, the legacy one is removed).
  • Duplicated variables in the same ide.properties are removed (only the last occurrence is kept).
  • If variable DEVON_IDE_CUSTOM_TOOLS exists, it is converted into a ide-custom-tools.json file in settings and the variable is removed (see here and legacy).
  • if settings/devon folder exists, it is renamed to settings/templates
  • UpgradeSettingsCommandlet: settings/templates/conf/.m2 #807
  • if settings/projects folder exists, it is renamed to settings/repositories
  • we recursively traverse all files in settings/workspace and settings/*/workspace and replace all known IdeVariables from 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.
  • if we hit an xml file 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 official ide-settings git repo on github provided by us as template for the settings.
  • that documentation page needs to exist and open when I click the link from that warning and explain the migration from devonfw-ide to IDEasy.
  • if settings/ide.properties does not contain IDE_VARIABLE_SYNTAX_LEGACY_SUPPORT_ENABLED=false it will be added.
  • if a replacement-patterns.properties is found in a workspace folder a warning will be logged if the file is not empty and the file will be deleted.

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.

Metadata

Metadata

Labels

configurationshould be configurable or configuration changeenhancementNew feature or requestsettingside-settings repo and replated processes and features

Projects

Status

✅ Done

Relationships

None yet

Development

No branches or pull requests

Issue actions