[build][native] version with milestone clause

This commit is contained in:
Vasily Levchenko
2020-02-21 13:51:20 +01:00
committed by GitHub
parent 7053f1d00c
commit 98ce49ba73
@@ -12,16 +12,17 @@ interface CompilerVersion : Serializable {
val major: Int val major: Int
val minor: Int val minor: Int
val maintenance: Int val maintenance: Int
val milestone: Int
val build: Int val build: Int
fun toString(showMeta: Boolean, showBuild: Boolean): String fun toString(showMeta: Boolean, showBuild: Boolean): String
companion object { companion object {
// major.minor.patch-meta-build where patch, meta and build are optional. // major.minor.patch-meta-build where patch, meta and build are optional.
private val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?".toRegex() private val versionPattern = "(\\d+)\\.(\\d+)(?:\\.(\\d+))?(?:-M(\\p{Digit}))?(?:-(\\p{Alpha}\\p{Alnum}*))?(?:-(\\d+))?".toRegex()
fun fromString(version: String): CompilerVersion { fun fromString(version: String): CompilerVersion {
val (major, minor, maintenance, metaString, build) = val (major, minor, maintenance, milestone, metaString, build) =
versionPattern.matchEntire(version)?.destructured versionPattern.matchEntire(version)?.destructured
?: throw IllegalArgumentException("Cannot parse Kotlin/Native version: $version") ?: throw IllegalArgumentException("Cannot parse Kotlin/Native version: $version")
@@ -30,6 +31,7 @@ interface CompilerVersion : Serializable {
major.toInt(), major.toInt(),
minor.toInt(), minor.toInt(),
maintenance.toIntOrNull() ?: 0, maintenance.toIntOrNull() ?: 0,
milestone.toIntOrNull() ?: -1,
build.toIntOrNull() ?: -1 build.toIntOrNull() ?: -1
) )
} }
@@ -43,6 +45,7 @@ data class CompilerVersionImpl(
override val major: Int, override val major: Int,
override val minor: Int, override val minor: Int,
override val maintenance: Int, override val maintenance: Int,
override val milestone: Int = 0,
override val build: Int = -1 override val build: Int = -1
) : CompilerVersion { ) : CompilerVersion {
@@ -54,6 +57,10 @@ data class CompilerVersionImpl(
append('.') append('.')
append(maintenance) append(maintenance)
} }
if (milestone != -1) {
append("-M")
append(milestone)
}
if (showMeta) { if (showMeta) {
append('-') append('-')
append(meta.metaString) append(meta.metaString)