KotlinToolingVersion: Allow dev versions with generic classifiers
e.g.: 1.6.20-dev-myWildcard-510 (build number 510) 1.6.20-dev-myWildcard (no build number) 1.6.20-dev-myWildcard510 (no build number) 1.6.20-dev-google-pr210-510 (build number 510)
This commit is contained in:
committed by
Space
parent
d015b2b899
commit
f996e87528
+9
-1
@@ -53,7 +53,7 @@ class KotlinToolingVersion(
|
||||
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|pub)-?\d*""")) -> Maturity.DEV
|
||||
classifier.matches(Regex("""(dev|pub)(-(\w|-)+)?-?\d*""")) -> Maturity.DEV
|
||||
classifier == "snapshot" -> Maturity.SNAPSHOT
|
||||
else -> throw IllegalArgumentException("Can't infer maturity of KotlinVersion $this")
|
||||
}
|
||||
@@ -188,6 +188,14 @@ val KotlinToolingVersion.classifierNumber: Int?
|
||||
get() {
|
||||
if (classifier == null) return null
|
||||
|
||||
/*
|
||||
dev builds allow additional wildcards in the version (like 1.6.20-dev-myWildcard21-510)
|
||||
In this case, 510 will be the buildNumber, but there is still no associated classifierNumber.
|
||||
In order to keep the regex below simple, we fast path out here, since we know that
|
||||
dev builds never carry classifier numbers
|
||||
*/
|
||||
if (maturity == KotlinToolingVersion.Maturity.DEV) return null
|
||||
|
||||
/*
|
||||
Classifiers with only a buildNumber assigned
|
||||
*/
|
||||
|
||||
+49
@@ -127,6 +127,21 @@ class KotlinToolingVersionTest {
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun devBuildsWithCustomWildcardsDoNotInfluenceCompareTo() {
|
||||
assertEquals(
|
||||
0, KotlinToolingVersion("1.6.20-dev-myWildcard-510").compareTo(KotlinToolingVersion("1.6.20-dev-myOtherWildcard-510"))
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
0, KotlinToolingVersion("1.6.20-dev-myWildcard-510").compareTo(KotlinToolingVersion("1.6.20-dev-myWildcard2-510"))
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
0, KotlinToolingVersion("1.6.20-dev-myWildcard1-510").compareTo(KotlinToolingVersion("1.6.20-dev-myWildcard2-510"))
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
fun maturityWithClassifierNumberAndBuildNumber() {
|
||||
assertEquals(
|
||||
@@ -208,6 +223,16 @@ class KotlinToolingVersionTest {
|
||||
KotlinToolingVersion.Maturity.DEV,
|
||||
KotlinToolingVersion("1.6.20-pUb").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.DEV,
|
||||
KotlinToolingVersion("1.6.20-dev-google-pr").maturity
|
||||
)
|
||||
|
||||
assertEquals(
|
||||
KotlinToolingVersion.Maturity.DEV,
|
||||
KotlinToolingVersion("1.6.20-dev-google-pr-510").maturity
|
||||
)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -261,6 +286,22 @@ class KotlinToolingVersionTest {
|
||||
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)
|
||||
|
||||
/* dev */
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-pub-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-myWildcard-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-pub-myWildcard-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-myWildcard1-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-pub-myWildcard1-510").buildNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-myWildcard510").buildNumber)
|
||||
|
||||
/* dev with - in wildcards */
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-google-pr-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-google-pr-510").buildNumber)
|
||||
assertEquals(510, KotlinToolingVersion("1.6.20-dev-google-pr210-510").buildNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-google-pr").buildNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-google-pr510").buildNumber)
|
||||
}
|
||||
|
||||
@Test
|
||||
@@ -286,6 +327,14 @@ class KotlinToolingVersionTest {
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2-release").classifierNumber)
|
||||
assertEquals(2, KotlinToolingVersion("1.6.20-m2-release-510").classifierNumber)
|
||||
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-pub-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-myWildcard-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-pub-myWildcard-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-myWildcard1-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-pub-myWildcard1-510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-myWildcard510").classifierNumber)
|
||||
assertNull(KotlinToolingVersion("1.6.20-dev-google-pr510").classifierNumber)
|
||||
}
|
||||
|
||||
@Test
|
||||
|
||||
Reference in New Issue
Block a user