Skip to content

Rust Integration#1827

Open
tmukh wants to merge 4 commits intodevonfw:mainfrom
tmukh:1719_Rust_Integration
Open

Rust Integration#1827
tmukh wants to merge 4 commits intodevonfw:mainfrom
tmukh:1719_Rust_Integration

Conversation

@tmukh
Copy link
Copy Markdown
Contributor

@tmukh tmukh commented Apr 16, 2026

This PR Fixes #1719

  • 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---

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 Apr 16, 2026
@tmukh tmukh self-assigned this Apr 16, 2026
@tmukh tmukh requested review from MarvMa and hohwille April 16, 2026 09:33
@MarvMa MarvMa self-assigned this Apr 16, 2026
@coveralls
Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 24503379705

Coverage decreased (-0.1%) to 70.31%

Details

  • Coverage decreased (-0.1%) from the base build.
  • Patch coverage: No coverable lines changed in this PR.
  • 21 coverage regressions across 2 files.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

21 previously-covered lines in 2 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/url/updater/UpdateManager.java 13 0.0%
com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java 8 90.21%

Coverage Stats

Coverage Status
Relevant Lines: 15163
Covered Lines: 11116
Line Coverage: 73.31%
Relevant Branches: 6730
Covered Branches: 4277
Branch Coverage: 63.55%
Branches in Coverage %: Yes
Coverage Strength: 3.09 hits per line

💛 - Coveralls

Copy link
Copy Markdown
Contributor

@MarvMa MarvMa left a comment

Choose a reason for hiding this comment

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

Nice work 🥳 Rust will be a nice addition to IDEasy.


private static final Logger LOG = LoggerFactory.getLogger(Rust.class);

private static final String MSVC_SETUP_URL = "https://aka.ms/vs/17/release/vs_BuildTools.exe";
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I am wondering if there's a need to increase the version 17 in the URL at some point, or if it stays like that.

@MarvMa MarvMa moved this from 🆕 New to Team Review in IDEasy board Apr 16, 2026
@MarvMa
Copy link
Copy Markdown
Contributor

MarvMa commented Apr 17, 2026

I tried to install rust on MacOS ARM64 and got the following error message:

Trying to download rust-1.29.0.rs from https://sh.rustup.rs

Downloading 100% │██████████████████████████│ 0/0MiB (0:00:00 / 0:00:00) ?MiB/s
SHA-256 checksum 6c30b75a75b28a96fd913a037c8581b580080b6ee9b8169a3c0feb1af7fe8caf is correct.
info: downloading installer
warn: It looks like you have an existing rustup settings file at:
warn: /Users/<user>/projects/_ide/software/default/rust/rust/1.29.0/.rustup/settings.toml
warn: Rustup will install the default toolchain as specified in the settings file,
warn: instead of the one inferred from the default host triple.
info: profile set to default
info: default host triple is aarch64-apple-darwin
info: syncing channel updates for 1.29.0-aarch64-apple-darwin
info: latest update on 2018-09-13 for version 1.29.0 (aa3ca1994 2018-09-11)
error: target 'aarch64-apple-darwin' not found in channel.  Perhaps check https://doc.rust-lang.org/nightly/rustc/platform-support.html for available targets
Running command '/bin/bash' with arguments '/Users/<user>/Downloads/ide/default/rust-1.29.0.rs' '-y' '--no-modify-path' '--profile' 'default' '--default-toolchain' '1.29.0'
failed with exit code 1!
Logfile can be found at /Users/<user>/projects/_ide/logs/2026/04/17/test-project-ide-install-09-29-44.log
Running command '/bin/bash' with arguments '/Users/<user>/Downloads/ide/default/rust-1.29.0.rs' '-y' '--no-modify-path' '--profile' 'default' '--default-toolchain' '1.29.0'
failed with exit code 1!

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

4 participants