|
| 1 | +# Issue: Adding 2025.3 Support to AWS Toolkit for JetBrains |
| 2 | + |
| 3 | +## Problem Summary |
| 4 | +Unable to resolve IntelliJ Platform dependencies when adding 2025.3 EAP support to the AWS Toolkit. Build fails with "No IntelliJ Platform dependency found" errors. |
| 5 | + |
| 6 | +## Background |
| 7 | +- **Goal**: Add JetBrains 2025.3 EAP support to AWS Toolkit |
| 8 | +- **Branch**: `add-2025-3-support` |
| 9 | +- **Key Change**: JetBrains discontinued IC (Community Edition) for 2025.3, moved to unified platform |
| 10 | + |
| 11 | +## Error Evolution |
| 12 | +1. **Initial**: `No IntelliJ Platform dependency found with 'IC-2025.3 (non-installer)'` |
| 13 | +2. **After IdeFlavor changes**: `No IntelliJ Platform dependency found with 'IU-2025.3 (non-installer)'` |
| 14 | +3. **After EAP format**: `No IntelliJ Platform dependency found with 'IU-2025.3-EAP-SNAPSHOT (non-installer)'` |
| 15 | +4. **Current**: `No IntelliJ Platform dependency found with 'IU-253.25908.13 (non-installer)'` |
| 16 | + |
| 17 | +## What We've Tried |
| 18 | + |
| 19 | +### 1. SDK Version Formats |
| 20 | +- ✅ `"2025.3"` → ❌ Doesn't exist for IC |
| 21 | +- ✅ `"253.25908.29"` → ❌ Complex build number approach |
| 22 | +- ✅ `"2025.3-EAP-SNAPSHOT"` → ❌ EAP snapshot format |
| 23 | +- ✅ `"253.25908.13"` → ❌ Specific IU build number |
| 24 | + |
| 25 | +### 2. IdeFlavor Changes |
| 26 | +- ✅ Changed all `IdeFlavor.IC` → `IdeFlavor.IU` in: |
| 27 | + - `plugins/core/jetbrains-community/build.gradle.kts` |
| 28 | + - `plugins/amazonq/*/jetbrains-community/build.gradle.kts` (4 modules) |
| 29 | + - `plugins/toolkit/jetbrains-core/build.gradle.kts` |
| 30 | + - `buildSrc/src/main/kotlin/toolkit-intellij-plugin.gradle.kts` (default fallback) |
| 31 | + |
| 32 | +### 3. Verification Steps |
| 33 | +- ✅ Confirmed `253.25908.13` exists in JetBrains EAP releases for IU |
| 34 | +- ✅ Updated marketplace plugin versions to matching build numbers |
| 35 | +- ✅ Rider kept as `2025.3-SNAPSHOT` (works fine) |
| 36 | + |
| 37 | +## Senior Engineer Feedback ✅ |
| 38 | + |
| 39 | +### 1. SDK Version Solution |
| 40 | +**Correct format**: `253.25908-EAP-CANDIDATE-SNAPSHOT` |
| 41 | +- **Source**: https://www.jetbrains.com/intellij-repository/snapshots |
| 42 | +- **Issue**: We were using `253.25908.13` instead of the snapshot format |
| 43 | + |
| 44 | +### 2. IdeFlavor Strategy |
| 45 | +**Need version-conditional logic**: |
| 46 | +```kotlin |
| 47 | +// For community builds, use version-based logic: |
| 48 | +when (version) { |
| 49 | + older_versions -> IdeFlavor.IC // Keep IC for older versions |
| 50 | + "2025.3"+ -> IdeFlavor.IU // Use IU for 2025.3+ |
| 51 | +} |
| 52 | +``` |
| 53 | + |
| 54 | +### 3. Platform Coordinates (Advanced) |
| 55 | +**Alternative approach using Maven coordinates**: |
| 56 | +```kotlin |
| 57 | +// Instead of IdeFlavor, could use direct coordinates: |
| 58 | +IntellijIdeaUltimate( |
| 59 | + code = "IU", |
| 60 | + maven = Coordinates("com.jetbrains.intellij.idea", "ideaIU"), |
| 61 | + installer = Coordinates("idea", "ideaIU"), |
| 62 | +), |
| 63 | +IntellijIdea( |
| 64 | + code = "IU", |
| 65 | + maven = Coordinates("com.jetbrains.intellij.idea", "idea"), |
| 66 | + installer = Coordinates("idea", "idea"), |
| 67 | +) |
| 68 | +``` |
| 69 | +**Translation**: This bypasses IdeFlavor and directly specifies Maven artifact coordinates |
| 70 | + |
| 71 | +## Updated Configuration Needed |
| 72 | +```kotlin |
| 73 | +// IdeVersions.kt - CORRECTED |
| 74 | +Profile( |
| 75 | + name = "2025.3", |
| 76 | + gateway = ProductProfile(sdkVersion = "253.25908-EAP-CANDIDATE-SNAPSHOT", ...), |
| 77 | + community = ProductProfile(sdkVersion = "253.25908-EAP-CANDIDATE-SNAPSHOT", ...), |
| 78 | + ultimate = ProductProfile(sdkVersion = "253.25908-EAP-CANDIDATE-SNAPSHOT", ...), |
| 79 | + rider = RiderProfile(sdkVersion = "2025.3-SNAPSHOT", ...) |
| 80 | +) |
| 81 | + |
| 82 | +// Version-conditional IdeFlavor logic needed: |
| 83 | +intellijToolkit { |
| 84 | + ideFlavor.set( |
| 85 | + if (version >= "2025.3") IdeFlavor.IU |
| 86 | + else IdeFlavor.IC |
| 87 | + ) |
| 88 | +} |
| 89 | +``` |
| 90 | + |
| 91 | +## Remaining Questions |
| 92 | + |
| 93 | +1. **Version Detection**: How to detect current IDE version in build script for conditional logic? |
| 94 | +2. **Maven Coordinates**: Should we implement the direct coordinates approach instead of IdeFlavor? |
| 95 | +3. **Backward Compatibility**: How to ensure older versions (2024.x) still work with IC? |
| 96 | + |
| 97 | +## Repository State |
| 98 | +- **Fork**: `https://github.com/aseemxs/aws-toolkit-jetbrains.git` |
| 99 | +- **Branch**: `add-2025-3-support` |
| 100 | +- **Commits**: 7 commits attempting various fixes |
| 101 | +- **Status**: All changes pushed, ready for review |
| 102 | + |
| 103 | +## References |
| 104 | +- [JetBrains Platform Gradle Plugin Docs](https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html) |
| 105 | +- [IntelliJ Platform Gradle Plugin 2.0 Blog](https://blog.jetbrains.com/platform/2024/07/intellij-platform-gradle-plugin-2-0/) |
| 106 | +- [IC Deprecation Discussion](https://platform.jetbrains.com/t/intellij-platform-gradle-plugins-intellijideacommunity-deprecation/2709) |
| 107 | + |
| 108 | +## Next Steps Needed |
| 109 | +Senior engineer guidance on: |
| 110 | +1. Correct dependency resolution approach for 2025.3 EAP |
| 111 | +2. Whether our IdeFlavor mapping strategy is correct |
| 112 | +3. Any missing configuration or repository setup |
0 commit comments