From e96fa93dc6b7818ac3d1b0c7ab5dc315387568c7 Mon Sep 17 00:00:00 2001 From: Oleg Zhurakousky Date: Mon, 21 Dec 2020 17:53:00 +0100 Subject: [PATCH] Fix snapshot version rollover for new release schema Not sure it will handle all cases, but at least for now anything that is 3.1.x will properly be bumped to 3.1.1-SNAPSHOT --- .../internal/project/ProjectVersion.java | 21 +++++++++++++++++++ .../buildsystem/ProjectVersionTests.java | 8 +++++-- 2 files changed, 27 insertions(+), 2 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 4631f350..62e99b94 100644 --- a/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java +++ b/releaser-core/src/main/java/releaser/internal/project/ProjectVersion.java @@ -206,6 +206,27 @@ public class ProjectVersion implements Comparable, Serializable int numberOfHyphens = splitByHyphens - 1; int indexOfFirstHyphen = version.indexOf("-"); boolean buildSnapshot = version.endsWith("BUILD-SNAPSHOT"); + + String[] splitVersion = StringUtils.delimitedListToStringArray(version, "."); + boolean newVersionSchema = splitVersion.length == 3; + for (int i = 0; i < splitVersion.length && newVersionSchema; i++) { + try { + int v = Integer.parseInt(splitVersion[i]); + if (i == 0) { + newVersionSchema = v == 3; + } + else if (i == 1) { + newVersionSchema = v >= 1; + } + } + catch (Exception e) { + newVersionSchema = false; + } + } + if (newVersionSchema) { + SplitVersion v = SplitVersion.hyphen(splitVersion); + return v; + } if (numberOfHyphens == 1 && !buildSnapshot || (numberOfHyphens > 1 && buildSnapshot)) { // Dysprosium or 1.0.0 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 d1ae92fc..4ea71a0f 100644 --- a/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java +++ b/releaser-core/src/test/java/releaser/internal/buildsystem/ProjectVersionTests.java @@ -221,6 +221,10 @@ public class ProjectVersionTests { then(projectVersion(version).postReleaseSnapshotVersion()) .isEqualTo("1.0.2-SNAPSHOT"); + + version = "3.1.0"; + then(projectVersion(version).postReleaseSnapshotVersion()) + .isEqualTo("3.1.1-SNAPSHOT"); } @Test @@ -286,9 +290,9 @@ public class ProjectVersionTests { String version = "1.0.1-SR1"; then(projectVersion(version).isServiceRelease()).isTrue(); - + // String newServiceReleaseVersion = "2020.0.1"; - + // then(projectVersion(newServiceReleaseVersion).isServiceRelease()).isTrue(); newServiceReleaseVersion = "3.0.1";