From 1a9cd81a8516313cbefa39052978d653b85c8cc7 Mon Sep 17 00:00:00 2001 From: Dmitrii Krasnov Date: Fri, 27 Oct 2023 08:20:44 +0000 Subject: [PATCH] [KGP] Changed type of determining maturity version for k/n #KT-62927 Fixed Merge-request: KT-MR-12742 Merged-by: Dmitrii Krasnov --- .../native/NativeDownloadAndPlatformLibsIT.kt | 14 ++++++++------ .../targets/native/NativeCompilerDownloader.kt | 7 +++---- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt index 00ebaa5ef9b..56c5a6ab799 100644 --- a/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt +++ b/libraries/tools/kotlin-gradle-plugin-integration-tests/src/test/kotlin/org/jetbrains/kotlin/gradle/native/NativeDownloadAndPlatformLibsIT.kt @@ -14,6 +14,9 @@ import org.jetbrains.kotlin.gradle.utils.NativeCompilerDownloader import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.target.presetName +import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion +import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion.Maturity.* +import org.jetbrains.kotlin.tooling.core.buildNumber import org.junit.jupiter.api.Assumptions import org.junit.jupiter.api.DisplayName import org.junit.jupiter.api.condition.OS @@ -368,13 +371,12 @@ class NativeDownloadAndPlatformLibsIT : KGPBaseTest() { ) private fun mavenUrl(): String { - val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-(\\p{Alpha}*\\p{Alnum}|[\\p{Alpha}-]*))?(?:-(\\d+))?".toRegex() - val (_, _, _, metaString, build) = versionPattern.matchEntire(currentCompilerVersion)?.destructured - ?: error("Unable to parse version $currentCompilerVersion") + val kotlinToolingVersion = KotlinToolingVersion(currentCompilerVersion) + val maturity = kotlinToolingVersion.maturity + val buildNumber = kotlinToolingVersion.buildNumber return when { - metaString == "dev" || build.isNotEmpty() -> KOTLIN_SPACE_DEV - metaString in listOf("RC", "RC2", "Beta") || metaString.isEmpty() -> MAVEN_CENTRAL - else -> throw IllegalStateException("Not a published version $currentCompilerVersion") + maturity == DEV || buildNumber != null -> KOTLIN_SPACE_DEV + else -> MAVEN_CENTRAL } } diff --git a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt index 57a6175c5af..de137fe0a64 100644 --- a/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt +++ b/libraries/tools/kotlin-gradle-plugin/src/common/kotlin/org/jetbrains/kotlin/gradle/targets/native/NativeCompilerDownloader.kt @@ -28,6 +28,7 @@ import org.jetbrains.kotlin.gradle.targets.native.internal.PlatformLibrariesGene import org.jetbrains.kotlin.konan.target.HostManager import org.jetbrains.kotlin.konan.target.KonanTarget import org.jetbrains.kotlin.konan.util.DependencyDirectories +import org.jetbrains.kotlin.tooling.core.KotlinToolingVersion import java.io.File import java.nio.file.Files @@ -113,12 +114,10 @@ class NativeCompilerDownloader( } private val repoUrl by lazy { - val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-(\\p{Alpha}*\\p{Alnum}|[\\p{Alpha}-]*))?(?:-(\\d+))?".toRegex() - val (_, _, _, buildType, _) = versionPattern.matchEntire(compilerVersion)?.destructured - ?: error("Unable to parse version $compilerVersion") + val maturity = KotlinToolingVersion(compilerVersion).maturity buildString { append("${kotlinProperties.nativeBaseDownloadUrl}/") - append(if (buildType in listOf("RC", "RC2", "Beta") || buildType.isEmpty()) "releases/" else "dev/") + append(if (maturity == KotlinToolingVersion.Maturity.DEV) "dev/" else "releases/") append("$compilerVersion/") append(simpleOsName) }