From f61a4d14207b088b0fce54a4c6922162dd158c6b Mon Sep 17 00:00:00 2001 From: Alexander Sysoev Date: Mon, 17 Jun 2024 22:24:21 +0200 Subject: [PATCH] Fixed build for all kotlin versions --- gradle-conventions/build.gradle.kts | 17 +++++---- .../conventions-utils/build.gradle.kts | 30 ++++++++++++++++ .../src/main/kotlin/util/JsTarget.kt | 10 +++--- .../src/main/kotlin/util/KotlinExtension.kt | 2 +- .../main/kotlin/util/OptInForInternalApi.kt | 2 +- .../src/main/kotlin/util/OptionalProperty.kt | 0 .../src/main/kotlin/util/PublicationUtils.kt | 0 .../src/main/kotlin/util/TargetUtils.kt | 0 .../kotlin/util/VersionCatalogForPlugins.kt | 0 .../src/main/kotlin/util/metaTask.kt | 0 .../gradle-publish-stub/build.gradle.kts | 2 +- .../kotlin-version-new/build.gradle.kts | 36 +++++++++++++++++++ .../conventions-kotlin-version-jvm.gradle.kts | 10 ++++++ .../conventions-kotlin-version-kmp.gradle.kts | 12 +++++++ .../src/main/kotlin/util/CompilerOptions.kt} | 0 .../kotlin-version-old/build.gradle.kts | 36 +++++++++++++++++++ .../conventions-kotlin-version-jvm.gradle.kts | 7 ++++ .../conventions-kotlin-version-kmp.gradle.kts | 7 ++++ .../src/main/kotlin/util/CompilerOptions.kt | 18 ++++++++++ .../kotlin => }/kover-root-project.gradle.kts | 0 gradle-conventions/settings.gradle.kts | 8 +++++ .../main/kotlin/conventions-common.gradle.kts | 3 ++ .../main/kotlin/conventions-jvm.gradle.kts | 4 +-- .../main/kotlin/conventions-kmp.gradle.kts | 6 +--- gradle.properties | 3 ++ gradle/kotlin-versions-lookup.csv | 36 +++++++++---------- gradle/libs.versions.toml | 26 ++++++++------ 27 files changed, 223 insertions(+), 52 deletions(-) create mode 100644 gradle-conventions/conventions-utils/build.gradle.kts rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/JsTarget.kt (83%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/KotlinExtension.kt (79%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/OptInForInternalApi.kt (87%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/OptionalProperty.kt (100%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/PublicationUtils.kt (100%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/TargetUtils.kt (100%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/VersionCatalogForPlugins.kt (100%) rename gradle-conventions/{ => conventions-utils}/src/main/kotlin/util/metaTask.kt (100%) create mode 100644 gradle-conventions/kotlin-version-new/build.gradle.kts create mode 100644 gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts create mode 100644 gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts rename gradle-conventions/{src/main/kotlin/util/KotlinVersion.kt => kotlin-version-new/src/main/kotlin/util/CompilerOptions.kt} (100%) create mode 100644 gradle-conventions/kotlin-version-old/build.gradle.kts create mode 100644 gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts create mode 100644 gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts create mode 100644 gradle-conventions/kotlin-version-old/src/main/kotlin/util/CompilerOptions.kt rename gradle-conventions/kover-stub/src/main/kotlin/{kover/src/main/kotlin => }/kover-root-project.gradle.kts (100%) diff --git a/gradle-conventions/build.gradle.kts b/gradle-conventions/build.gradle.kts index 3b878694..92229cca 100644 --- a/gradle-conventions/build.gradle.kts +++ b/gradle-conventions/build.gradle.kts @@ -17,16 +17,15 @@ configurations.configureEach { val kotlinVersion: String by extra -dependencies { - implementation(libs.kotlin.gradle.plugin) - implementation(libs.detekt.gradle.plugin) - - if (kotlinVersion >= "1.8.0") { - implementation(libs.kover.gradle.plugin) - } +val kotlinVersionPluginProjectName = if (kotlinVersion <= "1.9.10") { + ":kotlin-version-old" +} else { + ":kotlin-version-new" +} - // https://stackoverflow.com/questions/76713758/use-version-catalog-inside-precompiled-gradle-plugin - implementation(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) +dependencies { + implementation(project(kotlinVersionPluginProjectName)) + implementation(project(":conventions-utils")) } gradlePlugin { diff --git a/gradle-conventions/conventions-utils/build.gradle.kts b/gradle-conventions/conventions-utils/build.gradle.kts new file mode 100644 index 00000000..189cd242 --- /dev/null +++ b/gradle-conventions/conventions-utils/build.gradle.kts @@ -0,0 +1,30 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + alias(libs.plugins.gradle.kotlin.dsl) +} + +configurations.configureEach { + resolutionStrategy { + force(libs.kotlin.reflect) + force(libs.kotlin.stdlib) + force(libs.kotlin.stdlib.jdk7) + force(libs.kotlin.stdlib.jdk8) + } +} + +val kotlinVersion: String by extra + +dependencies { + api(libs.kotlin.gradle.plugin) + api(libs.detekt.gradle.plugin) + + if (kotlinVersion >= "1.8.0") { + api(libs.kover.gradle.plugin) + } + + // https://stackoverflow.com/questions/76713758/use-version-catalog-inside-precompiled-gradle-plugin + api(files(libs.javaClass.superclass.protectionDomain.codeSource.location)) +} diff --git a/gradle-conventions/src/main/kotlin/util/JsTarget.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/JsTarget.kt similarity index 83% rename from gradle-conventions/src/main/kotlin/util/JsTarget.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/JsTarget.kt index 8c9c01f4..6d61cf8c 100644 --- a/gradle-conventions/src/main/kotlin/util/JsTarget.kt +++ b/gradle-conventions/conventions-utils/src/main/kotlin/util/JsTarget.kt @@ -4,11 +4,13 @@ package util -import org.gradle.api.* -import org.gradle.kotlin.dsl.* -import java.io.* +import org.gradle.api.Project +import org.gradle.kotlin.dsl.getValue +import org.gradle.kotlin.dsl.getting +import org.gradle.kotlin.dsl.invoke +import java.io.File -internal fun Project.configureJs() { +fun Project.configureJs() { configureJsTasks() kotlin { diff --git a/gradle-conventions/src/main/kotlin/util/KotlinExtension.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/KotlinExtension.kt similarity index 79% rename from gradle-conventions/src/main/kotlin/util/KotlinExtension.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/KotlinExtension.kt index e6016963..66247cbf 100644 --- a/gradle-conventions/src/main/kotlin/util/KotlinExtension.kt +++ b/gradle-conventions/conventions-utils/src/main/kotlin/util/KotlinExtension.kt @@ -8,6 +8,6 @@ import org.gradle.api.Project import org.gradle.kotlin.dsl.configure import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension -internal fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) { +fun Project.kotlin(block: KotlinMultiplatformExtension.() -> Unit) { configure(block) } diff --git a/gradle-conventions/src/main/kotlin/util/OptInForInternalApi.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/OptInForInternalApi.kt similarity index 87% rename from gradle-conventions/src/main/kotlin/util/OptInForInternalApi.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/OptInForInternalApi.kt index b714fb51..b417ed82 100644 --- a/gradle-conventions/src/main/kotlin/util/OptInForInternalApi.kt +++ b/gradle-conventions/conventions-utils/src/main/kotlin/util/OptInForInternalApi.kt @@ -6,7 +6,7 @@ package util import org.jetbrains.kotlin.gradle.dsl.KotlinProjectExtension -internal fun KotlinProjectExtension.optInForRPCApi() { +fun KotlinProjectExtension.optInForRPCApi() { sourceSets.all { languageSettings.optIn("kotlinx.rpc.internal.InternalRPCApi") languageSettings.optIn("kotlinx.rpc.internal.ExperimentalRPCApi") diff --git a/gradle-conventions/src/main/kotlin/util/OptionalProperty.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/OptionalProperty.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/OptionalProperty.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/OptionalProperty.kt diff --git a/gradle-conventions/src/main/kotlin/util/PublicationUtils.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/PublicationUtils.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/PublicationUtils.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/PublicationUtils.kt diff --git a/gradle-conventions/src/main/kotlin/util/TargetUtils.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/TargetUtils.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/TargetUtils.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/TargetUtils.kt diff --git a/gradle-conventions/src/main/kotlin/util/VersionCatalogForPlugins.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/VersionCatalogForPlugins.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/VersionCatalogForPlugins.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/VersionCatalogForPlugins.kt diff --git a/gradle-conventions/src/main/kotlin/util/metaTask.kt b/gradle-conventions/conventions-utils/src/main/kotlin/util/metaTask.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/metaTask.kt rename to gradle-conventions/conventions-utils/src/main/kotlin/util/metaTask.kt diff --git a/gradle-conventions/gradle-publish-stub/build.gradle.kts b/gradle-conventions/gradle-publish-stub/build.gradle.kts index 753acf3b..95d0b76f 100644 --- a/gradle-conventions/gradle-publish-stub/build.gradle.kts +++ b/gradle-conventions/gradle-publish-stub/build.gradle.kts @@ -23,7 +23,7 @@ gradlePlugin { plugins { named("conventions-gradle-publish") { id = "conventions-gradle-publish" - version = libs.versions.rpc.core.get() + version = libs.versions.kotlinx.rpc.get() } } } diff --git a/gradle-conventions/kotlin-version-new/build.gradle.kts b/gradle-conventions/kotlin-version-new/build.gradle.kts new file mode 100644 index 00000000..a396507a --- /dev/null +++ b/gradle-conventions/kotlin-version-new/build.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + alias(libs.plugins.gradle.kotlin.dsl) +} + +configurations.configureEach { + resolutionStrategy { + force(libs.kotlin.reflect) + force(libs.kotlin.stdlib) + force(libs.kotlin.stdlib.jdk7) + force(libs.kotlin.stdlib.jdk8) + } +} + +dependencies { + implementation(project(":conventions-utils")) +} + +gradlePlugin { + plugins { + named("conventions-kotlin-version-jvm") { + id = "conventions-kotlin-version-jvm" + version = libs.versions.kotlinx.rpc.get() + } + } + + plugins { + named("conventions-kotlin-version-kmp") { + id = "conventions-kotlin-version-kmp" + version = libs.versions.kotlinx.rpc.get() + } + } +} diff --git a/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts b/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts new file mode 100644 index 00000000..b5a13821 --- /dev/null +++ b/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts @@ -0,0 +1,10 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension +import util.projectLanguageVersion + +configure { + compilerOptions(projectLanguageVersion) +} diff --git a/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts b/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts new file mode 100644 index 00000000..6659ba87 --- /dev/null +++ b/gradle-conventions/kotlin-version-new/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts @@ -0,0 +1,12 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi +import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension +import util.projectLanguageVersion + +@OptIn(ExperimentalKotlinGradlePluginApi::class) +configure { + compilerOptions(projectLanguageVersion) +} diff --git a/gradle-conventions/src/main/kotlin/util/KotlinVersion.kt b/gradle-conventions/kotlin-version-new/src/main/kotlin/util/CompilerOptions.kt similarity index 100% rename from gradle-conventions/src/main/kotlin/util/KotlinVersion.kt rename to gradle-conventions/kotlin-version-new/src/main/kotlin/util/CompilerOptions.kt diff --git a/gradle-conventions/kotlin-version-old/build.gradle.kts b/gradle-conventions/kotlin-version-old/build.gradle.kts new file mode 100644 index 00000000..a396507a --- /dev/null +++ b/gradle-conventions/kotlin-version-old/build.gradle.kts @@ -0,0 +1,36 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +plugins { + alias(libs.plugins.gradle.kotlin.dsl) +} + +configurations.configureEach { + resolutionStrategy { + force(libs.kotlin.reflect) + force(libs.kotlin.stdlib) + force(libs.kotlin.stdlib.jdk7) + force(libs.kotlin.stdlib.jdk8) + } +} + +dependencies { + implementation(project(":conventions-utils")) +} + +gradlePlugin { + plugins { + named("conventions-kotlin-version-jvm") { + id = "conventions-kotlin-version-jvm" + version = libs.versions.kotlinx.rpc.get() + } + } + + plugins { + named("conventions-kotlin-version-kmp") { + id = "conventions-kotlin-version-kmp" + version = libs.versions.kotlinx.rpc.get() + } + } +} diff --git a/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts b/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts new file mode 100644 index 00000000..c83983d7 --- /dev/null +++ b/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-jvm.gradle.kts @@ -0,0 +1,7 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +import util.setLanguageVersion + +setLanguageVersion() diff --git a/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts b/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts new file mode 100644 index 00000000..c83983d7 --- /dev/null +++ b/gradle-conventions/kotlin-version-old/src/main/kotlin/conventions-kotlin-version-kmp.gradle.kts @@ -0,0 +1,7 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +import util.setLanguageVersion + +setLanguageVersion() diff --git a/gradle-conventions/kotlin-version-old/src/main/kotlin/util/CompilerOptions.kt b/gradle-conventions/kotlin-version-old/src/main/kotlin/util/CompilerOptions.kt new file mode 100644 index 00000000..cbb06182 --- /dev/null +++ b/gradle-conventions/kotlin-version-old/src/main/kotlin/util/CompilerOptions.kt @@ -0,0 +1,18 @@ +/* + * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. + */ + +package util + +import org.gradle.api.Project +import org.gradle.kotlin.dsl.withType +import org.jetbrains.kotlin.gradle.tasks.KotlinCompile + +fun Project.setLanguageVersion() { + tasks.withType().all { + kotlinOptions { + freeCompilerArgs += "-language-version=1.7" + freeCompilerArgs += "-api-version=1.7" + } + } +} diff --git a/gradle-conventions/kover-stub/src/main/kotlin/kover/src/main/kotlin/kover-root-project.gradle.kts b/gradle-conventions/kover-stub/src/main/kotlin/kover-root-project.gradle.kts similarity index 100% rename from gradle-conventions/kover-stub/src/main/kotlin/kover/src/main/kotlin/kover-root-project.gradle.kts rename to gradle-conventions/kover-stub/src/main/kotlin/kover-root-project.gradle.kts diff --git a/gradle-conventions/settings.gradle.kts b/gradle-conventions/settings.gradle.kts index 2d6cc4db..0de90452 100644 --- a/gradle-conventions/settings.gradle.kts +++ b/gradle-conventions/settings.gradle.kts @@ -13,7 +13,9 @@ plugins { } include(":compiler-specific-module") +include(":conventions-utils") +val kotlinVersion: String by extra val isLatestKotlinVersion: Boolean by extra if (isLatestKotlinVersion) { @@ -23,3 +25,9 @@ if (isLatestKotlinVersion) { include(":kover-stub") include(":gradle-publish-stub") } + +if (kotlinVersion <= "1.9.10") { + include(":kotlin-version-old") +} else { + include(":kotlin-version-new") +} diff --git a/gradle-conventions/src/main/kotlin/conventions-common.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-common.gradle.kts index 159108dc..8dba0807 100644 --- a/gradle-conventions/src/main/kotlin/conventions-common.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-common.gradle.kts @@ -3,6 +3,7 @@ */ import io.gitlab.arturbosch.detekt.Detekt +import util.libs plugins { id("io.gitlab.arturbosch.detekt") @@ -16,6 +17,8 @@ val globalDetektDir = "$globalRootDir/detekt" // https://detekt.dev/docs/gettingstarted/gradle#options-for-detekt-configuration-closure detekt { + toolVersion = libs.versions.detekt.analyzer.get() + buildUponDefaultConfig = false // TC will fail only on Detekt codestyle configuration diff --git a/gradle-conventions/src/main/kotlin/conventions-jvm.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-jvm.gradle.kts index 757a9246..ff2d4026 100644 --- a/gradle-conventions/src/main/kotlin/conventions-jvm.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-jvm.gradle.kts @@ -4,16 +4,14 @@ import org.jetbrains.kotlin.gradle.dsl.KotlinJvmProjectExtension import util.optInForRPCApi -import util.projectLanguageVersion plugins { id("conventions-common") id("org.jetbrains.kotlin.jvm") + id("conventions-kotlin-version-jvm") } configure { - compilerOptions(projectLanguageVersion) - jvmToolchain { languageVersion.set(JavaLanguageVersion.of(8)) } diff --git a/gradle-conventions/src/main/kotlin/conventions-kmp.gradle.kts b/gradle-conventions/src/main/kotlin/conventions-kmp.gradle.kts index 37a5ebf2..ef70fde2 100644 --- a/gradle-conventions/src/main/kotlin/conventions-kmp.gradle.kts +++ b/gradle-conventions/src/main/kotlin/conventions-kmp.gradle.kts @@ -2,22 +2,18 @@ * Copyright 2023-2024 JetBrains s.r.o and contributors. Use of this source code is governed by the Apache 2.0 license. */ -import org.jetbrains.kotlin.gradle.ExperimentalKotlinGradlePluginApi import org.jetbrains.kotlin.gradle.dsl.KotlinMultiplatformExtension import util.configureKotlin import util.optInForRPCApi import util.optionalProperty -import util.projectLanguageVersion plugins { id("conventions-common") id("org.jetbrains.kotlin.multiplatform") + id("conventions-kotlin-version-kmp") } -@OptIn(ExperimentalKotlinGradlePluginApi::class) configure { - compilerOptions(projectLanguageVersion) - optInForRPCApi() explicitApi() diff --git a/gradle.properties b/gradle.properties index a8a73c5b..a35dece9 100644 --- a/gradle.properties +++ b/gradle.properties @@ -25,3 +25,6 @@ org.gradle.caching=true # development mode for kotlinx.rpc gradle plugin. Uses local project paths to apply ksp and compiler plugins kotlinx.rpc.plugin.internalDevelopment=true + +# https://github.com/gradle/gradle/issues/20416 +systemProp.org.gradle.kotlin.dsl.precompiled.accessors.strict=true diff --git a/gradle/kotlin-versions-lookup.csv b/gradle/kotlin-versions-lookup.csv index 570741d4..17c1edbf 100644 --- a/gradle/kotlin-versions-lookup.csv +++ b/gradle/kotlin-versions-lookup.csv @@ -1,18 +1,18 @@ -Kotlin,gradle-kotlin-dsl -1.9.24,4.1.0 -1.9.23,4.1.0 -1.9.22,4.1.0 -1.9.21,4.1.0 -1.9.20,4.1.0 -1.9.10,4.1.0 -1.9.0,4.1.0 -1.8.22,4.0.6 -1.8.21,4.0.6 -1.8.20,4.0.6 -1.8.10,4.0.6 -1.8.0,4.0.0 -1.7.22,2.3.3 -1.7.21,2.3.3 -1.7.20,2.3.3 -1.7.10,2.3.3 -1.7.0,2.3.3 \ No newline at end of file +Kotlin,ksp,atomicfu,serialization,detekt-gradle-plugin,gradle-kotlin-dsl,binary-compatibility-validator,kover +1.9.24,1.0.20,0.22.0,1.6.1,1.23.6,4.1.0,0.14.0,0.8.0 +1.9.23,1.0.19,0.22.0,1.6.1,1.23.6,4.1.0,0.14.0,0.8.0 +1.9.22,1.0.17,0.22.0,1.6.1,1.23.6,4.1.0,0.14.0,0.8.0 +1.9.21,1.0.16,0.22.0,1.6.1,1.23.6,4.1.0,0.14.0,0.8.0 +1.9.20,1.0.14,0.22.0,1.6.1,1.23.6,4.1.0,0.14.0,0.8.0 +1.9.10,1.0.13,0.22.0,1.6.0,1.23.3,4.1.0,0.14.0,0.8.0 +1.9.0,1.0.13,0.22.0,1.6.0,1.23.1,4.1.0,0.14.0,0.8.0 +1.8.22,1.0.11,0.21.0,1.5.1,1.23.0,4.0.6,0.14.0,0.8.0 +1.8.21,1.0.11,0.21.0,1.5.1,1.23.0,4.0.6,0.14.0,0.8.0 +1.8.20,1.0.11,0.21.0,1.5.0,1.23.0,4.0.6,0.14.0,0.8.0 +1.8.10,1.0.9,0.20.0,1.5.0,1.23.0,4.0.6,0.12.1,0.8.0 +1.8.0,1.0.9,0.20.0,1.4.1,1.23.0,4.0.0,0.12.0,0.8.0 +1.7.22,1.0.8,0.18.5,1.4.1,1.22.0,2.3.3,0.12.0,0.0.0 +1.7.21,1.0.8,0.18.5,1.4.1,1.22.0,2.3.3,0.12.0,0.0.0 +1.7.20,1.0.8,0.18.5,1.4.1,1.22.0,2.3.3,0.12.0,0.0.0 +1.7.10,1.0.6,0.18.0,1.4.0,1.22.0,2.3.3,0.12.0,0.0.0 +1.7.0,1.0.6,0.18.0,1.4.0,1.22.0,2.3.3,0.12.0,0.0.0 \ No newline at end of file diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index be45720b..32c453a9 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,23 +1,28 @@ [versions] +# core library version +kotlinx-rpc = "0.1.1-SNAPSHOT" + # kotlin kotlin-lang = "1.9.24" -kotlinx-rpc = "0.1.1-SNAPSHOT" # version for plugins and suffix for rpc-full -ksp = "1.9.24-1.0.20" -atomicfu = "0.22.0" -serialization = "1.6.1" +# kotlin independent versions +detekt-analyzer = "1.23.6" coroutines = "1.8.1" ktor = "2.3.11" -detekt = "1.23.6" kotlin-logging = "6.0.9" -binary-compatibility-validator = "0.14.0" -kover = "0.8.0" slf4j = "2.0.13" logback = "1.3.14" gradle-plugin-publish = "1.2.1" -# stub versions - relpaced based on kotlin +# stub versions - relpaced based on kotlin, mostly for gradle-related (plugins) dependencies +# but also for dependencies for compiler specific modules +ksp = "" +atomicfu = "" +serialization = "" +detekt-gradle-plugin = "" gradle-kotlin-dsl = "" +binary-compatibility-validator = "" +kover = "" [libraries] # kotlin @@ -59,7 +64,7 @@ kotlin-logging = { module = "io.github.oshai:kotlin-logging", version.ref = "kot kotlin-logging-legacy = { module = "io.github.microutils:kotlin-logging", version.ref = "kotlin-logging" } coroutines-core = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-core", version.ref = "coroutines" } coroutines-test = { module = "org.jetbrains.kotlinx:kotlinx-coroutines-test", version.ref = "coroutines" } -detekt-gradle-plugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt" } +detekt-gradle-plugin = { module = "io.gitlab.arturbosch.detekt:detekt-gradle-plugin", version.ref = "detekt-gradle-plugin" } kover-gradle-plugin = { module = "org.jetbrains.kotlinx:kover-gradle-plugin", version.ref = "kover" } [plugins] @@ -68,7 +73,7 @@ kotlin-jvm = { id = "org.jetbrains.kotlin.jvm", version.ref = "kotlin-lang" } serialization = { id = "org.jetbrains.kotlin.plugin.serialization", version.ref = "kotlin-lang" } ksp = { id = "com.google.devtools.ksp", version.ref = "ksp" } -detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } +detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt-gradle-plugin" } binary-compatibility-validator = { id = "org.jetbrains.kotlinx.binary-compatibility-validator", version.ref = "binary-compatibility-validator" } atomicfu = { id = "kotlinx-atomicfu", version.ref = "atomicfu" } gradle-kotlin-dsl = { id = "org.gradle.kotlin.kotlin-dsl", version.ref = "gradle-kotlin-dsl" } @@ -80,6 +85,7 @@ conventions-common = { id = "conventions-common", version.ref = "kotlinx-rpc" } conventions-jvm = { id = "conventions-jvm", version.ref = "kotlinx-rpc" } conventions-kmp = { id = "conventions-kmp", version.ref = "kotlinx-rpc" } conventions-gradle-publish = { id = "conventions-gradle-publish", version.ref = "kotlinx-rpc" } +conventions-kotlin-version = { id = "conventions-kotlin-version", version.ref = "kotlinx-rpc" } compiler-specific-module = { id = "compiler-specific-module", version.ref = "kotlinx-rpc" } kover-root-project = { id = "kover-root-project", version.ref = "kotlinx-rpc" }