Upgrade IntelliJ Platform from 2023.2.7 to 2024.2.5#39
Open
Upgrade IntelliJ Platform from 2023.2.7 to 2024.2.5#39
Conversation
- 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>
Qodana Community for JVM8 new problems were found
💡 Qodana analysis was run in the pull request mode: only the changed files were checked View the detailed Qodana reportTo be able to view the detailed Qodana report, you can either:
To get - name: 'Qodana Scan'
uses: JetBrains/qodana-action@v2024.1.9
with:
upload-result: trueContact Qodana teamContact 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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This upgrade will be validated through GitHub Actions CI/CD pipeline:
🤖 Generated with Claude Code