Skip to content

#2293: rework spyder as ide tool commandlet - #2333

Draft
JoelAdbu wants to merge 17 commits into
devonfw:mainfrom
JoelAdbu:feature/2293-rework-spyder-as-ideToolCommandlet
Draft

#2293: rework spyder as ide tool commandlet#2333
JoelAdbu wants to merge 17 commits into
devonfw:mainfrom
JoelAdbu:feature/2293-rework-spyder-as-ideToolCommandlet

Conversation

@JoelAdbu

@JoelAdbu JoelAdbu commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

This PR fixes #2293

Implemented changes:

  • added new interface for IDE specific features
  • extracted workspace configuration logic into new class
  • PipBasedIdeToolCommandlet and IdeToolCommandlet are implementing this new interface
  • added new merger for .ini files
  • adjusted Spyder conf variable to get configuration from workspace
  • added new interface for plugin features
  • extracted plugin logic from PluginBasedToolCommandlet to new class
  • PluginBasedToolCommandlet and PipBasedToolCommandlet are implementing the new plugin features interface

Testing instructions

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

Test for workspace configuration

  1. Run
mvn clean test
  1. Create a new project

  2. Add the following spyder configuration to settings/spyder/update/.spyder-py3/config/spyder.ini with following content:

[appearance]
ui_theme = dark
font/family = JetBrains Mono
font/size = 25
app_font/family = JetBrains Mono
app_font/size = 25
monospace_app_font/family = JetBrains Mono
monospace_app_font/size = 25
selected = obsidian
 
[main]
font/family = JetBrains Mono
font/size = 25
  1. Start spyder
ide spyder
  1. Verify Spyder opens the correct project.
  2. Verify that the configured settings are applied (e.g. dark theme, Obsidian color scheme, JetBrains Mono font, font size 25)

test for plugin support


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 and not feature/921 fixed setup.bat). If no issue ID exists, title only.
  • 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 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 labelled
    with internal
  • You have not changed any dependency in pom.xml files or otherwise if runtime dependencies changed, you have updated our LICENSE.asciidoc
  • You have formulated clear instructions on how to test your contribution under "Testing instructions"

- extracted workspace Configuration logic and repository import into a new class IdeWorkspaceConfigurer
- added new  extensible interface IdeFeature so workspace configuration is not only available for IdeToolCommandlets but also for Ide's that extend different classes like PipBasedIdeToolCommandlet
- PipbasedIdeToolCommandlet implementes IdeFeatures via extracted logic of Workspaceconfigurer
- since repository import method is defined by the new interface it should be triggered by all commandlets that are implementing this interface
- configureWorkspace now needs to be public
- added env variable to override default config dir of spyder with specific IDEasy configdir
- added logic to set working directory for spyder
- added new merge for .ini files
- added Merger for .ini files
- fixed tests
- refactoring
- refactoring
@coveralls

Copy link
Copy Markdown
Collaborator

Coverage Report for CI Build 31789612151

Warning

No base build found for commit 31dabbf on main.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 72.441%

Details

  • Patch coverage: No coverable lines changed in this PR.

Uncovered Changes

No uncovered changes found.

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 17680
Covered Lines: 13357
Line Coverage: 75.55%
Relevant Branches: 7811
Covered Branches: 5109
Branch Coverage: 65.41%
Branches in Coverage %: Yes
Coverage Strength: 3.21 hits per line

💛 - Coveralls

 - adjusted toolArg to open correct project path
@JoelAdbu JoelAdbu added enhancement New feature or request spyder Python IDE labels Aug 26, 2026
- refactoring
- added methods to PluginFeatures interface
- refactoring of Plugin logic from PluginBasedCommandlet to plugin manager
- Eclipse adjustment due to refactoring
- PipbasedideToolCommandlet now implements PluginFeatures to have Plugin support for pip based ide's
- fix to use correct plugin conf path
- fix for tests
- added test for PipBasedIdeToolCommandlet
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request spyder Python IDE

Projects

Status: 🆕 New

Development

Successfully merging this pull request may close these issues.

Rework spyder as IdeToolCommandlet

2 participants