From fa525a8359cec1bf972bebf1e335c9a254a09e86 Mon Sep 17 00:00:00 2001 From: Pavel Punegov Date: Wed, 5 May 2021 17:46:15 +0300 Subject: [PATCH] [native] Support milestones in meta versions Add milestones to MetaVersion to replace standalone parameter in compiler version generator. This makes native version match Kotlin one. --- .../org/jetbrains/kotlin/konan/CompilerVersion.kt | 15 ++++----------- .../src/org/jetbrains/kotlin/konan/MetaVersion.kt | 9 ++++----- .../src/VersionGenerator.kt | 10 +++------- 3 files changed, 11 insertions(+), 23 deletions(-) diff --git a/compiler/util-io/src/org/jetbrains/kotlin/konan/CompilerVersion.kt b/compiler/util-io/src/org/jetbrains/kotlin/konan/CompilerVersion.kt index a62ffd8effd..3c5dfd84b0b 100644 --- a/compiler/util-io/src/org/jetbrains/kotlin/konan/CompilerVersion.kt +++ b/compiler/util-io/src/org/jetbrains/kotlin/konan/CompilerVersion.kt @@ -12,26 +12,24 @@ interface CompilerVersion : Serializable { val major: Int val minor: Int val maintenance: Int - val milestone: Int val build: Int fun toString(showMeta: Boolean, showBuild: Boolean): String companion object { // major.minor.patch-meta-build where patch, meta and build are optional. - private val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-M(\\p{Digit}))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?".toRegex() + private val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?".toRegex() fun fromString(version: String): CompilerVersion { - val (major, minor, maintenance, milestone, metaString, build) = - versionPattern.matchEntire(version)?.destructured - ?: throw IllegalArgumentException("Cannot parse Kotlin/Native version: $version") + val (major, minor, maintenance, metaString, build) = + versionPattern.matchEntire(version)?.destructured + ?: throw IllegalArgumentException("Cannot parse Kotlin/Native version: $version") return CompilerVersionImpl( MetaVersion.findAppropriate(metaString), major.toInt(), minor.toInt(), maintenance.toIntOrNull() ?: 0, - milestone.toIntOrNull() ?: -1, build.toIntOrNull() ?: -1 ) } @@ -45,7 +43,6 @@ data class CompilerVersionImpl( override val major: Int, override val minor: Int, override val maintenance: Int, - override val milestone: Int = 0, override val build: Int = -1 ) : CompilerVersion { @@ -55,10 +52,6 @@ data class CompilerVersionImpl( append(minor) append('.') append(maintenance) - if (milestone != -1) { - append("-M") - append(milestone) - } if (showMeta) { append('-') append(meta.metaString) diff --git a/compiler/util-io/src/org/jetbrains/kotlin/konan/MetaVersion.kt b/compiler/util-io/src/org/jetbrains/kotlin/konan/MetaVersion.kt index aef749d49cd..3e6745c0634 100644 --- a/compiler/util-io/src/org/jetbrains/kotlin/konan/MetaVersion.kt +++ b/compiler/util-io/src/org/jetbrains/kotlin/konan/MetaVersion.kt @@ -13,16 +13,15 @@ package org.jetbrains.kotlin.konan enum class MetaVersion(val metaString: String) { DEV("dev"), EAP("eap"), - ALPHA("alpha"), BETA("beta"), - RC1("rc1"), - RC2("rc2"), + M1("M1"), + M2("M2"), + RC("RC"), RELEASE("release"); companion object { - fun findAppropriate(metaString: String): MetaVersion { - return MetaVersion.values().find { it.metaString.equals(metaString, ignoreCase = true) } + return values().find { it.metaString.equals(metaString, ignoreCase = true) } ?: if (metaString.isBlank()) RELEASE else error("Unknown meta version: $metaString") } } diff --git a/dependencies/kotlin-build-gradle-plugin/src/VersionGenerator.kt b/dependencies/kotlin-build-gradle-plugin/src/VersionGenerator.kt index 1f9679d23f3..02e6466735a 100644 --- a/dependencies/kotlin-build-gradle-plugin/src/VersionGenerator.kt +++ b/dependencies/kotlin-build-gradle-plugin/src/VersionGenerator.kt @@ -76,7 +76,7 @@ open class VersionGenerator: DefaultTask() { open val meta = (project.findProperty("konanMetaVersion") as? String ?: kotlinNativeProperties["konanMetaVersion"])?.let{ MetaVersion.valueOf(it.toString().toUpperCase()) } ?: MetaVersion.DEV private val versionPattern = Pattern.compile( - "^(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-M(\\p{Digit}))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?$" + "^(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?$" ) fun defaultVersionFileLocation() { @@ -94,8 +94,6 @@ open class VersionGenerator: DefaultTask() { val minor = matcher.group(2).toInt() val maintenanceStr = matcher.group(3) val maintenance = maintenanceStr?.toInt() ?: 0 - val milestoneStr = matcher.group(4) - val milestone = milestoneStr?.toInt() ?: -1 project.logger.info("BUILD_NUMBER: $buildNumber") var build = -1 if (buildNumber != null) { @@ -103,10 +101,8 @@ open class VersionGenerator: DefaultTask() { build = buildNumberSplit[buildNumberSplit.size - 1].toInt() // //7-dev-buildcount } - val versionObject = CompilerVersionImpl(meta, major, minor, maintenance, milestone, build) + val versionObject = CompilerVersionImpl(meta, major, minor, maintenance, build) versionObject.serialize() - - } private fun CompilerVersion.serialize() { @@ -118,7 +114,7 @@ open class VersionGenerator: DefaultTask() { """|package org.jetbrains.kotlin.konan |internal val currentCompilerVersion: CompilerVersion = |CompilerVersionImpl($meta, $major, $minor, - | $maintenance, $milestone, $build) + | $maintenance, $build) |val CompilerVersion.Companion.CURRENT: CompilerVersion |get() = currentCompilerVersion""".trimMargin() )