Skip to content

Commit 597e3b2

Browse files
authored
Merge branch '9.0' into transport/cutover_9.0
2 parents 6c284a3 + 3bf3ed9 commit 597e3b2

File tree

15 files changed

+84
-22
lines changed

15 files changed

+84
-22
lines changed

build-tools-internal/gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=f759b8dd5204e2e3fa4ca3e73f452f087153cf81bac9561eeb854229cc2c5365
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-all.zip
3+
distributionSha256Sum=b84e04fa845fecba48551f425957641074fcc00a88a84d2aae5808743b35fc85
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip
55
networkTimeout=10000
66
validateDistributionUrl=true
77
zipStoreBase=GRADLE_USER_HOME

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,9 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
125125
tasks.named('generateTransportVersion') {
126126
currentUpperBoundName = '9.2'
127127
}
128+
tasks.named('validateTransportVersionResources') {
129+
currentUpperBoundName = '9.2'
130+
}
128131
"""
129132
referableAndReferencedTransportVersion("existing_91", "8012000")
130133
referableAndReferencedTransportVersion("older_92", "8122000")

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

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -277,4 +277,21 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
277277
"[myserver/src/main/resources/transport/definitions/referable/existing_92.csv]"
278278
)
279279
}
280+
281+
def "primary id checks skipped on release branch"() {
282+
given:
283+
file("myserver/build.gradle") << """
284+
tasks.named('validateTransportVersionResources') {
285+
currentUpperBoundName = '9.1'
286+
}
287+
"""
288+
referableAndReferencedTransportVersion("some_tv", "8125000")
289+
transportVersionUpperBound("9.2", "some_tv", "8125000")
290+
291+
when:
292+
def result = gradleRunner("validateTransportVersionResources").build()
293+
294+
then:
295+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
296+
}
280297
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929

3030
import javax.inject.Inject;
3131

32-
public class ExtractCurrentVersionsTask extends AbstractVersionsTask {
32+
public abstract class ExtractCurrentVersionsTask extends AbstractVersionsTask {
3333
private static final Logger LOGGER = Logging.getLogger(ExtractCurrentVersionsTask.class);
3434

3535
private Path outputFile;

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

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@
1414
import org.elasticsearch.gradle.internal.conventions.VersionPropertiesPlugin;
1515
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
1616
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin;
17+
import org.gradle.api.Action;
1718
import org.gradle.api.Plugin;
1819
import org.gradle.api.Project;
1920
import org.gradle.api.file.Directory;
@@ -69,6 +70,7 @@ public void apply(Project project) {
6970
t.getReferencesFiles().setFrom(tvReferencesConfig);
7071
t.getShouldValidateDensity().convention(true);
7172
t.getShouldValidatePrimaryIdNotPatch().convention(true);
73+
t.getCurrentUpperBoundName().convention(currentVersion.getMajor() + "." + currentVersion.getMinor());
7274
});
7375
project.getTasks().named(PrecommitPlugin.PRECOMMIT_TASK_NAME).configure(t -> t.dependsOn(validateTask));
7476

@@ -79,19 +81,31 @@ public void apply(Project project) {
7981
t.getManifestFile().set(project.getLayout().getBuildDirectory().file("generated-resources/manifest.txt"));
8082
});
8183
project.getTasks().named(JavaPlugin.PROCESS_RESOURCES_TASK_NAME, Copy.class).configure(t -> {
82-
t.into("transport/definitions", c -> c.from(generateManifestTask));
84+
t.into(resourceRoot + "/definitions", c -> c.from(generateManifestTask));
8385
});
8486

87+
Action<GenerateTransportVersionDefinitionTask> generationConfiguration = t -> {
88+
t.setGroup(taskGroup);
89+
t.getReferencesFiles().setFrom(tvReferencesConfig);
90+
t.getIncrement().convention(1000);
91+
t.getCurrentUpperBoundName().convention(currentVersion.getMajor() + "." + currentVersion.getMinor());
92+
};
93+
8594
var generateDefinitionsTask = project.getTasks()
8695
.register("generateTransportVersion", GenerateTransportVersionDefinitionTask.class, t -> {
87-
t.setGroup(taskGroup);
8896
t.setDescription("(Re)generates a transport version definition file");
89-
t.getReferencesFiles().setFrom(tvReferencesConfig);
90-
t.getIncrement().convention(1000);
91-
t.getCurrentUpperBoundName().convention(currentVersion.getMajor() + "." + currentVersion.getMinor());
9297
});
98+
generateDefinitionsTask.configure(generationConfiguration);
9399
validateTask.configure(t -> t.mustRunAfter(generateDefinitionsTask));
94100

101+
var resolveConflictTask = project.getTasks()
102+
.register("resolveTransportVersionConflict", GenerateTransportVersionDefinitionTask.class, t -> {
103+
t.setDescription("Resolve merge conflicts in transport version internal state files");
104+
t.getResolveConflict().set(true);
105+
});
106+
resolveConflictTask.configure(generationConfiguration);
107+
validateTask.configure(t -> t.mustRunAfter(resolveConflictTask));
108+
95109
var generateInitialTask = project.getTasks()
96110
.register("generateInitialTransportVersion", GenerateInitialTransportVersionTask.class, t -> {
97111
t.setGroup(taskGroup);

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

Lines changed: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,13 @@ public Path getResourcesDir() {
6060
@Input
6161
public abstract Property<Boolean> getShouldValidatePrimaryIdNotPatch();
6262

63+
/**
64+
* The name of the upper bounds file which will be used at runtime on the current branch. Normally
65+
* this equates to VersionProperties.getElasticsearchVersion().
66+
*/
67+
@Input
68+
public abstract Property<String> getCurrentUpperBoundName();
69+
6370
private record IdAndDefinition(TransportVersionId id, TransportVersionDefinition definition) {}
6471

6572
private static final Pattern NAME_FORMAT = Pattern.compile("[a-z0-9_]+");
@@ -76,6 +83,7 @@ public void validateTransportVersions() throws IOException {
7683
Map<String, TransportVersionDefinition> allDefinitions = collectAllDefinitions(referableDefinitions, unreferableDefinitions);
7784
Map<Integer, List<IdAndDefinition>> idsByBase = collectIdsByBase(allDefinitions.values());
7885
Map<String, TransportVersionUpperBound> upperBounds = resources.getUpperBounds();
86+
boolean onReleaseBranch = checkIfDefinitelyOnReleaseBranch(upperBounds);
7987

8088
for (var definition : referableDefinitions.values()) {
8189
validateNamedDefinition(definition, referencedNames);
@@ -93,7 +101,9 @@ public void validateTransportVersions() throws IOException {
93101
validateUpperBound(upperBound, allDefinitions, idsByBase);
94102
}
95103

96-
validatePrimaryIds(resources, upperBounds, allDefinitions);
104+
if (onReleaseBranch == false) {
105+
validatePrimaryIds(resources, upperBounds, allDefinitions);
106+
}
97107
}
98108

99109
private Map<String, TransportVersionDefinition> collectAllDefinitions(
@@ -318,6 +328,15 @@ private void validatePrimaryIds(
318328
);
319329
}
320330

331+
private boolean checkIfDefinitelyOnReleaseBranch(Map<String, TransportVersionUpperBound> upperBounds) {
332+
// only want to look at definitions <= the current upper bound.
333+
// TODO: we should filter all of the upper bounds/definitions that are validated by this, not just in this method
334+
String currentUpperBoundName = getCurrentUpperBoundName().get();
335+
TransportVersionUpperBound currentUpperBound = upperBounds.get(currentUpperBoundName);
336+
337+
return upperBounds.values().stream().anyMatch(u -> u.definitionId().complete() > currentUpperBound.definitionId().complete());
338+
}
339+
321340
private void throwDefinitionFailure(TransportVersionDefinition definition, String message) {
322341
Path relativePath = getResources().get().getDefinitionPath(definition);
323342
throw new VerificationException("Transport version definition file [" + relativePath + "] " + message);
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
9.0.0
1+
9.1.0

gradle/verification-metadata.xml

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4126,6 +4126,11 @@
41264126
<sha256 value="e5894b710094b4caafc6280b8829a439fb764901ea0ae18d06ed80388b309b7a" origin="Generated by Gradle"/>
41274127
</artifact>
41284128
</component>
4129+
<component group="org.junit.platform" name="junit-platform-commons" version="1.9.0">
4130+
<artifact name="junit-platform-commons-1.9.0.jar">
4131+
<sha256 value="e5894b710094b4caafc6280b8829a439fb764901ea0ae18d06ed80388b309b7a" origin="Generated by Gradle"/>
4132+
</artifact>
4133+
</component>
41294134
<component group="org.junit.platform" name="junit-platform-engine" version="1.12.1">
41304135
<artifact name="junit-platform-engine-1.12.1.jar">
41314136
<sha256 value="7fedff93fd92aec7d29fc60dc01fa027246b36b8088423a5efc4949e5f6affa4" origin="Generated by Gradle"/>
@@ -4136,6 +4141,11 @@
41364141
<sha256 value="aaec735f7444a9fc055e206598de3d829c24e9c7a8eea6efdeeb1962087fe811" origin="Generated by Gradle"/>
41374142
</artifact>
41384143
</component>
4144+
<component group="org.junit.platform" name="junit-platform-engine" version="1.9.0">
4145+
<artifact name="junit-platform-engine-1.9.0.jar">
4146+
<sha256 value="aaec735f7444a9fc055e206598de3d829c24e9c7a8eea6efdeeb1962087fe811" origin="Generated by Gradle"/>
4147+
</artifact>
4148+
</component>
41394149
<component group="org.junit.platform" name="junit-platform-launcher" version="1.12.1">
41404150
<artifact name="junit-platform-launcher-1.12.1.jar">
41414151
<sha256 value="ebbb14e7b29f60730eaede862ed69d7de0d581ea0c038fa6a202955c7541f525" origin="Generated by Gradle"/>
@@ -4701,6 +4711,11 @@
47014711
<sha256 value="fea4b91afb5eb68a80007c9d88c8c189b5cd791d39d601d75c92e6f6bb587735" origin="Generated by Gradle"/>
47024712
</artifact>
47034713
</component>
4714+
<component group="org.spockframework" name="spock-junit4" version="2.3-groovy-4.0">
4715+
<artifact name="spock-junit4-2.3-groovy-4.0.jar">
4716+
<sha256 value="fea4b91afb5eb68a80007c9d88c8c189b5cd791d39d601d75c92e6f6bb587735" origin="Generated by Gradle"/>
4717+
</artifact>
4718+
</component>
47044719
<component group="org.subethamail" name="subethasmtp" version="3.1.7">
47054720
<artifact name="subethasmtp-3.1.7.jar">
47064721
<sha256 value="5196a0da2c5a33d1a04e88fc7a9cc109501bc265b5bac8edd9984a1885070ad4" origin="Generated by Gradle"/>

gradle/wrapper/gradle-wrapper.jar

1.65 KB
Binary file not shown.

gradle/wrapper/gradle-wrapper.properties

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
distributionBase=GRADLE_USER_HOME
22
distributionPath=wrapper/dists
3-
distributionSha256Sum=f759b8dd5204e2e3fa4ca3e73f452f087153cf81bac9561eeb854229cc2c5365
4-
distributionUrl=https\://services.gradle.org/distributions/gradle-9.0.0-all.zip
3+
distributionSha256Sum=b84e04fa845fecba48551f425957641074fcc00a88a84d2aae5808743b35fc85
4+
distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-all.zip
55
networkTimeout=10000
66
validateDistributionUrl=true
77
zipStoreBase=GRADLE_USER_HOME

0 commit comments

Comments
 (0)