Skip to content

support for tool dependencies #1178

Closed
Closed

Description

@hohwille

As a devonfw-ide user, I want to have tools being setup with their correct dependencies so that it just works and I do not have to worry.

As illustrated by #1082 or #1170 it currently does not work well:
E.g. several tools have java as dependency:

  • mvn
  • eclipse
  • intellij
  • jenkins
  • sonar
  • ...

However, they may all require different versions of java ending up in an inconsistent situation that devonfw-ide currently cannot resolve. As a solution I see the following ideas:

  • in ide-urls in each tool/edition version folder we will introduce a new (optional) dependencies file.
  • this file will contain a list of 1-n tools with their required version or version range (similar to a dependency in maven, gradle, or npm).
  • we can still discuss if that should be in JSON format (and then being named dependencies.json) or just a plain file with one dependency per line (TBD)
  • if no such file is present, there are no dependencies required. Otherwise these dependencies have to be setup as well to launch the tool.
  • in order to avoid conflicts between different versions of the same tool, we make the shared software repository the new default.
  • the default java version for the build (e.g. for maven or gradle) will still be found in software/java but as a symlink to the configured JAVA_VERSION.
  • However tools like eclipse/intellij/jenkins/sonar/... can require their own Java version via the dependencies file. If the default Java (JAVA_VERSION) does not match, then an additional java version is found or installed in the shared software repository and used instead by setting JAVA_HOME to it and adding it to the beginning of the PATH but only locally in the commandlet before launching the java based tool.
  • we will analyze if we can find ways to automatically determine dependencies for specific tool versions. Where not possible, we will simply put the latest default into the according UrlUpdater class for that tool/edition and have to change it whenever a new version comes out that has different dependencies. If we notice too late (what might be the regular case), we have to change existing dependency version file(s) manually and also change the UrlUpdater then for future versions.
  • all existing dependencies will need to be added via manual crafting what can be quite some effort.

Activity

  1. added
    enhancementNew feature or request
    softwaresoftware-package with 3rd party products
    setuprelated to the setup process of devonfw-ide (setup[.bat] and devon ... setup)
    Epicsomething big that needs to be split into smaller stories (issues)
    on Jun 2, 2023
  2. hohwille commented on Jan 8, 2024

    @hohwille
    MemberAuthor

    Replaced by devonfw/IDEasy#131

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

Epicsomething big that needs to be split into smaller stories (issues)enhancementNew feature or requestsetuprelated to the setup process of devonfw-ide (setup[.bat] and devon ... setup)softwaresoftware-package with 3rd party products

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions