Skip to content

Commit 6c40509

Browse files
committed
Update BWC versions to support multiple staged releases
1 parent da65532 commit 6c40509

File tree

5 files changed

+39
-1
lines changed

5 files changed

+39
-1
lines changed

build-tools-internal/src/integTest/resources/org/elasticsearch/gradle/internal/fake_git/remote/settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ include ":distribution:bwc:bugfix2"
1414
include ":distribution:bwc:minor"
1515
include ":distribution:bwc:major"
1616
include ":distribution:bwc:staged"
17+
include ":distribution:bwc:staged2"
1718
include ":distribution:bwc:maintenance"
1819
include ":distribution:archives:darwin-tar"
1920
include ":distribution:archives:oss-darwin-tar"

build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/BwcVersions.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,7 @@ private Map<Version, UnreleasedVersionInfo> computeUnreleased(List<String> devel
166166
.toList();
167167

168168
boolean existingBugfix = false;
169+
boolean existingStaged = false;
169170
for (int i = 0; i < featureFreezeBranches.size(); i++) {
170171
String branch = featureFreezeBranches.get(i);
171172
Version version = versions.stream()
@@ -193,7 +194,9 @@ private Map<Version, UnreleasedVersionInfo> computeUnreleased(List<String> devel
193194
if (i == featureFreezeBranches.size() - 1) {
194195
result.put(version, new UnreleasedVersionInfo(version, branch, ":distribution:bwc:maintenance"));
195196
} else if (version.getRevision() == 0) { // This is the next staged minor
196-
result.put(version, new UnreleasedVersionInfo(version, branch, ":distribution:bwc:staged"));
197+
String project = existingStaged ? "staged2" : "staged";
198+
result.put(version, new UnreleasedVersionInfo(version, branch, ":distribution:bwc:" + project));
199+
existingStaged = true;
197200
} else { // This is a bugfix
198201
String project = existingBugfix ? "bugfix2" : "bugfix";
199202
result.put(version, new UnreleasedVersionInfo(version, branch, ":distribution:bwc:" + project));

build-tools-internal/src/test/groovy/org/elasticsearch/gradle/internal/BwcVersionsSpec.groovy

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,39 @@ class BwcVersionsSpec extends Specification {
7777
bwc.indexCompatible == [v('8.14.0'), v('8.14.1'), v('8.14.2'), v('8.15.0'), v('8.15.1'), v('8.15.2'), v('8.16.0'), v('8.16.1'), v('8.17.0'), v('8.18.0'), v('9.0.0')]
7878
}
7979

80+
def "current version is next major with two staged minors"() {
81+
given:
82+
addVersion('7.17.10', '8.9.0')
83+
addVersion('8.15.0', '9.9.0')
84+
addVersion('8.15.1', '9.9.0')
85+
addVersion('8.15.2', '9.9.0')
86+
addVersion('8.16.0', '9.10.0')
87+
addVersion('8.16.1', '9.10.0')
88+
addVersion('8.16.2', '9.10.0')
89+
addVersion('8.17.0', '9.10.0')
90+
addVersion('8.17.1', '9.10.0')
91+
addVersion('8.18.0', '9.10.0')
92+
addVersion('8.19.0', '9.10.0')
93+
addVersion('9.0.0', '10.0.0')
94+
addVersion('9.1.0', '10.1.0')
95+
96+
when:
97+
def bwc = new BwcVersions(versionLines, v('9.1.0'), ['main', '9.0', '8.x', '8.18', '8.17', '8.16', '7.17'])
98+
def unreleased = bwc.unreleased.collectEntries { [it, bwc.unreleasedInfo(it)] }
99+
100+
then:
101+
unreleased == [
102+
(v('8.16.2')): new UnreleasedVersionInfo(v('8.16.2'), '8.16', ':distribution:bwc:bugfix2'),
103+
(v('8.17.1')): new UnreleasedVersionInfo(v('8.17.1'), '8.17', ':distribution:bwc:bugfix'),
104+
(v('8.18.0')): new UnreleasedVersionInfo(v('8.18.0'), '8.18', ':distribution:bwc:staged2'),
105+
(v('8.19.0')): new UnreleasedVersionInfo(v('8.19.0'), '8.x', ':distribution:bwc:minor'),
106+
(v('9.0.0')): new UnreleasedVersionInfo(v('9.0.0'), '9.0', ':distribution:bwc:staged'),
107+
(v('9.1.0')): new UnreleasedVersionInfo(v('9.1.0'), 'main', ':distribution'),
108+
]
109+
bwc.wireCompatible == [v('8.19.0'), v('9.0.0'), v('9.1.0')]
110+
bwc.indexCompatible == [v('8.15.0'), v('8.15.1'), v('8.15.2'), v('8.16.0'), v('8.16.1'), v('8.16.2'), v('8.17.0'), v('8.17.1'), v('8.18.0'), v('8.19.0'), v('9.0.0'), v('9.1.0')]
111+
}
112+
80113
def "current version is first new minor in major series"() {
81114
given:
82115
addVersion('7.17.10', '8.9.0')

distribution/bwc/staged2/build.gradle

Whitespace-only changes.

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,7 @@ List projects = [
7979
'distribution:bwc:maintenance',
8080
'distribution:bwc:minor',
8181
'distribution:bwc:staged',
82+
'distribution:bwc:staged2',
8283
'distribution:bwc:main',
8384
'distribution:tools:java-version-checker',
8485
'distribution:tools:cli-launcher',

0 commit comments

Comments
 (0)