Skip to content

Upgrade IntelliJ Platform from 2023.2.7 to 2024.2.5#39

Open
iml885203 wants to merge 13 commits intomainfrom
claude/review-pr-upgrades-011CUNTsqagpJQCV3hznjd8f
Open

Upgrade IntelliJ Platform from 2023.2.7 to 2024.2.5#39
iml885203 wants to merge 13 commits intomainfrom
claude/review-pr-upgrades-011CUNTsqagpJQCV3hznjd8f

Conversation

@iml885203
Copy link
Owner

  • Updated platformVersion to 2024.2.5 for better IDE compatibility
  • Maintained backward compatibility (pluginSinceBuild: 232)
  • Updated CHANGELOG.md to track this upgrade

This upgrade will be validated through GitHub Actions CI/CD pipeline:

  • Build verification (buildPlugin)
  • Plugin structure validation (verifyPlugin)
  • Multi-version compatibility testing (runPluginVerifier)
  • Code quality checks (Qodana)

🤖 Generated with Claude Code

claude added 10 commits October 22, 2025 15:52
- Updated platformVersion to 2024.2.5 for better IDE compatibility
- Maintained backward compatibility (pluginSinceBuild: 232)
- Updated CHANGELOG.md to track this upgrade

This upgrade will be validated through GitHub Actions CI/CD pipeline:
- Build verification (buildPlugin)
- Plugin structure validation (verifyPlugin)
- Multi-version compatibility testing (runPluginVerifier)
- Code quality checks (Qodana)

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit includes a complete migration to support IntelliJ Platform 2024.2+:

## Plugin Migration
- Upgraded from Gradle IntelliJ Plugin 1.17.4 to IntelliJ Platform Gradle Plugin 2.1.0
- Changed plugin ID from org.jetbrains.intellij to org.jetbrains.intellij.platform
- Updated settings.gradle.kts to include IntelliJ Platform settings plugin
- Restructured build.gradle.kts to use new 2.x DSL and configuration blocks

## Build Configuration
- Updated pluginSinceBuild from 232 to 242 (IntelliJ 2024.2+)
- Maintained platformVersion at 2024.2.5
- Migrated from intellij {} to intellijPlatform {} configuration block
- Added intellijPlatform repository and dependency extensions
- Updated plugin verification to use recommended() IDE versions

## API Compatibility Fixes
- Fixed Git4Idea API changes in GitCommander.kt:
  - Changed addParameters() to addParameter() (singular)
  - Replaced throwOnError() with manual success() check and error handling
  - Updated error output retrieval to use errorOutputAsJoinedString
- Removed unused import in MyNotifier.kt

## Breaking Changes
- Minimum supported IDE version: IntelliJ 2024.2 (build 242)
- Previous versions (2023.x) are no longer supported due to Plugin 2.x requirements

Related: #39

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The org.jetbrains.intellij.platform.settings plugin in settings.gradle.kts
was conflicting with the main plugin declaration in build.gradle.kts.
Removed the settings plugin as it's optional for this configuration.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Changes:
- Removed listProductsReleases task (no longer exists in 2.x)
- Updated Plugin Verifier cache key to use gradle.properties and build.gradle.kts
- Plugin Verifier now uses recommended() IDE versions automatically

In Plugin 2.x, the pluginVerification { ides { recommended() } } configuration
handles IDE selection automatically, so manual task execution is not needed.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
This commit fixes all remaining API compatibility issues and requirements:

## Git4Idea API Fixes
- Use repository.getRoot() instead of repository.root (internal API)
- Use handler.addParameters(*params) with vararg spread operator
- Use result.getOutput() instead of result.output
- Use result.success() and result.errorOutputAsJoinedString for error handling

## Java Version Upgrade
- Upgraded from Java 17 to Java 21 (required by IntelliJ 2024.2.5)
- Updated kotlin jvmToolchain from 17 to 21
- Updated all GitHub Actions workflows to use Java 21:
  - build.yml
  - release.yml
  - run-ui-tests.yml

## Project Configuration
- Added .intellijPlatform to .gitignore (cache directory)

These changes ensure full compatibility with IntelliJ Platform 2024.2.5.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Git4Idea plugin depends on the VCS (Version Control System) and DVCS
(Distributed Version Control System) modules. In IntelliJ Platform Gradle
Plugin 2.x, these must be explicitly declared as bundled modules.

This fixes the compilation error:
'Cannot access com.intellij.dvcs.repo.Repository which is a supertype
of git4idea.repo.GitRepository'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
In IntelliJ Platform 2024.2+, VCS modules were extracted with new names:
- intellij.vcs → intellij.platform.vcs.dvcs
- intellij.dvcs → intellij.platform.vcs.impl

These modules were separated from the core plugin to have their own
classloaders, requiring explicit dependency declarations.

This fixes the error:
'Specified bundledModule intellij.vcs doesn't exist'

References:
- https://plugins.jetbrains.com/docs/intellij/api-changes-list-2025.html

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
…encies

Git4Idea bundled plugin should automatically include its transitive dependencies
in IntelliJ Platform Gradle Plugin 2.x without explicit bundledModule declarations.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
The DVCS-related classes (com.intellij.dvcs.repo.Repository) required by
Git4Idea are part of the VCS module. Explicitly declare this dependency
to ensure proper classpath resolution during compilation.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
… dependency resolution

Version 2.1.0 has a known bug where Git4Idea's transitive DVCS dependencies
are not included in the compilation classpath, causing "Cannot access
'com.intellij.dvcs.repo.Repository'" errors. This was fixed in 2.2.0+.

References:
- Issue #483 in intellij-platform-plugin-template
- YouTrack MP-7019

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
@github-actions
Copy link

github-actions bot commented Oct 25, 2025

Qodana Community for JVM

8 new problems were found

Inspection name Severity Problems
Unused import directive 🔶 Warning 5
Accessor call that can be replaced with property access syntax ◽️ Notice 3

💡 Qodana analysis was run in the pull request mode: only the changed files were checked

View the detailed Qodana report

To be able to view the detailed Qodana report, you can either:

To get *.log files or any other Qodana artifacts, run the action with upload-result option set to true,
so that the action will upload the files as the job artifacts:

      - name: 'Qodana Scan'
        uses: JetBrains/qodana-action@v2024.1.9
        with:
          upload-result: true
Contact Qodana team

Contact us at qodana-support@jetbrains.com

Changes:
- Update workflow to use 'verifyPlugin' task (2.x) instead of 'runPluginVerifier' (1.x)
- Remove deprecated instrumentationTools() call from build configuration

In Plugin 2.x, the task name changed from 'runPluginVerifier' to 'verifyPlugin'.
The instrumentationTools() method is no longer necessary and deprecated.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Remove the 'name' override in pluginConfiguration that was setting the
plugin name to 'intellij-git-merge-into' (which includes 'IntelliJ').
Now uses the correct name from plugin.xml: 'Git Merge Into'.

Plugin Verifier error:
"The plugin name 'intellij-git-merge-into' should not include the word 'IntelliJ'."

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Prepare for release with comprehensive changelog documenting the major
platform upgrade from 2023.2 to 2024.2, including all dependency updates
and API compatibility changes.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants