You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
* devonfw#878: insteall latest version if unspecified
* devonfw#933: fixed typo
* devonfw#878: insteall latest version if unspecified also for docker
* devonfw#878: added to CHANGELOG
* devonfw#826: excuse rule for cobigen added
* devonfw#878: fixed stupid bug
* devonfw#847: fix for global tools and cobigen
* devonfw#878: devonfw#933: fixes and improvements
* devonfw#893: ability to configure version prefix
* devonfw#940: handle silent mode in doInstall and simplify doSetup
* devonfw#934: shellcheck fix
* devonfw#934: CHANGELOG
* devonfw#940: generalize macos workarounds
* devonfw#940: generalize macos workarounds
* devonfw#940: generalize macos workarounds
* devonfw#940: need to implement on mac, small improvements for debugging
* devonfw#940: generalize macos workarounds
* devonfw#940: generalize macos workarounds
* devonfw#940: fix - thanks shellcheck
* devonfw#940: fixed doInstall java extra arg order
* devonfw#940: OMG: fixed custom tools bug
* devonfw#893: extended test and fixed doVersionCompare
* devonfw#934: removed code entirely
* devonfw#934: removed TODO
* devonfw#934: simplified
* devonfw#934: fixed download caching
* devonfw#934: fixed aws
* devonfw#934: keep code to remove aws installer
* devonfw#934: fixed typos
* devonfw#957: symlink fix
* devonfw#957: symlink fix
* devonfw#934: fixed gcviewer
* devonfw#934: shellcheck fix
* devonfw#934: shellcheck war starts
* devonfw#934: improve DEVON_SOFTWARE_PATH on win
* devonfw#934: shellcheck fix
* devonfw#958: make symlinks work on windows
* devonfw#958: updated documentation
* devonfw#934: improved DoD from review comment
* devonfw#934: define HOME always on top
* devonfw#960: prevent "oc version" error
* devonfw#940: improve MacOS workaround
* devonfw#934: fixed doMavenArchetype
* devonfw#934: fixed aws
* devonfw#934: aligned and simplified
* devonfw#940: fixes for MacOS workaround
* devonfw#940: MacOS quickfix for eclipse
* devonfw#911: further improvements for eclipse
* devonfw#934: shellcheck fix
* devonfw#934: nasty shellcheck
* devonfw#960: added to CHANGELOG
* devonfw#961: split functions, fixed intellij version command on mac
* devonfw#961: fixed function doc
* Fix Add-plugin and custom start parameter
I fixxed the add plugin function which forgot to call vscode with "--install-extension".
And I changed the run command so it passes the arguments given to the run method, so you can run vscode with custom start parameters aswell now.
For example:
devon vscode run --list-extension
* devonfw#934: removed debug output
* devonfw#961: fixed function doc
* devonfw#934: devonfw#943: improve vscode plugin installation
* rename pip-latest-windows to pip-latest-pip
There was in an error installing pip on Windows because the installation file was renamed from pip-latest-windows-py to pip-latest-pip.py
* use cg --version
* devonfw#934: added missing X flags
* devonfw#940: fixed MacOS Workaround
* devonfw#934: python fix due to doInstall installer missuse
* devonfw#934: improved doc for shared software
* devonfw#934: rancher fix due to doInstall installer missuse
* devonfw#934: kubectl shall not have knowledge about docker installation
Co-authored-by: Genetics <[email protected]>
Co-authored-by: alfeilex <[email protected]>
Copy file name to clipboardExpand all lines: documentation/DoD.asciidoc
+3-1
Original file line number
Diff line number
Diff line change
@@ -22,7 +22,7 @@ However, chances to get your change merged quickly are higher if you address all
22
22
* [ ] You followed all coding conventions (indent with 2 spaces, no tabs, functions start with `do` prefix, variables are enclosed with curly braces, variables in functions are declared with `local`, etc.)
23
23
* [ ] You have already added the issue implemented by your PR in https://github.com/devonfw/ide/blob/master/CHANGELOG.asciidoc[CHANGELOG.asciidoc] to the next open release (see milestones or https://github.com/devonfw/ide/blob/master/.mvn/maven.config[maven.config]). If there is no issue for your PR consider creating it or directly link the PR itself. Please note that the CHANGELOG shall only reflect public changes relevant for end-users. So e.g. if we implement a story and then add another PR as bugfix or improvement to the same story, we do not need to document this in the CHANGELOG to avoid spam and confusion.
24
24
* [ ] In case your PR adds a new tool `«tool»` as commandlet there are the following additional checks:
25
-
** [ ] The tool is already available as folder `«tool»` in https://github.com/devonfw/ide-mirrors[ide-mirrors]
25
+
** [ ] The tool is already available as folder `«tool»` in https://github.com/devonfw/ide-mirrors[ide-mirrors] including `available-versions`.
26
26
** [ ] A new commandlet named `«tool»` has been added to https://github.com/devonfw/ide/tree/master/scripts/src/main/resources/scripts/command[command] that allows to install and launch the given software.
27
27
** [ ] The tool can be installed automatically (during setup via settings) or via the commandlet call.
28
28
** [ ] During the installation process (`devon «tool» setup`) reasonable progress and status information are displayed.
@@ -36,6 +36,8 @@ However, chances to get your change merged quickly are higher if you address all
36
36
** [ ] The new tool is added to the table of tools in https://github.com/devonfw/ide/blob/master/documentation/LICENSE.asciidoc#license[LICENSE.asciidoc] with its according licesne. If that license is not yet included, the full license text needs to be added.
37
37
** [ ] The new commandlet is a https://github.com/devonfw/ide/blob/master/documentation/cli.asciidoc#command-wrapper[command-wrapper] for `«tool»`.
38
38
** [ ] The new commandlet installs potential dependencies automatically (e.g. `doDevonCommand «required-other-tool» setup silent`).
39
+
** [ ] The new commandlet defines the variable `TOOL_VERSION_COMMAND` before sourcing the `functions`. If no version check is supported by the tool itself set the value to `-`. In case your commandlet is not about a tool that can be setup, simply set the value as empty to make this explicit.
40
+
** [ ] If the new commandlet is about a tool that can be setup, then test that also `devon «tool» version list`, `devon «tool» version get`, and `devon «tool» version set` are all working.
39
41
** [ ] The variable `«TOOL»_VERSION` is honored by your commandlet so if present that version will be downloaded and installed.
40
42
** [ ] The new commandlet is tested on all plattforms it is availible for. Assuming you are using Windows, testing for Linux can be done with the Windows Subsystem for Linux and for MacOS we have a virtual cloud instance.
41
43
* [ ] In case your PR adds, changes, or removes a function (in `functions` or `environment-project`) you need to update `functions.asciidoc` accordingly. There is an automated test that will fail otherwise.
|`$8` |ext |The optional extension (e.g. 'tar.gz' or 'zip').
198
+
|`$9` |filename|The optional filename to save the downloaded file to.
200
199
|=======================
201
200
202
201
=== doDownloadInternal
@@ -206,10 +205,34 @@ If this does not happen, the name is determined from the URL.
206
205
If the file exists and the force option was not specified, the function ends with a corresponding message and the return value 255.
207
206
Otherwise the file is downloaded and, if successful, moved to the target directory.
208
207
208
+
=== doEnvironmentProject
209
+
Loads all `devon.properties` via xref:doLoadProperties[].
210
+
If the first argument is not empty (set to `export`) it will export all the properties.
211
+
Also it sets the environment variables `DEVON_HOME_DIR`, `WORKSPACE`, and `WORKSPACE_PATH`.
212
+
Finally, it updates the `PATH` variable via xref:doUpdatePath[] and exports it.
213
+
209
214
=== doExtract
210
215
Takes the file to be extracted and possibly a path to where it should be extracted.
211
216
Then the right tool is selected based on the file extension and the file is unzipped.
212
217
218
+
=== doResolveDownloadUrl
219
+
Function for additional custom logic when resolving the download URL.
220
+
The xref:doDownload[] function resolves standard variables like `version`, `os`, `arch`, and `ext` automatically in URLs from `mirrors` repository config.
221
+
However, for special cases this is insufficient as some tools do not follow best-pratices for consistent and systematic download URLs.
222
+
Therefore xref:doDownload[] will call this function to further resolve the computed download URL.
223
+
By default this function does nothing but echoing the given URL (`$1`).
224
+
However, a commandlet may override this function after souring `functions` in order to define custom logic for URL resolving.
225
+
When required, we typically resolve a `code` variable that can be derived from the arguments given to this function.
226
+
227
+
|=======================
228
+
|*Param*|*Name* |*Description*
229
+
|`$1` |URL |The download URL with standard variables resolved.
|`$5` |edition |The optional edition of the software to install (e.g. "enterprise" or "community").
234
+
|=======================
235
+
213
236
=== doGitPullOrClone
214
237
Takes the target path and the URL or URL#branch as parameters.
215
238
If the directory is a Git repository, it is tested whether remote repositories are configured and, if so, a git pull is performed.
@@ -219,37 +242,21 @@ However, if a URL was specified, the specified directory is created, changed to
219
242
If the branch was also specified in the URL, a checkout is carried out on this branch.
220
243
221
244
=== doInstall
222
-
The url of the software to be installed, the target directory in which the software is to be stored and the name of the software are given as parameters to the doInstall function.
223
-
The function then downloads the software via doDownload into the download directory of the registered user, unpacks the software into the updates/extracted directory and then finally moves the software into the DEVON_IDE_HOME/software/"name of the software" directory.
224
-
225
-
Additional parameters can also be passed to the function:
226
-
227
-
* The version parameter ensures that a specific version of the software is installed.
228
-
229
-
* If a "-" is passed to the function as the url, the settings from the Git repository ide-mirrors are used to download the correct software, e.g.
230
-
depending on the operating system.
231
-
232
-
* You can specify your own repository using the repository parameter or the DEVON_SOFTWARE_REPOSITORY variable.
233
-
This ensures that the package to be installed is loaded from there.
234
-
235
-
* If software is required that needs to be installed instead of just being unpacked and moved to the IDE_DEVON_HOME/software directory, you can set the directory for the installation software to DEVON_IDE_HOME/updates/install as the target directory.
236
-
Following the doInstall call in the commandlet, the installation of the software can then be initiated.
237
-
238
-
* If parameters five through nine (edition, code, os, arch, and ext) are specified, they are passed directly to the doDownload function.
245
+
Ensures a specific version of a software is installed.
246
+
If no fixed version is given, it resolves the final version (if version is empty use latest, in case of version prefix use latest matching version).
247
+
In case the software is already installed in the resolved version, return `1`.
239
248
240
249
|=======================
241
250
|*Param*|*Name* |*Description*
242
-
|`$1` |URL |The explicit URL to download from or `-` to compute in xref:doDownload[].
243
-
|`$2` |path |The absolute target path where to install the software.
244
-
|`$3` |name |The name of the software to install.
245
-
|`$4` |version |The version of the software to install. May be omitted to install the latest version.
246
-
|`$5` |edition |The optional edition of the software to install (e.g. "enterprise" or "community").
247
-
|`$6` |code |The optional technical code used for specific software to compute download URL.
248
-
|`$7` |os |The optional OS indicator ('-' if OS independent). If omitted the OS will be determined automatically.
Copy file name to clipboardExpand all lines: documentation/software.asciidoc
+7-5
Original file line number
Diff line number
Diff line change
@@ -26,22 +26,24 @@ This subfolder needs to contain the tool in that version for every operating sys
26
26
By default, each installation of `devonfw-ide` has its own physical installations of the required tools in the desired versions stored in its local `software` folder.
27
27
While this is great for isolation of `devonfw-ide` installations and to prevent side-effects, it can cause a huge waste of disc resources in case you are having many installations of `devonfw-ide`.
28
28
If you are a power-user of `devonfw-ide` with more then ten or even up to hundreds of installations on your machine, you might love to share installations of a software tool in a particular version between multiple `devonfw-ide` installations.
29
+
In order to do so, you only need to link:configuration.asciidoc[configure] the variable `DEVON_SOFTWARE_PATH` in your `~/devon.properties` pointing to an existing absolute directory on your disc (e.g. `/projects/software` or `C:\projects\software`).
29
30
30
-
CAUTION: If you use this power-feature you are taking responsibility for side-effects and should not expect support. Also if you are using Windows please read https://www.joshkel.com/2018/01/18/symlinks-in-windows/[Symlinks in Windows] and make your mind if you really want to do so. You might also use this link:advanced-tooling-windows.asciidoc#create-symbolic-links[hint] and maintain it manually without enabling the following feature.
31
+
CAUTION: DEVON_SOFTWARE_PATH must be an absolte path that is an existing directory. On windows it has to be on the same drive as your IDE installations. If you use this power-feature you are taking responsibility for side-effects and should not expect support. You might also use this link:advanced-tooling-windows.asciidoc#create-symbolic-links[hint] and maintain it manually without enabling the following feature.
31
32
32
-
In order to do so, you only need to link:configuration.asciidoc[configure] the variable `DEVON_SOFTWARE_PATH` in your `~/devon.properties` pointing to an existing directory on your disc (e.g. `/projects/software` or `C:\projects\software`).
33
33
Then `devonfw-ide` will install required software into `${DEVON_SOFTWARE_PATH}/${software_name}/${software_version}` as needed and create a symbolic link to it in `${DEVON_IDE_HOME}/software/${software_name}`.
34
34
35
-
As a benefit, another `devonfw-ide` installation will using the same software with the same version can re-use the existing installation and only needs to create the symbolic link. No more waste of having many identical JDK installations on your disc.
35
+
As a benefit, another `devonfw-ide` installation will using the same software with the same version can re-use the existing installation and only needs to create the symbolic link.
36
+
No more waste of having many identical JDK installations on your disc.
36
37
37
38
As a drawback, you need to be aware that specific tools may be "manipulated" after installation.
38
-
The most common case is that a tool allows to install plugins or extensions such as all IDEs do. Such "manipulations" will cause side-effects between the different `devonfw-ide` installations sharing the same version of that tool.
39
+
The most common case is that a tool allows to install plugins or extensions such as all IDEs do.
40
+
Such "manipulations" will cause side-effects between the different `devonfw-ide` installations sharing the same version of that tool.
39
41
While this can also be a benefit it may also cause trouble.
40
42
If you have a sensitive project that should not be affected by such side-effects, you may again override the `DEVON_SOFTWARE_PATH` variable to the empty value in your `${DEVON_IDE_HOME}/conf/devon.properties` of that sensitive installation:
41
43
```
42
44
DEVON_SOFTWARE_PATH=
43
45
```
44
-
This will disable this feature particularly for that specific sensitive `devonfw-ide` installation but let you use it for all other ones.
46
+
This will disable this feature particularly for that specific sensitive `devonfw-ide` installation but let you use it for other ones.
0 commit comments