Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

support for tool dependencies #1178

Closed
hohwille opened this issue Jun 2, 2023 · 1 comment
Closed

support for tool dependencies #1178

hohwille opened this issue Jun 2, 2023 · 1 comment
Assignees
Labels
enhancement New feature or request Epic something big that needs to be split into smaller stories (issues) setup related to the setup process of devonfw-ide (setup[.bat] and devon ... setup) software software-package with 3rd party products

Comments

@hohwille
Copy link
Member

hohwille commented Jun 2, 2023

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.
@hohwille hohwille added enhancement New feature or request software software-package with 3rd party products setup related to the setup process of devonfw-ide (setup[.bat] and devon ... setup) Epic something big that needs to be split into smaller stories (issues) labels Jun 2, 2023
@hohwille
Copy link
Member Author

hohwille commented Jan 8, 2024

Replaced by devonfw/IDEasy#131

@hohwille hohwille closed this as completed Jan 8, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request Epic something big that needs to be split into smaller stories (issues) setup related to the setup process of devonfw-ide (setup[.bat] and devon ... setup) software software-package with 3rd party products
Projects
None yet
Development

No branches or pull requests

2 participants