Before you start with your contribution, we assume you have completed the developer setup and picked your first issue.
Now, to get started with your implementation follow these steps:
-
Ensure your fork is in sync:
git checkout main git pull upstream main git push -
Create a new feature branch:
git checkout -b feature/«issue-id»-«brief-feature-description» -
Implement your changes, improvements, or fixes.
-
Test your changes:
mvn clean installIf that fails, fix your changes and rerun the tests.
-
Commit your changes:
git add ... git commit -m "#«issue-id»: «description»" -
Keep your feature branch up-to-date:
If some days have passed meanwhile you should merge changes that meanwhile happened on the official
IDEasyrepo:git pull upstream main -
Push your changes: Once you are complete and everything is merged and committed, you can push your local feature branch and make it a remote branch of your fork on github:
git push -u origin feature/«issue-id»-«brief-feature-description» -
Create pull-request:
Now you can go to https://github.com/devonfw/ideasy/pulls and create the pull-request (PR) for your new feature. Therefore, watch for the light yellow box at the top and click the green
Compare & pull requestbutton. For further steps and details see pull-request documentation.
Many programs have a download link that depends on the operating system.
For a new tool, create an url-updater in the updater folder in the current repository. The Name needs to be equal to the one of both the tool and the commandlet.
There are four available parent classes of url-updaters, that can be used. They mainly differentiate in the way, available versions are detected.
Note: The WebsiteUrlUpdater should not be used if other viable options are available.
The updaters use the function doAddVersion(), where the downloadUrl, OS and architecture can be specified for each version. Example
VersionIdentifiers can also be used if e.g. the downloadUrl changed after a specific version, or certain versions are not intended to be available. Example
Once a day, the UpdateInitiator will run the updaters through GitHub Actions and fill the ide-URL repository with new version/tools that are identified by the Updaters.
Use an existing commandlet like Java as a reference. Create a sub-package and a class with the name of the tool.
Find the license for the new tool and add the tool to the table of Third party components of the LICENSE.
If the license itself does not exist, add it to the end of the file as a new section.
The ide-settings repository allows project-specific configurations of the IDE tools. For your own settings, fork the repository, adjust the configuration and specify the repository URL during installation. Important notes on configuration and especially configuration files can be found in the configuration. In the configuration files many variables can be defined.
When reading this guide online on GitHub, see the directory tree on the left side-bar to navigate and browse the documentation folder.
In case you are reading this from your cloned git repository locally, use your IDE of file explorer to browes it.
Please study the documentation that explains many important aspects of IDEasy.
As a developer it is espcially important to study the coding-conventions and Definition of Done.
Further, please browse the JavaDoc of the source-code to understand the different types and structures of our project.
To get started see our design diagram that needs PlantUml support to be viewed (e.g. via IntelliJ with according plugin).
This diagram gives you a good overview of the most important types in the code-base.