From 758929f6def6f3c2806c0ee2f4b9c64e411dd1b2 Mon Sep 17 00:00:00 2001 From: Sebastiano Poggi Date: Sat, 14 Sep 2024 12:28:53 -0700 Subject: [PATCH 1/3] Upgrade CMP IJ Plugin dependencies & setup: 1. Migrate to IJP Gradle plugin 2.x 2. Upgrade Gradle to 8.10 3. Bump IJ target to 2024.2.1 4. Clean up after migration --- idea-plugin/build.gradle.kts | 71 ++++++++----------- idea-plugin/gradle.properties | 7 -- idea-plugin/gradle/libs.versions.toml | 11 +-- .../gradle/wrapper/gradle-wrapper.properties | 2 +- 4 files changed, 38 insertions(+), 53 deletions(-) diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts index c5af9c2befa..8ba750c3d8b 100644 --- a/idea-plugin/build.gradle.kts +++ b/idea-plugin/build.gradle.kts @@ -1,44 +1,47 @@ +import org.jetbrains.kotlin.gradle.dsl.JvmTarget import org.jetbrains.kotlin.gradle.tasks.KotlinJvmCompile plugins { id("java") alias(libs.plugins.kotlin.jvm) - alias(libs.plugins.intellij.sdk) + alias(libs.plugins.intellij.plugin) alias(libs.plugins.intellij.changelog) } val projectProperties = ProjectProperties(project) group = "org.jetbrains.compose.desktop.ide" + version = projectProperties.deployVersion repositories { mavenCentral() + + intellijPlatform { defaultRepositories() } } dependencies { implementation("org.jetbrains.compose:preview-rpc") -} -intellij { - pluginName.set("Compose Multiplatform IDE Support") - type.set(projectProperties.platformType) - version.set(projectProperties.platformVersion) - downloadSources.set(projectProperties.platformDownloadSources) - updateSinceUntilBuild.set(false) - - plugins.set( - listOf( - "java", - "com.intellij.gradle", - "org.jetbrains.kotlin" - ) - ) + intellijPlatform { + intellijIdeaCommunity(libs.versions.idea) + instrumentationTools() + + bundledPlugins("com.intellij.java", "org.jetbrains.kotlin", "com.intellij.gradle") + } } -tasks.buildSearchableOptions { - // temporary workaround - enabled = false +intellijPlatform { + pluginConfiguration { name = "Compose Multiplatform IDE Support" } + buildSearchableOptions = false + autoReload = false + + publishing { + token = System.getenv("IDE_PLUGIN_PUBLISH_TOKEN") + channels = projectProperties.pluginChannels + } + + pluginVerification { ides { recommended() } } } tasks { @@ -47,30 +50,18 @@ tasks { sourceCompatibility = "11" targetCompatibility = "11" } - withType { - kotlinOptions.jvmTarget = "11" - } - - publishPlugin { - token.set(System.getenv("IDE_PLUGIN_PUBLISH_TOKEN")) - channels.set(projectProperties.pluginChannels) - } - - runPluginVerifier { - ideVersions.set(projectProperties.pluginVerifierIdeVersions) - } + withType { compilerOptions.jvmTarget.set(JvmTarget.JVM_11) } } class ProjectProperties(private val project: Project) { - val deployVersion get() = stringProperty("deploy.version") - val platformType get() = stringProperty("platform.type") - val platformVersion get() = stringProperty("platform.version") - val platformDownloadSources get() = stringProperty("platform.download.sources").toBoolean() - val pluginChannels get() = listProperty("plugin.channels") - val pluginVerifierIdeVersions get() = listProperty("plugin.verifier.ide.versions") - - private fun stringProperty(key: String): String = - project.findProperty(key)!!.toString() + val deployVersion + get() = stringProperty("deploy.version") + + val pluginChannels + get() = listProperty("plugin.channels") + + private fun stringProperty(key: String): String = project.findProperty(key)!!.toString() + private fun listProperty(key: String): List = stringProperty(key).split(",").map { it.trim() } } diff --git a/idea-plugin/gradle.properties b/idea-plugin/gradle.properties index 0ee97128d87..e9c53859439 100644 --- a/idea-plugin/gradle.properties +++ b/idea-plugin/gradle.properties @@ -5,10 +5,3 @@ kotlin.stdlib.default.dependency=false deploy.version=0.1-SNAPSHOT plugin.channels=snapshots -# Intellij since-build should be updated directly in src/main/resources/META-INF/plugin.xml -# See https://jb.gg/intellij-platform-builds-list for available build versions. -plugin.verifier.ide.versions=2022.1, 2022.2, 2022.3 - -platform.type=IC -platform.version=2022.1.1 -platform.download.sources=true diff --git a/idea-plugin/gradle/libs.versions.toml b/idea-plugin/gradle/libs.versions.toml index cb3034a5a84..4d2dcd2768c 100644 --- a/idea-plugin/gradle/libs.versions.toml +++ b/idea-plugin/gradle/libs.versions.toml @@ -1,9 +1,10 @@ [versions] -kotlin = "1.9.0" - -[libraries] +kotlin = "1.9.23" +ideaPlugin = "2.0.1" +idea = "2024.2.1" +changelog = "2.2.0" [plugins] kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin" } -intellij-sdk = "org.jetbrains.intellij:1.15.0" -intellij-changelog = "org.jetbrains.changelog:2.2.0" +intellij-plugin = { id = "org.jetbrains.intellij.platform", version.ref = "ideaPlugin" } +intellij-changelog = { id = "org.jetbrains.changelog", version.ref = "changelog" } diff --git a/idea-plugin/gradle/wrapper/gradle-wrapper.properties b/idea-plugin/gradle/wrapper/gradle-wrapper.properties index db9a6b825d7..9a0a0e28c95 100644 --- a/idea-plugin/gradle/wrapper/gradle-wrapper.properties +++ b/idea-plugin/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists From 2e347acb0708ff7f117ef2e4807ddfcc97c03db8 Mon Sep 17 00:00:00 2001 From: Sebastiano Poggi Date: Sat, 14 Sep 2024 14:22:59 -0700 Subject: [PATCH 2/3] Explicitly declare since..until IJP versions --- idea-plugin/build.gradle.kts | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts index 8ba750c3d8b..7ec91df472a 100644 --- a/idea-plugin/build.gradle.kts +++ b/idea-plugin/build.gradle.kts @@ -32,7 +32,13 @@ dependencies { } intellijPlatform { - pluginConfiguration { name = "Compose Multiplatform IDE Support" } + pluginConfiguration { + name = "Compose Multiplatform IDE Support" + ideaVersion { + sinceBuild = "231.*" + untilBuild = "243.*" + } + } buildSearchableOptions = false autoReload = false From cf8b7463e6c6167adbdc1b2ca732860314d7b98c Mon Sep 17 00:00:00 2001 From: Victor Kropp Date: Wed, 6 Nov 2024 11:43:47 +0100 Subject: [PATCH 3/3] update versions --- idea-plugin/build.gradle.kts | 7 +++---- idea-plugin/gradle/libs.versions.toml | 2 +- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/idea-plugin/build.gradle.kts b/idea-plugin/build.gradle.kts index 7ec91df472a..015802688a9 100644 --- a/idea-plugin/build.gradle.kts +++ b/idea-plugin/build.gradle.kts @@ -51,12 +51,11 @@ intellijPlatform { } tasks { - // Set the compatibility versions to 1.8 withType { - sourceCompatibility = "11" - targetCompatibility = "11" + sourceCompatibility = "21" + targetCompatibility = "21" } - withType { compilerOptions.jvmTarget.set(JvmTarget.JVM_11) } + withType { compilerOptions.jvmTarget.set(JvmTarget.JVM_21) } } class ProjectProperties(private val project: Project) { diff --git a/idea-plugin/gradle/libs.versions.toml b/idea-plugin/gradle/libs.versions.toml index 4d2dcd2768c..b4f88efcb38 100644 --- a/idea-plugin/gradle/libs.versions.toml +++ b/idea-plugin/gradle/libs.versions.toml @@ -1,6 +1,6 @@ [versions] kotlin = "1.9.23" -ideaPlugin = "2.0.1" +ideaPlugin = "2.1.0" idea = "2024.2.1" changelog = "2.2.0"