Skip to content

Commit b1081c0

Browse files
authored
Add explicit versions in the branches.json and use them for calculating unreleased versions for BwC tests (elastic#129637)
Gradle task added to modify `branches.json`. Possibility to add, remove and update branches in the file with the version field added next to the branch. BwC test configuration has been changed to use changed `branches.json` file to calculate unreleased ES versions, instead of combining data from `Version.java` and `branches.json`.
1 parent b229c65 commit b1081c0

File tree

37 files changed

+1074
-371
lines changed

37 files changed

+1074
-371
lines changed

build-conventions/src/main/java/org/elasticsearch/gradle/internal/conventions/VersionPropertiesPlugin.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,8 @@
1818

1919
public class VersionPropertiesPlugin implements Plugin<Project> {
2020

21+
public static final String VERSIONS_EXT = "versions";
22+
2123
@Override
2224
public void apply(Project project) {
2325
File workspaceDir = Util.locateElasticsearchWorkspace(project.getGradle());
@@ -28,6 +30,6 @@ public void apply(Project project) {
2830
.registerIfAbsent("versions", VersionPropertiesBuildService.class, spec -> {
2931
spec.getParameters().getInfoPath().set(infoPath);
3032
});
31-
project.getExtensions().add("versions", serviceProvider.get().getProperties());
33+
project.getExtensions().add(VERSIONS_EXT, serviceProvider.get().getProperties());
3234
}
3335
}

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/fixtures/AbstractGitAwareGradleFuncTest.groovy

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,17 @@ abstract class AbstractGitAwareGradleFuncTest extends AbstractGradleFuncTest {
2626
execute("git clone ${remoteGitRepo.absolutePath} cloned", testProjectDir.root)
2727
buildFile = new File(testProjectDir.root, 'cloned/build.gradle')
2828
settingsFile = new File(testProjectDir.root, 'cloned/settings.gradle')
29+
versionPropertiesFile = new File(testProjectDir.root, 'cloned/build-tools-internal/version.properties')
30+
versionPropertiesFile.text = """
31+
elasticsearch = 9.1.0
32+
lucene = 10.2.2
33+
34+
bundled_jdk_vendor = openjdk
35+
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
36+
minimumJdkVersion = 21
37+
minimumRuntimeJava = 21
38+
minimumCompilerJava = 21
39+
"""
2940
}
3041

3142
File setupGitRemote() {

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionBwcSetupPluginFuncTest.groovy

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51,23 +51,23 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
5151
assertOutputContains(result.output, "[$bwcDistVersion] > Task :distribution:archives:darwin-tar:${expectedAssembleTaskName}")
5252

5353
where:
54-
bwcDistVersion | bwcProject | expectedAssembleTaskName
55-
"8.4.0" | "minor" | "extractedAssemble"
56-
"8.3.0" | "staged" | "extractedAssemble"
57-
"8.2.1" | "bugfix" | "extractedAssemble"
58-
"8.1.3" | "bugfix2" | "extractedAssemble"
54+
bwcDistVersion | bwcProject | expectedAssembleTaskName
55+
"8.4.0" | "major1" | "extractedAssemble"
56+
"8.3.0" | "major2" | "extractedAssemble"
57+
"8.2.1" | "major3" | "extractedAssemble"
58+
"8.1.3" | "major4" | "extractedAssemble"
5959
}
6060

6161
@Unroll
6262
def "supports #platform aarch distributions"() {
6363
when:
64-
def result = gradleRunner(":distribution:bwc:minor:buildBwc${platform.capitalize()}Aarch64Tar",
64+
def result = gradleRunner(":distribution:bwc:major1:buildBwc${platform.capitalize()}Aarch64Tar",
6565
"-DtestRemoteRepo=" + remoteGitRepo,
6666
"-Dbwc.remote=origin",
6767
"-Dbwc.dist.version=${bwcDistVersion}-SNAPSHOT")
6868
.build()
6969
then:
70-
result.task(":distribution:bwc:minor:buildBwc${platform.capitalize()}Aarch64Tar").outcome == TaskOutcome.SUCCESS
70+
result.task(":distribution:bwc:major1:buildBwc${platform.capitalize()}Aarch64Tar").outcome == TaskOutcome.SUCCESS
7171

7272
and: "assemble tasks triggered"
7373
assertOutputContains(result.output, "[$bwcDistVersion] > Task :distribution:archives:${platform}-aarch64-tar:extractedAssemble")
@@ -87,7 +87,7 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
8787
}
8888
8989
dependencies {
90-
expandedDist project(path: ":distribution:bwc:minor", configuration:"expanded-darwin-tar")
90+
expandedDist project(path: ":distribution:bwc:major1", configuration:"expanded-darwin-tar")
9191
}
9292
9393
tasks.register("resolveExpandedDistribution") {
@@ -109,12 +109,12 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
109109
.build()
110110
then:
111111
result.task(":resolveExpandedDistribution").outcome == TaskOutcome.SUCCESS
112-
result.task(":distribution:bwc:minor:buildBwcDarwinTar").outcome == TaskOutcome.SUCCESS
112+
result.task(":distribution:bwc:major1:buildBwcDarwinTar").outcome == TaskOutcome.SUCCESS
113113
and: "assemble task triggered"
114114
result.output.contains("[8.4.0] > Task :distribution:archives:darwin-tar:extractedAssemble")
115-
result.output.contains("expandedRootPath /distribution/bwc/minor/build/bwc/checkout-8.x/" +
115+
result.output.contains("expandedRootPath /distribution/bwc/major1/build/bwc/checkout-8.x/" +
116116
"distribution/archives/darwin-tar/build/install")
117-
result.output.contains("nested folder /distribution/bwc/minor/build/bwc/checkout-8.x/" +
117+
result.output.contains("nested folder /distribution/bwc/major1/build/bwc/checkout-8.x/" +
118118
"distribution/archives/darwin-tar/build/install/elasticsearch-8.4.0-SNAPSHOT")
119119
}
120120
}

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/InternalDistributionDownloadPluginFuncTest.groovy

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
5151
def "resolves expanded bwc versions from source"() {
5252
given:
5353
internalBuild()
54-
bwcMinorProjectSetup()
54+
bwcMajor1ProjectSetup()
5555
buildFile << """
5656
apply plugin: 'elasticsearch.internal-distribution-download'
5757
@@ -72,16 +72,16 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
7272

7373
def result = gradleRunner("setupDistro").build()
7474
then:
75-
result.task(":distribution:bwc:minor:buildBwcExpandedTask").outcome == TaskOutcome.SUCCESS
75+
result.task(":distribution:bwc:major1:buildBwcExpandedTask").outcome == TaskOutcome.SUCCESS
7676
result.task(":setupDistro").outcome == TaskOutcome.SUCCESS
77-
assertExtractedDistroIsCreated("distribution/bwc/minor/build/install/elastic-distro",
77+
assertExtractedDistroIsCreated("distribution/bwc/major1/build/install/elastic-distro",
7878
'bwc-marker.txt')
7979
}
8080

8181
def "fails on resolving bwc versions with no bundled jdk"() {
8282
given:
8383
internalBuild()
84-
bwcMinorProjectSetup()
84+
bwcMajor1ProjectSetup()
8585
buildFile << """
8686
apply plugin: 'elasticsearch.internal-distribution-download'
8787
@@ -105,12 +105,12 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
105105
"without a bundled JDK is not supported.")
106106
}
107107

108-
private void bwcMinorProjectSetup() {
108+
private void bwcMajor1ProjectSetup() {
109109
settingsFile << """
110-
include ':distribution:bwc:minor'
110+
include ':distribution:bwc:major1'
111111
"""
112-
def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "bwc", "minor")
113-
new File(bwcSubProjectFolder, 'bwc-marker.txt') << "bwc=minor"
112+
def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "bwc", "major1")
113+
new File(bwcSubProjectFolder, 'bwc-marker.txt') << "bwc=major1"
114114
new File(bwcSubProjectFolder, 'build.gradle') << """
115115
apply plugin:'base'
116116

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/test/rest/LegacyYamlRestCompatTestPluginFuncTest.groovy

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
4040
given:
4141
internalBuild()
4242

43-
subProject(":distribution:bwc:minor") << """
43+
subProject(":distribution:bwc:major1") << """
4444
configurations { checkout }
4545
artifacts {
4646
checkout(new File(projectDir, "checkoutDir"))
@@ -61,11 +61,11 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
6161
result.task(transformTask).outcome == TaskOutcome.NO_SOURCE
6262
}
6363

64-
def "yamlRestCompatTest executes and copies api and transforms tests from :bwc:minor"() {
64+
def "yamlRestCompatTest executes and copies api and transforms tests from :bwc:major1"() {
6565
given:
6666
internalBuild()
6767

68-
subProject(":distribution:bwc:minor") << """
68+
subProject(":distribution:bwc:major1") << """
6969
configurations { checkout }
7070
artifacts {
7171
checkout(new File(projectDir, "checkoutDir"))
@@ -98,8 +98,8 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
9898
String api = "foo.json"
9999
String test = "10_basic.yml"
100100
//add the compatible test and api files, these are the prior version's normal yaml rest tests
101-
file("distribution/bwc/minor/checkoutDir/rest-api-spec/src/main/resources/rest-api-spec/api/" + api) << ""
102-
file("distribution/bwc/minor/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/" + test) << ""
101+
file("distribution/bwc/major1/checkoutDir/rest-api-spec/src/main/resources/rest-api-spec/api/" + api) << ""
102+
file("distribution/bwc/major1/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/" + test) << ""
103103

104104
when:
105105
def result = gradleRunner("yamlRestCompatTest").build()
@@ -145,7 +145,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
145145
given:
146146
internalBuild()
147147
withVersionCatalogue()
148-
subProject(":distribution:bwc:minor") << """
148+
subProject(":distribution:bwc:major1") << """
149149
configurations { checkout }
150150
artifacts {
151151
checkout(new File(projectDir, "checkoutDir"))
@@ -186,7 +186,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
186186
given:
187187
internalBuild()
188188

189-
subProject(":distribution:bwc:minor") << """
189+
subProject(":distribution:bwc:major1") << """
190190
configurations { checkout }
191191
artifacts {
192192
checkout(new File(projectDir, "checkoutDir"))
@@ -230,7 +230,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
230230

231231
setupRestResources([], [])
232232

233-
file("distribution/bwc/minor/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """
233+
file("distribution/bwc/major1/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """
234234
"one":
235235
- do:
236236
do_.some.key_to_replace:

build-tools-internal/src/integTest/groovy/org/elasticsearch/gradle/internal/transport/AbstractTransportVersionFuncTest.groovy

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,4 +116,12 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
116116
execute("git checkout -b main")
117117
execute("git checkout -b test")
118118
}
119+
120+
void setupLocalGitRepo() {
121+
execute("git init")
122+
execute('git config user.email "[email protected]"')
123+
execute('git config user.name "Build tool"')
124+
execute("git add .")
125+
execute('git commit -m "Initial"')
126+
}
119127
}

0 commit comments

Comments
 (0)