From 50ac4e75cd08ce4a10229aad2bc172de82ee9ccb Mon Sep 17 00:00:00 2001 From: spencergibb Date: Fri, 18 Dec 2020 18:41:07 -0500 Subject: [PATCH] Recognize calver release and service release. --- .../internal/project/ProjectVersion.java | 29 +++++++++++++++++-- .../buildsystem/ProjectVersionTests.java | 10 ++++--- 2 files changed, 32 insertions(+), 7 deletions(-) diff --git a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java index 092e9c84..c0ad0db3 100644 --- a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java +++ b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java @@ -413,7 +413,16 @@ public class ProjectVersion implements Comparable, Serializable } public boolean isRelease() { - return this.version != null && this.version.contains("RELEASE"); + if (!StringUtils.hasText(this.version)) { + return false; + } + SplitVersion splitVersion = assertVersion(); + if (splitVersion.calverReleaseTrain()) { + if (Integer.parseInt(splitVersion.patch) == 0) { + return true; + } + } + return this.version.contains("RELEASE"); } public boolean isReleaseTrain() { @@ -431,7 +440,16 @@ public class ProjectVersion implements Comparable, Serializable } public boolean isServiceRelease() { - return this.version != null && this.version.matches(".*.SR[0-9]+"); + if (!StringUtils.hasText(this.version)) { + return false; + } + SplitVersion splitVersion = assertVersion(); + if (splitVersion.calverReleaseTrain()) { + if (Integer.parseInt(splitVersion.patch) > 0) { + return true; + } + } + return this.version.matches(".*.SR[0-9]+"); } private ReleaseType toReleaseType() { @@ -696,7 +714,12 @@ public class ProjectVersion implements Comparable, Serializable } private boolean calverReleaseTrain() { - return Integer.parseInt(this.major) >= 2020; + try { + return Integer.parseInt(this.major) >= 2020; + } + catch (NumberFormatException e) { + return false; + } } private boolean isOldReleaseTrain() { diff --git a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java index 85681200..8587eaf4 100644 --- a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java +++ b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java @@ -110,7 +110,8 @@ public class ProjectVersionTests { then(ProjectVersion.isValid("2020.0.0-SNAPSHOT")).isTrue(); then(ProjectVersion.isValid("2020.0.0-M1")).isTrue(); then(ProjectVersion.isValid("2020.0.0-RC2")).isTrue(); - // then(ProjectVersion.isValid("2020.0.0")).isTrue(); + then(ProjectVersion.isValid("2020.0.0")).isTrue(); + then(ProjectVersion.isValid("2020.1.1")).isTrue(); then(ProjectVersion.isValid("1.0.1-SNAPSHOT")).isTrue(); then(ProjectVersion.isValid("1.0.3-RC1")).isTrue(); then(ProjectVersion.isValid("1.0.4-M1")).isTrue(); @@ -152,7 +153,8 @@ public class ProjectVersionTests { then(projectVersion("2.0.1-RC1").major()).isEqualTo("2"); then(projectVersion("Finchley-SR1").major()).isEqualTo("Finchley"); then(projectVersion("2020.0.0-M1").major()).isEqualTo("2020"); - // then(projectVersion("2020.0.0").major()).isEqualTo("2020"); + then(projectVersion("2020.0.0").major()).isEqualTo("2020"); + then(projectVersion("2021.1.1").major()).isEqualTo("2021"); } @Test @@ -268,7 +270,7 @@ public class ProjectVersionTests { String newReleaseSuffixVersion = "2020.0.0"; - // then(projectVersion(newReleaseSuffixVersion).isRelease()).isTrue(); + then(projectVersion(newReleaseSuffixVersion).isRelease()).isTrue(); } @Test @@ -279,7 +281,7 @@ public class ProjectVersionTests { String newServiceReleaseVersion = "2020.0.1"; - // then(projectVersion(newServiceReleaseVersion).isRelease()).isTrue(); + then(projectVersion(newServiceReleaseVersion).isServiceRelease()).isTrue(); } @Test