Skip to content

#1942: create ruby url updater#2066

Open
Caylipp wants to merge 8 commits into
devonfw:mainfrom
Caylipp:feature/#1942-create-ruby-url-updater
Open

#1942: create ruby url updater#2066
Caylipp wants to merge 8 commits into
devonfw:mainfrom
Caylipp:feature/#1942-create-ruby-url-updater

Conversation

@Caylipp

@Caylipp Caylipp commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #1942

Implemented changes:

  • Add Ruby URL updater for RubyInstaller releases.
  • Generate Windows x64 download URLs for supported RubyInstaller versions.
  • Ignore RubyInstaller releases older than 2.5.3-1 because older releases use unsupported legacy tag naming.
  • Add WireMock integration test for the Ruby URL updater.

Testing instructions

Please add conscise, understandable instructions on how a reviewer can test/verify the functionality of your contribution here:

  1. Run mvn clean test.
  2. Verify that RubyUrlUpdaterTest passes.
  3. Verify that RubyInstaller version 2.5.3-1 creates a status.json and a windows_x64 URL entry.
  4. Verify that older RubyInstaller version 2.4.0-7 is ignored.

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
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

@github-project-automation github-project-automation Bot moved this to 🆕 New in IDEasy board Jun 23, 2026
@Caylipp Caylipp moved this from 🆕 New to Team Review in IDEasy board Jun 23, 2026
@Caylipp Caylipp self-assigned this Jun 23, 2026
@Caylipp Caylipp added enhancement New feature or request urls ide-urls repo and related processes and features ruby labels Jun 23, 2026
@Caylipp Caylipp added this to the release:2026.07.001 milestone Jun 23, 2026
@coveralls

coveralls commented Jun 23, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 28951267785

Coverage decreased (-0.02%) to 72.104%

Details

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

Uncovered Changes

No uncovered changes found.

Coverage Regressions

15 previously-covered lines in 3 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/url/updater/UpdateManager.java 13 0.0%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 78.33%
com/devonfw/tools/ide/version/VersionSegment.java 1 91.08%

Coverage Stats

Coverage Status
Relevant Lines: 16728
Covered Lines: 12570
Line Coverage: 75.14%
Relevant Branches: 7462
Covered Branches: 4872
Branch Coverage: 65.29%
Branches in Coverage %: Yes
Coverage Strength: 3.18 hits per line

💛 - Coveralls

@vivu001 vivu001 self-assigned this Jun 24, 2026
@vivu001

vivu001 commented Jun 25, 2026

Copy link
Copy Markdown
Contributor

I followed the testing instructions and everything has worked as expected. Well-implemented, properly tested 👍 🎉.
@Caylipp I also have a few remarks for removing some code smell to improve code quality.

@Caylipp Caylipp moved this from Team Review to 👀 In review in IDEasy board Jun 30, 2026

@hohwille hohwille left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

@Caylipp thanks for your PR. Nice that you could solve the UrlUpdater for Windows. 👍
We could merge this, but I have some doubts if we really want to continue with the story if there is no support for Mac and Linux...
WDYT?

Comment on lines +35 to +38
String baseUrl = createGithubReleaseDownloadUrl("RubyInstaller-${version}", "rubyinstaller-");

doAddVersion(urlVersion, baseUrl + "x64.7z", WINDOWS, X64);
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We are only addressing Windows here so Linux and Mac users will fail to install ruby?

I am again shocked that the ruby guys only provide their source-code and ask the users to compile it themselves:
https://www.ruby-lang.org/en/downloads/

See
https://github.com/devonfw/IDEasy/blob/main/documentation/tool-vendor-plea.adoc#binary-releases

So if there are no releases for MacOS (and Linux) should we really integrate ruby into IDEasy?
This will only cause headaches if then projects think it is supported and start using it but then Mac/Linux users joining the team will be left in the rain.
Why do tool vendors not do their homework and this has always to be that hard?

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.

I see your point. This could definitely cause issues later on. If Ruby support is highly requested, we could document that only Windows is supported for now and that macOS/Linux users need to install Ruby manually. Otherwise, I am not sure if the integration effort is worth it.

Comment on lines +8 to +29
public class RubyUrlUpdaterMock extends RubyUrlUpdater {

private final String baseUrl;

private final WireMockRuntimeInfo wmRuntimeInfo;

RubyUrlUpdaterMock(WireMockRuntimeInfo wireMockRuntimeInfo) {
super();
this.wmRuntimeInfo = wireMockRuntimeInfo;
this.baseUrl = wireMockRuntimeInfo.getHttpBaseUrl();
}

@Override
protected String getDownloadBaseUrl() {
return this.baseUrl;
}

@Override
protected String doGetVersionUrl() {
return this.baseUrl + "/repos/" + getGithubOrganization() + "/" + getGithubRepository() + "/releases";
}
}

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

We don't do this any more.
See #1988

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.

Thanks for the hint.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

When you have resolved this and created an issue to support ruby for linux/mac, we can merge this PR.

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Due to no reaction, I have to take this out of the release.

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.

Thanks for the feedback and sorry for the delayed reaction.

I removed the RubyUrlUpdaterMock and adapted RubyUrlUpdater.

I will also create a separate issue to support Ruby for Linux/macOS.

@hohwille hohwille changed the title #1942 create ruby url updater #1942: create ruby url updater Jul 7, 2026
@Caylipp Caylipp force-pushed the feature/#1942-create-ruby-url-updater branch from 9c2494b to a60a493 Compare July 8, 2026 07:21
@laert-ll laert-ll mentioned this pull request Jul 8, 2026
16 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request ruby urls ide-urls repo and related processes and features

Projects

Status: 👀 In review

Development

Successfully merging this pull request may close these issues.

Create a RubyUrlUpdater

4 participants