Skip to content

1719: Rust Integration#1913

Open
laert-ll wants to merge 27 commits into
devonfw:mainfrom
laert-ll:feature/1719-rust-integration
Open

1719: Rust Integration#1913
laert-ll wants to merge 27 commits into
devonfw:mainfrom
laert-ll:feature/1719-rust-integration

Conversation

@laert-ll
Copy link
Copy Markdown
Contributor

@laert-ll laert-ll commented May 11, 2026

This PR Fixes #1719

Continuation of PR #1827

  • Updated Rust install flow to honor the explicitly requested version from CLI input (e.g. ide install rust1.1.0) instead of always resolving to the default release-0.7.
  • Adjusted version resolution/normalization so requested Rust versions are used consistently for artifact lookup and installation.
  • Improved install logging to show the effective Rust version being installed.
  • Added regression coverage for:
  • explicit version request behavior * fallback to configured default when no version is provided---
  • Addressed suggested changes here.

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- [x] Issue is set to In Progress and assigned to you or there is no issue (might happen for very small PRs)
  • followed all coding conventions
  • added the issue implemented by your PR in CHANGELOG.adoc unless issue is labeled with internal

Checklist for tool commandletsHave 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 May 11, 2026
@laert-ll laert-ll self-assigned this May 11, 2026
@laert-ll laert-ll moved this from 🆕 New to 🏗 In progress in IDEasy board May 11, 2026
@coveralls
Copy link
Copy Markdown
Collaborator

coveralls commented May 11, 2026

Coverage Report for CI Build 26581888672

Warning

Build has drifted: This PR's base is out of sync with its target branch, so coverage data may include unrelated changes.
Quick fix: rebase this PR. Learn more →

Coverage increased (+0.03%) to 71.082%

Details

  • Coverage increased (+0.03%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 33 coverage regressions across 2 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

33 previously-covered lines in 2 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/tool/LocalToolCommandlet.java 25 80.51%
com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java 8 90.64%

Coverage Stats

Coverage Status
Relevant Lines: 15729
Covered Lines: 11665
Line Coverage: 74.16%
Relevant Branches: 7004
Covered Branches: 4494
Branch Coverage: 64.16%
Branches in Coverage %: Yes
Coverage Strength: 3.14 hits per line

💛 - Coveralls

@laert-ll laert-ll force-pushed the feature/1719-rust-integration branch 3 times, most recently from 447da62 to 18fc327 Compare May 19, 2026 11:40
@hohwille hohwille mentioned this pull request May 19, 2026
14 tasks
@hohwille hohwille moved this from 🏗 In progress to Team Review in IDEasy board May 19, 2026
@hohwille hohwille marked this pull request as ready for review May 19, 2026 12:04
@AdemZarrouki AdemZarrouki self-requested a review May 20, 2026 07:29
@hohwille hohwille added this to the release:2026.05.001 milestone May 21, 2026
@laert-ll laert-ll force-pushed the feature/1719-rust-integration branch from dcc6a84 to f150bd6 Compare May 22, 2026 06:10
@laert-ll
Copy link
Copy Markdown
Contributor Author

@hohwille
I added a hook in LocalToolCommandlet.java called onInstall, which handles in Rust.java only Rust-specific setup logic. This removes the need for performToolInstallation to be called in Rust.java along with all it's boilerplate code.
To help with this, I introduced two other hooks in LocalToolCommandlet.java as well: getDownloadedToolFile and installDependencies.

@laert-ll laert-ll force-pushed the feature/1719-rust-integration branch from 7e990d3 to ba5d98f Compare May 27, 2026 08:15
Copy link
Copy Markdown
Contributor

@AdemZarrouki AdemZarrouki left a comment

Choose a reason for hiding this comment

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

I think the Licence are still missing in the PR.

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/msvc/Msvc.java
Copy link
Copy Markdown
Contributor

@AdemZarrouki AdemZarrouki left a comment

Choose a reason for hiding this comment

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

Tested on windows and rust was successfully

$ ide rust
Usage: rustc [OPTIONS] INPUT

}

@Override
protected void installDownloadedToolPayload(ToolInstallRequest request, Path installationPath, Path installerScript) {
Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

Regarding installDownloadedToolPayload, I'm not exactly sure what to name this new hook, given that there are already a lot of methods in this file containing the word install in it.

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

Labels

None yet

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Integrate rust

5 participants