From 959a525e7516af22fcc6072dfd558406c1332b7c Mon Sep 17 00:00:00 2001 From: spencergibb Date: Fri, 18 Dec 2020 19:02:40 -0500 Subject: [PATCH] Supports x.y.z releases and service releases. Versions such as 3.0.0 or 3.1.1 --- .../internal/project/ProjectVersion.java | 26 ++++++++++--------- .../buildsystem/ProjectVersionTests.java | 12 +++++++++ 2 files changed, 26 insertions(+), 12 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 d82af817..4631f350 100644 --- a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java +++ b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java @@ -417,14 +417,16 @@ public class ProjectVersion implements Comparable, Serializable if (!StringUtils.hasText(this.version)) { return false; } + if (this.version.contains("RELEASE")) { + return true; + } SplitVersion splitVersion = assertVersion(); - log.info("isRelease split version: " + splitVersion); - if (splitVersion.calverReleaseTrain()) { + if (StringUtils.isEmpty(splitVersion.suffix)) { // this is an x.y.z release if (Integer.parseInt(splitVersion.patch) == 0) { return true; } } - return this.version.contains("RELEASE"); + return false; } public boolean isReleaseTrain() { @@ -445,13 +447,16 @@ public class ProjectVersion implements Comparable, Serializable if (!StringUtils.hasText(this.version)) { return false; } + if (this.version.matches(".*.SR[0-9]+")) { + return true; + } SplitVersion splitVersion = assertVersion(); - if (splitVersion.calverReleaseTrain()) { + if (StringUtils.isEmpty(splitVersion.suffix)) { // this is an x.y.z release if (Integer.parseInt(splitVersion.patch) > 0) { return true; } } - return this.version.matches(".*.SR[0-9]+"); + return false; } private ReleaseType toReleaseType() { @@ -773,15 +778,12 @@ public class ProjectVersion implements Comparable, Serializable @Override public String toString() { - return new ToStringCreator(this) - .append("major", major) - .append("minor", minor) - .append("patch", patch) - .append("delimiter", delimiter) - .append("suffix", suffix) - .toString(); + return new ToStringCreator(this).append("major", major).append("minor", minor) + .append("patch", patch).append("delimiter", delimiter) + .append("suffix", suffix).toString(); } + } private static class TrainVersionNumber implements Comparable { 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 8587eaf4..d1ae92fc 100644 --- a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java +++ b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java @@ -115,6 +115,8 @@ public class ProjectVersionTests { then(ProjectVersion.isValid("1.0.1-SNAPSHOT")).isTrue(); then(ProjectVersion.isValid("1.0.3-RC1")).isTrue(); then(ProjectVersion.isValid("1.0.4-M1")).isTrue(); + then(ProjectVersion.isValid("3.0.0")).isTrue(); + then(ProjectVersion.isValid("3.1.1")).isTrue(); then(ProjectVersion.isValid("Finchley-SNAPSHOT")).isTrue(); then(ProjectVersion.isValid("Finchley.RELEASE")).isTrue(); then(ProjectVersion.isValid("Finchley-SR1")).isTrue(); @@ -155,6 +157,8 @@ public class ProjectVersionTests { then(projectVersion("2020.0.0-M1").major()).isEqualTo("2020"); then(projectVersion("2020.0.0").major()).isEqualTo("2020"); then(projectVersion("2021.1.1").major()).isEqualTo("2021"); + then(projectVersion("3.0.0").major()).isEqualTo("3"); + then(projectVersion("3.1.1").major()).isEqualTo("3"); } @Test @@ -271,6 +275,10 @@ public class ProjectVersionTests { String newReleaseSuffixVersion = "2020.0.0"; then(projectVersion(newReleaseSuffixVersion).isRelease()).isTrue(); + + newReleaseSuffixVersion = "3.0.0"; + + then(projectVersion(newReleaseSuffixVersion).isRelease()).isTrue(); } @Test @@ -282,6 +290,10 @@ public class ProjectVersionTests { String newServiceReleaseVersion = "2020.0.1"; then(projectVersion(newServiceReleaseVersion).isServiceRelease()).isTrue(); + + newServiceReleaseVersion = "3.0.1"; + + then(projectVersion(newServiceReleaseVersion).isServiceRelease()).isTrue(); } @Test