Skip to content

#1751: go-lang commandlet#1757

Merged
hohwille merged 17 commits intodevonfw:mainfrom
MarvMa:feature/#1751-create-go-commandlet
Mar 23, 2026
Merged

#1751: go-lang commandlet#1757
hohwille merged 17 commits intodevonfw:mainfrom
MarvMa:feature/#1751-create-go-commandlet

Conversation

@MarvMa
Copy link
Copy Markdown
Contributor

@MarvMa MarvMa commented Mar 18, 2026

This PR fixes #1751

Implemented changes:

  • Added Go commandlet
  • Added help descriptions for Go
  • Added tests for the Go cmdlet
  • Tested on: Windows x86, Linux x86 and MacOS ARM64

Checklist for this PR

Make sure everything is checked before merging this PR. For further info please also see
our DoD.

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary» (e.g. #921: fixed setup.bat). If no issue ID exists, title only.
  • PR top-level comment summarizes what has been done and contains link to addressed issue(s)
  • PR and issue(s) have suitable labels
  • Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled
    with internal

Checklist for tool commandlets

Have you added a new «tool» as commandlet? There are the following additional checks:

  • The tool can be installed automatically (during setup via settings) or via the commandlet call
  • The tool is isolated in its IDEasy project, see Sandbox Principle
  • The new tool is added to the table of tools in LICENSE.asciidoc
  • The new commandlet is a command-wrapper for «tool»
  • Proper help texts for all supported languages are added here
  • The new commandlet installs potential dependencies automatically
  • The variables «TOOL»_VERSION and «TOOL»_EDITION are honored by your commandlet
  • The new commandlet is tested on all platforms it is available for or tested on all platforms that are in scope of the linked issue

@github-project-automation github-project-automation bot moved this to 🆕 New in IDEasy board Mar 18, 2026
@MarvMa MarvMa changed the title Feature/#1751 create go commandlet #1751: go-lang commandlet Mar 18, 2026
@MarvMa MarvMa added the enhancement New feature or request label Mar 18, 2026
@coveralls
Copy link
Copy Markdown
Collaborator

coveralls commented Mar 18, 2026

Pull Request Test Coverage Report for Build 23428502852

Details

  • 0 of 0 changed or added relevant lines in 0 files are covered.
  • 10 unchanged lines in 3 files lost coverage.
  • Overall coverage increased (+0.007%) to 70.419%

Files with Coverage Reduction New Missed Lines %
com/devonfw/tools/ide/common/Tag.java 1 98.16%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 78.33%
com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java 8 90.1%
Totals Coverage Status
Change from base Build 23345505009: 0.007%
Covered Lines: 10772
Relevant Lines: 14693

💛 - Coveralls

@MarvMa MarvMa requested a review from hohwille March 18, 2026 13:17
@MarvMa MarvMa marked this pull request as ready for review March 19, 2026 09:28
@MarvMa MarvMa requested a review from Copilot March 19, 2026 09:29
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Go tool commandlet to IDEasy CLI, including tagging/help text integration and a dedicated install test project to validate installation behavior.

Changes:

  • Introduce Go tool commandlet and register it in the CLI commandlet manager.
  • Add Go tag and NLS help entries (EN/DE).
  • Add GoTest plus test resources for a mock Go tool repository and URL metadata.

Reviewed changes

Copilot reviewed 9 out of 11 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
cli/src/main/java/com/devonfw/tools/ide/tool/go/Go.java New Go tool commandlet implementation.
cli/src/main/java/com/devonfw/tools/ide/common/Tag.java Adds Tag.GO for tool classification.
cli/src/main/java/com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java Registers the Go commandlet.
cli/src/main/resources/nls/Help.properties Adds English help/description keys for go.
cli/src/main/resources/nls/Help_de.properties Adds German help/description keys for go.
cli/src/test/java/com/devonfw/tools/ide/tool/go/GoTest.java New parameterized install test for Go across OS mocks.
cli/src/test/resources/ide-projects/go/repository/go/go/default/src/make.bash Mock repository payload for Go installation tests.
cli/src/test/resources/ide-projects/go/_ide/urls/go/go/1.22.4/urls URL metadata for the Go test project.
cli/src/test/resources/ide-projects/go/project/workspaces/main/.gitkeep Ensures workspace folder exists in test project.
cli/src/test/resources/ide-projects/go/project/settings/ide.properties Test project settings placeholder.
CHANGELOG.adoc Adds changelog entry for issue #1751.

You can also share your feedback on Copilot code review. Take the survey.

@MarvMa MarvMa self-assigned this Mar 19, 2026
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Copy link
Copy Markdown
Member

@hohwille hohwille left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@MarvMa thanks for integrationg Go into IDEasy so quickly. Great job 👍
The commandlet is pretty simple and straight forward what shows the beauty of our OOP design we meanwhile have with Java (compared to devonfw-ide where we implemented commandlets as bash scripts).
Great that you also added a test and test project as well as CHANGELOG.
I left some small comments for improvement.
When resolved we can merge.

@github-project-automation github-project-automation bot moved this from 🆕 New to 👀 In review in IDEasy board Mar 20, 2026
@hohwille hohwille added this to the release:2026.04.001 milestone Mar 20, 2026
@MarvMa
Copy link
Copy Markdown
Contributor Author

MarvMa commented Mar 20, 2026

The requested changes have been implemented. Are the included tests sufficient enough? @hohwille

@hohwille
Copy link
Copy Markdown
Member

The requested changes have been implemented. Are the included tests sufficient enough? @hohwille

Thanks for the improvement! 👍
Looks good to me. Surely there will always be room to make tests even better and cover more but then we never come to an end. The Go.java file is really small and simple so there is also not more what we need to test. It is all generic features also tested by other tests. So IMHO all perfect now. Ready for merge.

@hohwille hohwille merged commit 7299819 into devonfw:main Mar 23, 2026
4 checks passed
@github-project-automation github-project-automation bot moved this from 👀 In review to ✅ Done in IDEasy board Mar 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

Status: ✅ Done

Development

Successfully merging this pull request may close these issues.

Add go commandlet (go-lang support)

4 participants