Skip to content

#2103: Integrate Obsidian - #2380

Open
Paras14 wants to merge 10 commits into
devonfw:mainfrom
Paras14:feature/2103-obsidian-commandlet
Open

#2103: Integrate Obsidian#2380
Paras14 wants to merge 10 commits into
devonfw:mainfrom
Paras14:feature/2103-obsidian-commandlet

Conversation

@Paras14

@Paras14 Paras14 commented Aug 27, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #2103

Implemented changes:

  • Added Obsidian commandlet extending GlobalToolCommandlet, based on the URL Updater from Create ObsidianUrlUpdater #2186 (#2186: create obsidian url updater #2203)
  • Windows: the downloaded installer .exe is executed and not extracted
  • macOS: the .dmg is extracted so the *.app can be taken out of it
  • Linux: the .tar.gz is extracted
  • Registered the commandlet in CommandletManagerImpl
  • Added help texts in English and German
  • Added Obsidian to the table of tools in documentation/LICENSE.adoc
  • Added ObsidianTest covering registration, tags and the per-OS isExtract() branches

Testing instructions

  1. Run mvn clean test. ObsidianTest and HelpCommandletTest should pass.
  2. Run ide help obsidian and ide --locale=de help obsidian. The English and German help texts should be shown.
  3. Run ide install obsidian on your platform and check that Obsidian is installed.

Note on step 3: ide-urls currently contains no metadata for obsidian, so version resolution
fails and the installation cannot be tested yet. The metadata is only created once the URL
Updater from #2186 has run.


Checklist for this PR

  • When running mvn clean test locally all tests pass and build is successful
  • PR title is of the form #«issue-id»: «brief summary»
  • PR top-level comment summaries 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
  • You followed all coding conventions
  • You have added the issue implemented by your PR in CHANGELOG.adoc
  • You have not changed any dependency in pom.xml files or otherwise if runtime dependencies changed, you have updated LICENSE.asciidoc
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

Checklist for tool commandlets

  • 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 obsidian
  • Proper help texts for all supported languages are added
  • The new commandlet installs potential dependencies automatically (none required)
  • The variables OBSIDIAN_VERSION and OBSIDIAN_EDITION are honored by your commandlet
  • The new commandlet is tested on all platforms it is available for

@github-project-automation github-project-automation Bot moved this to 🆕 New in IDEasy board Aug 27, 2026
@Paras14 Paras14 self-assigned this Aug 27, 2026
@Paras14 Paras14 moved this from 🆕 New to Team Review in IDEasy board Aug 27, 2026
@Paras14 Paras14 added enhancement New feature or request commandlet ide sub-command obsidian labels Aug 27, 2026
@coveralls

coveralls commented Aug 27, 2026

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 33412504001

Coverage decreased (-0.008%) to 73.605%

Details

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

Uncovered Changes

No uncovered changes found.

Coverage Regressions

9 previously-covered lines in 3 files lost coverage.

File Lines Losing Coverage Coverage
com/devonfw/tools/ide/commandlet/CommandletManagerImpl.java 7 92.13%
com/devonfw/tools/ide/tool/ide/IdeToolCommandlet.java 1 87.42%
com/devonfw/tools/ide/version/VersionSegment.java 1 90.55%

Coverage Stats

Coverage Status
Relevant Lines: 18368
Covered Lines: 14135
Line Coverage: 76.95%
Relevant Branches: 8137
Covered Branches: 5374
Branch Coverage: 66.04%
Branches in Coverage %: Yes
Coverage Strength: 3.28 hits per line

💛 - Coveralls

@Ali-Shariati-Najafabadi Ali-Shariati-Najafabadi left a comment

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.

Compiles, tests pass, help texts look good in both languages. Left two comments below I'd want addressed before merging.

Comment thread CHANGELOG.adoc
// the Windows download is an installer executable that has to be started, not extracted
case WINDOWS -> false;
// the macOS download is a DMG image that has to be mounted so the *.app can be taken out of it
case MAC -> true;

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.

Not sure this actually installs anything on mac/linux. doInstall() extracts to a tmp dir, runs the first executable it finds, then deletes the tmp dir right after. For the mac DMG case that just opens the app once and wipes it. Docker handles this by overriding getInstalledVersion() with a check against /Applications/Docker.app — Obsidian doesn't, so it'll probably never register as installed on mac. Given ide-urls has no obsidian entries yet, this is untested — worth a real check once that's in place.

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.

You're right, on mac/linux doInstall() just runs the first executable it finds and then deletes the tmp dir, so nothing gets installed. Also ide-urls has obsidian now and linux_x64 is a .deb, not a .tar.gz.
I've only tested on Windows. Can we keep this PR Windows-only and open a follow-up for mac/linux?
I mean open a separate issue for that?
@hohwille

Comment thread cli/src/main/java/com/devonfw/tools/ide/tool/obsidian/Obsidian.java Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

commandlet ide sub-command enhancement New feature or request obsidian

Projects

Status: Team Review

Development

Successfully merging this pull request may close these issues.

Add obsidian software/commandlet

3 participants