KotlinToolingVersion: Support -release in versions
This commit is contained in:
committed by
Space
parent
87c339f637
commit
6800475202
+7
-7
@@ -47,10 +47,10 @@ class KotlinToolingVersion(
|
||||
val classifier = this.classifier?.toLowerCase(Locale.ROOT)
|
||||
return when {
|
||||
classifier == null || classifier.matches(Regex("""(release-)?\d+""")) -> Maturity.STABLE
|
||||
classifier.matches(Regex("""(rc)(\d*)?-?\d*""")) -> Maturity.RC
|
||||
classifier.matches(Regex("""beta(\d*)?-?\d*""")) -> Maturity.BETA
|
||||
classifier.matches(Regex("""alpha(\d*)?-?\d*""")) -> Maturity.ALPHA
|
||||
classifier.matches(Regex("""m\d+(-\d*)?""")) -> Maturity.MILESTONE
|
||||
classifier.matches(Regex("""(rc)(\d*)?(-release)?-?\d*""")) -> Maturity.RC
|
||||
classifier.matches(Regex("""beta(\d*)?(-release)?-?\d*""")) -> Maturity.BETA
|
||||
classifier.matches(Regex("""alpha(\d*)?(-release)?-?\d*""")) -> Maturity.ALPHA
|
||||
classifier.matches(Regex("""m\d+(-release)?(-\d*)?""")) -> Maturity.MILESTONE
|
||||
classifier.matches(Regex("""dev-?\d*""")) -> Maturity.DEV
|
||||
classifier == "snapshot" -> Maturity.SNAPSHOT
|
||||
else -> throw IllegalArgumentException("Can't infer maturity of KotlinVersion $this")
|
||||
@@ -177,9 +177,9 @@ val KotlinToolingVersion.buildNumber: Int?
|
||||
return classifier.toIntOrNull()
|
||||
}
|
||||
|
||||
val classifierRegex = Regex("""(.+?)(\d*)?-?(\d*)?""")
|
||||
val classifierRegex = Regex("""(.+?)(\d*)?(-release)?-?(\d*)?""")
|
||||
val classifierMatch = classifierRegex.matchEntire(classifier) ?: return null
|
||||
return classifierMatch.groupValues.getOrNull(3)?.toIntOrNull()
|
||||
return classifierMatch.groupValues.getOrNull(4)?.toIntOrNull()
|
||||
}
|
||||
|
||||
val KotlinToolingVersion.classifierNumber: Int?
|
||||
@@ -195,7 +195,7 @@ val KotlinToolingVersion.classifierNumber: Int?
|
||||
}
|
||||
|
||||
|
||||
val classifierRegex = Regex("""(.+?)(\d*)?-?(\d*)?""")
|
||||
val classifierRegex = Regex("""(.+?)(\d*)?(-release)?-?(\d*)?""")
|
||||
val classifierMatch = classifierRegex.matchEntire(classifier) ?: return null
|
||||
return classifierMatch.groupValues.getOrNull(2)?.toIntOrNull()
|
||||
}
|
||||
|
||||
+49
@@ -189,6 +189,39 @@ class KotlinToolingVersionTest {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun maturityWithAdditionalReleaseSuffix() {
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.MILESTONE,
|
||||
KotlinToolingVersion("1.6.20-M1-release").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.MILESTONE,
|
||||
KotlinToolingVersion("1.6.20-M1-release-22").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.ALPHA,
|
||||
KotlinToolingVersion("1.6.20-alpha-release").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.ALPHA,
|
||||
KotlinToolingVersion("1.6.20-alpha-release39").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.BETA,
|
||||
KotlinToolingVersion("1.6.20-beta2-release").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.RC,
|
||||
KotlinToolingVersion("1.6.20-rc1-release").maturity
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun invalidMilestoneVersion() {
|
||||
val exception = assertFailsWith<IllegalArgumentException> { KotlinToolingVersion("1.6.20-M") }
|
||||
@@ -203,6 +236,10 @@ class KotlinToolingVersionTest {
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-beta1-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-alpha1-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-m1-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-m1-release-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-rc1-release-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-beta1-release-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-alpha1-release-510").buildNumber)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -216,6 +253,18 @@ class KotlinToolingVersionTest {
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-beta2").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-alpha2").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2").classifierNumber)
|
||||
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-rc2-release").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-rc2-release-510").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-beta2-release").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-beta2-release-510").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-alpha2").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-alpha2-release").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-alpha2-release-510").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2-release").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2-release-510").classifierNumber)
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user