Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
33 commits
Select commit Hold shift + click to select a range
c18c24c
Initial work for having explicit active branch with version connection
jozala Jun 3, 2025
67e07c4
Basic implementation with single test passing
jozala Jun 16, 2025
1c1a531
Tests for UpdateBranchesJsonTask
jozala Jun 18, 2025
f6fedd5
Allow changing branch.json location in GlobalBuildInfoPlugin
jozala Jun 18, 2025
588c2dd
Change branch.json location temporarily to point to the forked repo
jozala Jun 18, 2025
d4c0bbc
[CI] Auto commit changes from spotless
Jun 18, 2025
c51044d
Artificial Gradle projects for BwC tests added
jozala Jun 18, 2025
79a9c0a
Tests corrected to be in line with new BwC test naming
jozala Jun 20, 2025
5206a31
Register the task in the plugin
jozala Jun 20, 2025
8f3d4c2
Configure JSON formatting for branches.json
jozala Jun 20, 2025
cb0850c
Update manually branches.json to make it in line with current releases
jozala Jul 3, 2025
e2b9fbf
Apply code review feedback
jozala Jul 7, 2025
42f7117
Fix the test to make it pass
jozala Jul 7, 2025
202a485
Change how version.properties is consumed in GlobalBuildInfoPlugin
jozala Jul 23, 2025
c7f1f62
Update branches.json after releases
jozala Jul 24, 2025
9dc8160
Add version.properties files for the tests
jozala Jul 24, 2025
acb1911
Merge branch 'main' into bwc-explicit-branches-version
jozala Aug 1, 2025
6a892ae
Remove unused bwc projects
jozala Aug 1, 2025
c469ab3
Update branches.json manually after releases
jozala Aug 1, 2025
b532042
Change "master" to "main" branch name in the default URL for branches
jozala Aug 12, 2025
0e17f38
Update branches.json manually after releases
jozala Aug 12, 2025
72f6f1c
Merge branch 'main' into bwc-explicit-branches-version
jozala Aug 12, 2025
5b4c655
Merge branch 'main' into bwc-explicit-branches-version
jozala Aug 21, 2025
8583e31
Update branches.json manually after releases
jozala Aug 21, 2025
b1d8282
[CI] Auto commit changes from spotless
Aug 21, 2025
8b0e9c8
Revert the deletion of `setupLocalGitRepo` method
jozala Aug 21, 2025
a63e333
Merge branch 'main' into bwc-explicit-branches-version
jozala Aug 22, 2025
96b9648
Merge branch 'main' into bwc-explicit-branches-version
jozala Sep 1, 2025
0eb15bf
Fix the compilation issues after merge
jozala Sep 1, 2025
4de4a5a
[CI] Auto commit changes from spotless
Sep 1, 2025
f156bf0
Update branches.json manually after releases
jozala Sep 1, 2025
a71d4f5
Merge branch 'main' into bwc-explicit-branches-version
jozala Sep 2, 2025
88774ef
Remove temporary branches-file-location property in gradle.properties
jozala Sep 2, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@

public class VersionPropertiesPlugin implements Plugin<Project> {

public static final String VERSIONS_EXT = "versions";

@Override
public void apply(Project project) {
File workspaceDir = Util.locateElasticsearchWorkspace(project.getGradle());
Expand All @@ -28,6 +30,6 @@ public void apply(Project project) {
.registerIfAbsent("versions", VersionPropertiesBuildService.class, spec -> {
spec.getParameters().getInfoPath().set(infoPath);
});
project.getExtensions().add("versions", serviceProvider.get().getProperties());
project.getExtensions().add(VERSIONS_EXT, serviceProvider.get().getProperties());
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@ abstract class AbstractGitAwareGradleFuncTest extends AbstractGradleFuncTest {
execute("git clone ${remoteGitRepo.absolutePath} cloned", testProjectDir.root)
buildFile = new File(testProjectDir.root, 'cloned/build.gradle')
settingsFile = new File(testProjectDir.root, 'cloned/settings.gradle')
versionPropertiesFile = new File(testProjectDir.root, 'cloned/build-tools-internal/version.properties')
versionPropertiesFile.text = """
elasticsearch = 9.1.0
lucene = 10.2.2

bundled_jdk_vendor = openjdk
bundled_jdk = 24+36@1f9ff9062db4449d8ca828c504ffae90
minimumJdkVersion = 21
minimumRuntimeJava = 21
minimumCompilerJava = 21
"""
}

File setupGitRemote() {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,23 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
assertOutputContains(result.output, "[$bwcDistVersion] > Task :distribution:archives:darwin-tar:${expectedAssembleTaskName}")

where:
bwcDistVersion | bwcProject | expectedAssembleTaskName
"8.4.0" | "minor" | "extractedAssemble"
"8.3.0" | "staged" | "extractedAssemble"
"8.2.1" | "bugfix" | "extractedAssemble"
"8.1.3" | "bugfix2" | "extractedAssemble"
bwcDistVersion | bwcProject | expectedAssembleTaskName
"8.4.0" | "major1" | "extractedAssemble"
"8.3.0" | "major2" | "extractedAssemble"
"8.2.1" | "major3" | "extractedAssemble"
"8.1.3" | "major4" | "extractedAssemble"
}

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

and: "assemble tasks triggered"
assertOutputContains(result.output, "[$bwcDistVersion] > Task :distribution:archives:${platform}-aarch64-tar:extractedAssemble")
Expand All @@ -87,7 +87,7 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
}

dependencies {
expandedDist project(path: ":distribution:bwc:minor", configuration:"expanded-darwin-tar")
expandedDist project(path: ":distribution:bwc:major1", configuration:"expanded-darwin-tar")
}

tasks.register("resolveExpandedDistribution") {
Expand All @@ -109,12 +109,12 @@ class InternalDistributionBwcSetupPluginFuncTest extends AbstractGitAwareGradleF
.build()
then:
result.task(":resolveExpandedDistribution").outcome == TaskOutcome.SUCCESS
result.task(":distribution:bwc:minor:buildBwcDarwinTar").outcome == TaskOutcome.SUCCESS
result.task(":distribution:bwc:major1:buildBwcDarwinTar").outcome == TaskOutcome.SUCCESS
and: "assemble task triggered"
result.output.contains("[8.4.0] > Task :distribution:archives:darwin-tar:extractedAssemble")
result.output.contains("expandedRootPath /distribution/bwc/minor/build/bwc/checkout-8.x/" +
result.output.contains("expandedRootPath /distribution/bwc/major1/build/bwc/checkout-8.x/" +
"distribution/archives/darwin-tar/build/install")
result.output.contains("nested folder /distribution/bwc/minor/build/bwc/checkout-8.x/" +
result.output.contains("nested folder /distribution/bwc/major1/build/bwc/checkout-8.x/" +
"distribution/archives/darwin-tar/build/install/elasticsearch-8.4.0-SNAPSHOT")
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
def "resolves expanded bwc versions from source"() {
given:
internalBuild()
bwcMinorProjectSetup()
bwcMajor1ProjectSetup()
buildFile << """
apply plugin: 'elasticsearch.internal-distribution-download'

Expand All @@ -72,16 +72,16 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest

def result = gradleRunner("setupDistro").build()
then:
result.task(":distribution:bwc:minor:buildBwcExpandedTask").outcome == TaskOutcome.SUCCESS
result.task(":distribution:bwc:major1:buildBwcExpandedTask").outcome == TaskOutcome.SUCCESS
result.task(":setupDistro").outcome == TaskOutcome.SUCCESS
assertExtractedDistroIsCreated("distribution/bwc/minor/build/install/elastic-distro",
assertExtractedDistroIsCreated("distribution/bwc/major1/build/install/elastic-distro",
'bwc-marker.txt')
}

def "fails on resolving bwc versions with no bundled jdk"() {
given:
internalBuild()
bwcMinorProjectSetup()
bwcMajor1ProjectSetup()
buildFile << """
apply plugin: 'elasticsearch.internal-distribution-download'

Expand All @@ -105,12 +105,12 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
"without a bundled JDK is not supported.")
}

private void bwcMinorProjectSetup() {
private void bwcMajor1ProjectSetup() {
settingsFile << """
include ':distribution:bwc:minor'
include ':distribution:bwc:major1'
"""
def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "bwc", "minor")
new File(bwcSubProjectFolder, 'bwc-marker.txt') << "bwc=minor"
def bwcSubProjectFolder = testProjectDir.newFolder("distribution", "bwc", "major1")
new File(bwcSubProjectFolder, 'bwc-marker.txt') << "bwc=major1"
new File(bwcSubProjectFolder, 'build.gradle') << """
apply plugin:'base'

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
given:
internalBuild()

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

def "yamlRestCompatTest executes and copies api and transforms tests from :bwc:minor"() {
def "yamlRestCompatTest executes and copies api and transforms tests from :bwc:major1"() {
given:
internalBuild()

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

when:
def result = gradleRunner("yamlRestCompatTest").build()
Expand Down Expand Up @@ -145,7 +145,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
given:
internalBuild()
withVersionCatalogue()
subProject(":distribution:bwc:minor") << """
subProject(":distribution:bwc:major1") << """
configurations { checkout }
artifacts {
checkout(new File(projectDir, "checkoutDir"))
Expand Down Expand Up @@ -186,7 +186,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe
given:
internalBuild()

subProject(":distribution:bwc:minor") << """
subProject(":distribution:bwc:major1") << """
configurations { checkout }
artifacts {
checkout(new File(projectDir, "checkoutDir"))
Expand Down Expand Up @@ -230,7 +230,7 @@ class LegacyYamlRestCompatTestPluginFuncTest extends AbstractRestResourcesFuncTe

setupRestResources([], [])

file("distribution/bwc/minor/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """
file("distribution/bwc/major1/checkoutDir/src/yamlRestTest/resources/rest-api-spec/test/test.yml" ) << """
"one":
- do:
do_.some.key_to_replace:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,4 +116,12 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
execute("git checkout -b main")
execute("git checkout -b test")
}

void setupLocalGitRepo() {
execute("git init")
execute('git config user.email "[email protected]"')
execute('git config user.name "Build tool"')
execute("git add .")
execute('git commit -m "Initial"')
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,14 @@

rootProject.name = "root"

include ":distribution:bwc:bugfix"
include ":distribution:bwc:bugfix2"
include ":distribution:bwc:bugfix3"
include ":distribution:bwc:bugfix4"
include ":distribution:bwc:bugfix5"
include ":distribution:bwc:minor"
include ":distribution:bwc:major"
include ":distribution:bwc:staged"
include ":distribution:bwc:staged2"
include ":distribution:bwc:maintenance"
include ":distribution:bwc:major1"
include ":distribution:bwc:major2"
include ":distribution:bwc:major3"
include ":distribution:bwc:major4"
include ":distribution:bwc:minor1"
include ":distribution:bwc:minor2"
include ":distribution:bwc:minor3"
include ":distribution:bwc:minor4"
Comment on lines +12 to +19
Copy link
Contributor Author

@jozala jozala Jul 24, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This is simplification of the naming convention.
Name minorN means previous minor on the same major where number N is a distance from the current.
Name majorN means previous major, still actively developed versions, where N is a distance from the current, omitting all the previous minor versions.

Related changes in other files across this PR.

include ":distribution:archives:darwin-tar"
include ":distribution:archives:oss-darwin-tar"
include ":distribution:archives:darwin-aarch64-tar"
Expand Down
Loading