From 34b44a07cb91afef315d8b80f79fd0fa57502f20 Mon Sep 17 00:00:00 2001 From: kateliu20 Date: Wed, 2 Oct 2024 15:42:23 -0400 Subject: [PATCH 1/8] Declare K2 compatibility --- build.gradle.kts | 2 +- .../intellij/skate/src/main/resources/META-INF/plugin.xml | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 8d53ede3..017be23b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -336,7 +336,7 @@ subprojects { } } project.dependencies { - configure { intellijIdeaCommunity("2024.1.2") } + configure { intellijIdeaCommunity("2024.2.3") } } if (hasProperty("SgpIntellijArtifactoryBaseUrl")) { diff --git a/platforms/intellij/skate/src/main/resources/META-INF/plugin.xml b/platforms/intellij/skate/src/main/resources/META-INF/plugin.xml index 2f64079c..a79cf995 100644 --- a/platforms/intellij/skate/src/main/resources/META-INF/plugin.xml +++ b/platforms/intellij/skate/src/main/resources/META-INF/plugin.xml @@ -26,6 +26,10 @@ canCloseContents="true" secondary="false" icon="AllIcons.Actions.Lightning"/> + + + + Date: Wed, 2 Oct 2024 16:05:38 -0400 Subject: [PATCH 2/8] Update target version to 242 --- platforms/intellij/skate/gradle.properties | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/platforms/intellij/skate/gradle.properties b/platforms/intellij/skate/gradle.properties index 7287ba40..4a5015ff 100644 --- a/platforms/intellij/skate/gradle.properties +++ b/platforms/intellij/skate/gradle.properties @@ -3,7 +3,7 @@ PLUGIN_ID=com.slack.intellij.skate PLUGIN_NAME=Skate PLUGIN_DESCRIPTION=A plugin for IntelliJ and Android Studio for faster Kotlin and Android development! VERSION_NAME=0.1.0 -PLUGIN_SINCE_BUILD=241 +PLUGIN_SINCE_BUILD=242 ARTIFACTORY_URL_SUFFIX=skate # Opt-out flag for bundling Kotlin standard library. # See https://plugins.jetbrains.com/docs/intellij/using-kotlin.html#kotlin-standard-library From 0f7c0a128e445994a7b93e3f08d90885bd138f9b Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Wed, 2 Oct 2024 16:55:10 -0400 Subject: [PATCH 3/8] Update remaining dependencies --- build.gradle.kts | 15 +++------------ gradle/libs.versions.toml | 4 ++-- .../artifactory-authenticator/gradle.properties | 2 +- platforms/intellij/skate/build.gradle.kts | 2 +- 4 files changed, 7 insertions(+), 16 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 017be23b..13a56508 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -208,19 +208,10 @@ subprojects { this.jvmTarget.set(jvmTargetVersion) freeCompilerArgs.addAll( // Enhance not null annotated type parameter's types to definitely not null types - // (@NotNull T - // => T & Any) + // (@NotNull T => T & Any) "-Xenhance-type-parameter-types-to-def-not-null", - // Use fast implementation on Jar FS. This may speed up compilation time, but currently - // it's - // an experimental mode - // TODO toe-hold but we can't use it yet because it emits a warning that fails with - // -Werror - // https://youtrack.jetbrains.com/issue/KT-54928 - // "-Xuse-fast-jar-file-system", // Support inferring type arguments based on only self upper bounds of the corresponding - // type - // parameters + // type parameters "-Xself-upper-bound-inference", "-Xjsr305=strict", // Match JVM assertion behavior: @@ -336,7 +327,7 @@ subprojects { } } project.dependencies { - configure { intellijIdeaCommunity("2024.2.3") } + configure { intellijIdeaCommunity("2024.2.1") } } if (hasProperty("SgpIntellijArtifactoryBaseUrl")) { diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 3a526a71..6e609e00 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -113,8 +113,8 @@ kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" } kotlinShell = "eu.jrie.jetbrains:kotlin-shell-core:0.2.1" ktfmt = { module = "com.facebook:ktfmt", version.ref = "ktfmt" } -jewel-bridge = { module = "org.jetbrains.jewel:jewel-ide-laf-bridge-241", version.ref = "jewel" } -jewel-standalone = { module = "org.jetbrains.jewel:jewel-int-ui-standalone-241", version.ref = "jewel" } +jewel-bridge = { module = "org.jetbrains.jewel:jewel-ide-laf-bridge-242", version.ref = "jewel" } +jewel-standalone = { module = "org.jetbrains.jewel:jewel-int-ui-standalone-242", version.ref = "jewel" } jgrapht = "org.jgrapht:jgrapht-core:1.5.2" jna = { module = "net.java.dev.jna:jna", version.ref = "jna" } jna-platform = { module = "net.java.dev.jna:jna-platform", version.ref = "jna" } diff --git a/platforms/intellij/artifactory-authenticator/gradle.properties b/platforms/intellij/artifactory-authenticator/gradle.properties index 1a06b669..ccaefd84 100644 --- a/platforms/intellij/artifactory-authenticator/gradle.properties +++ b/platforms/intellij/artifactory-authenticator/gradle.properties @@ -3,7 +3,7 @@ PLUGIN_ID=com.slack.intellij.artifactory PLUGIN_NAME=Artifactory Authenticator PLUGIN_DESCRIPTION=A plugin for authenticating plugin repositories with Artifactory. VERSION_NAME=0.1.1 -PLUGIN_SINCE_BUILD=241 +PLUGIN_SINCE_BUILD=242 ARTIFACTORY_URL_SUFFIX=artifactory-authenticator # Opt-out flag for bundling Kotlin standard library. # See https://plugins.jetbrains.com/docs/intellij/using-kotlin.html#kotlin-standard-library diff --git a/platforms/intellij/skate/build.gradle.kts b/platforms/intellij/skate/build.gradle.kts index fd0381d9..f98747a7 100644 --- a/platforms/intellij/skate/build.gradle.kts +++ b/platforms/intellij/skate/build.gradle.kts @@ -126,7 +126,7 @@ dependencies { // https://plugins.jetbrains.com/docs/intellij/android-studio.html#open-source-plugins-for-android-studio // https://plugins.jetbrains.com/docs/intellij/android-studio-releases-list.html // https://plugins.jetbrains.com/plugin/22989-android/versions/stable - plugin("org.jetbrains.android:241.17011.79") + plugin("org.jetbrains.android:242.21829.142") bundledPlugins( "com.intellij.java", "org.intellij.plugins.markdown", From f6aac7d786bce938b8d2fca873e21b4f24aa7b3e Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 3 Oct 2024 14:48:34 -0400 Subject: [PATCH 4/8] Test IDE in CI too --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1a8fcbf6..487dc4fa 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -40,7 +40,7 @@ jobs: - name: Build and run tests id: gradle - run: ./gradlew check + run: ./gradlew check testIdeUi - name: Print build scan url if: always() From 5c69d4220e59be68677b074875f3456a4b8b349d Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 3 Oct 2024 14:48:50 -0400 Subject: [PATCH 5/8] Add boms --- build.gradle.kts | 12 +++++++++++- gradle/libs.versions.toml | 7 ++++++- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 13a56508..e4d3c057 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -58,6 +58,16 @@ plugins { alias(libs.plugins.binaryCompatibilityValidator) } +buildscript { + dependencies { + // Apply boms for buildscript classpath + classpath(platform(libs.asm.bom)) + classpath(platform(libs.kotlin.bom)) + classpath(platform(libs.coroutines.bom)) + classpath(platform(libs.kotlin.gradlePlugins.bom)) + } +} + apiValidation { // only :tools:cli is tracking this right now // Annoyingly this only uses simple names @@ -156,7 +166,7 @@ subprojects { } } - tasks.withType().configureEach { options.release.set(17) } + tasks.withType().configureEach { options.release.set(libs.versions.jvmTarget.map(String::toInt)) } } val isForIntelliJPlugin = diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 6e609e00..1024d86e 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -2,6 +2,8 @@ agp = "8.6.1" agpAlpha = "8.6.1" anvil = "2.5.0-beta11" +# Release notes: https://asm.ow2.io/versions.html +asm = "9.7" bugsnagGradle = "8.1.0" circuit = "0.23.1" compose-jb = "1.7.0-rc01" @@ -13,7 +15,8 @@ dokka = "1.9.20" errorproneGradle = "3.1.0" gradle-retry = "1.6.0" intellij-platform = "2.1.0" -jdk = "22" +# Temporary until TODO link +jdk = "21" jvmTarget = "17" jewel = "0.25.0" jna = "5.15.0" @@ -69,6 +72,7 @@ wire = { id = "com.squareup.wire", version.ref = "wire" } [libraries] agp = { module = "com.android.tools.build:gradle", version.ref = "agp" } agpAlpha = { module = "com.android.tools.build:gradle", version.ref = "agpAlpha" } +asm-bom = { module = "org.ow2.asm:asm-bom", version.ref = "asm" } autoService-annotations = "com.google.auto.service:auto-service-annotations:1.1.1" autoService-ksp = "dev.zacsweers.autoservice:auto-service-ksp:1.2.0" bugsnag = "com.bugsnag:bugsnag:3.7.2" @@ -108,6 +112,7 @@ gradlePlugins-wire = { module = "com.squareup.wire:wire-gradle-plugin", version. guava = "com.google.guava:guava:33.3.1-jre" kaml = { module = "com.charleskorn.kaml:kaml", version.ref = "kaml" } kotlin-bom = { module = "org.jetbrains.kotlin:kotlin-bom", version.ref = "kotlin" } +kotlin-gradlePlugins-bom = { module = "org.jetbrains.kotlin:kotlin-gradle-plugins-bom", version.ref = "kotlin" } kotlin-poet = { module = "com.squareup:kotlinpoet", version.ref = "kotlinPoet" } kotlin-reflect = { module = "org.jetbrains.kotlin:kotlin-reflect", version.ref = "kotlin" } kotlinx-serialization-core = { module = "org.jetbrains.kotlinx:kotlinx-serialization-core", version.ref = "kotlinx-serialization" } From 874a4b005c3ca2881c70bcbd258b5643d90a80c3 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 3 Oct 2024 14:48:59 -0400 Subject: [PATCH 6/8] Update deprecated API --- .../intellij/skate/modeltranslator/helper/TranslatorHelper.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/platforms/intellij/skate/src/main/kotlin/foundry/intellij/skate/modeltranslator/helper/TranslatorHelper.kt b/platforms/intellij/skate/src/main/kotlin/foundry/intellij/skate/modeltranslator/helper/TranslatorHelper.kt index 9b86f476..0473cbde 100644 --- a/platforms/intellij/skate/src/main/kotlin/foundry/intellij/skate/modeltranslator/helper/TranslatorHelper.kt +++ b/platforms/intellij/skate/src/main/kotlin/foundry/intellij/skate/modeltranslator/helper/TranslatorHelper.kt @@ -28,7 +28,7 @@ import com.intellij.psi.search.GlobalSearchScope import foundry.intellij.skate.SkatePluginSettings import foundry.intellij.skate.modeltranslator.model.TranslatorBundle import foundry.intellij.skate.util.snakeToCamelCase -import org.jetbrains.kotlin.idea.quickfix.createFromUsage.callableBuilder.getReturnTypeReference +import org.jetbrains.kotlin.idea.base.psi.getReturnTypeReferences import org.jetbrains.kotlin.psi.KtBlockExpression import org.jetbrains.kotlin.psi.KtConstructorCalleeExpression import org.jetbrains.kotlin.psi.KtImportDirective @@ -94,7 +94,7 @@ object TranslatorHelper { // If the function doesn't have a return type, then it can't be a translator and no need to // process it. - val destinationModelRef = element.getReturnTypeReference() + val destinationModelRef = element.getReturnTypeReferences().firstOrNull() val destinationModel = destinationModelRef?.text ?: return null // If the source model is a String and the destination isn't an enum, From cf6978c512cc3adf626ac264721ce0ba2308eaaf Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 3 Oct 2024 14:49:14 -0400 Subject: [PATCH 7/8] Enforce junit4 --- .../foundry/intellij/skate/SkateTraceReporterTest.kt | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platforms/intellij/skate/src/test/kotlin/foundry/intellij/skate/SkateTraceReporterTest.kt b/platforms/intellij/skate/src/test/kotlin/foundry/intellij/skate/SkateTraceReporterTest.kt index a0525441..b86a84e7 100644 --- a/platforms/intellij/skate/src/test/kotlin/foundry/intellij/skate/SkateTraceReporterTest.kt +++ b/platforms/intellij/skate/src/test/kotlin/foundry/intellij/skate/SkateTraceReporterTest.kt @@ -26,7 +26,11 @@ import foundry.tracing.ValueType import foundry.tracing.model.newTagBuilder import java.time.Instant import okio.ByteString +import org.junit.Test +import org.junit.runner.RunWith +import org.junit.runners.JUnit4 +@RunWith(JUnit4::class) class SkateTraceReporterTest : BasePlatformTestCase() { override fun setUp() { @@ -35,6 +39,7 @@ class SkateTraceReporterTest : BasePlatformTestCase() { settings.isTracingEnabled = false } + @Test fun testSpanCreatedWithCorrectTags() { val traceTags = newTagBuilder().apply { @@ -77,6 +82,7 @@ class SkateTraceReporterTest : BasePlatformTestCase() { } } + @Test fun testSpanNotCreatedWhenSpanDataIsEmpty() { val listOfSpans = SkateTraceReporter(project) @@ -92,6 +98,7 @@ class SkateTraceReporterTest : BasePlatformTestCase() { assertThat(listOfSpans).isNull() } + @Test fun testSpanNotCreatedWhenIdeVersionEmpty() { val listOfSpans = SkateTraceReporter(project) From d370dc35299cfcc8bf66f4a24a72ad8f009f55b5 Mon Sep 17 00:00:00 2001 From: Zac Sweers Date: Thu, 3 Oct 2024 14:55:27 -0400 Subject: [PATCH 8/8] Update link --- gradle/libs.versions.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 1024d86e..bd960587 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -15,7 +15,7 @@ dokka = "1.9.20" errorproneGradle = "3.1.0" gradle-retry = "1.6.0" intellij-platform = "2.1.0" -# Temporary until TODO link +# Temporary until https://bugs.openjdk.org/browse/JDK-8331027 is fixed in 23 jdk = "21" jvmTarget = "17" jewel = "0.25.0"