Skip to content

Commit dcc376c

Browse files
authored
Avoid running resolve logic with no transport version name (elastic#135379) (elastic#135480)
When resolving transport version conflicts we must lookup the definition that is being added by the current branch. We do this by detecting the resource file that has been added. When no files are added, we should not do anything. This commit moves the logic that detects branches closer to where it is needed so that we don't possibly run it with an empty transport version name.
1 parent 01d8f2b commit dcc376c

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -87,4 +87,13 @@ class ResolveTransportVersionConflictFuncTest extends AbstractTransportVersionFu
8787
assertUpperBound("9.1", "new_tv,8012002")
8888
assertUpperBound("8.19", "new_tv,7123002")
8989
}
90+
91+
def "no new transport version is idempotent"() {
92+
when:
93+
def result = runResolveAndValidateTask().build()
94+
95+
then:
96+
assertResolveAndValidateSuccess(result)
97+
assertUpperBound("9.2", "existing_92,8123000")
98+
}
9099
}

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -428,7 +428,7 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
428428

429429
def "upper bounds files must exist for backport branches"() {
430430
when:
431-
def result = runGenerateTask("--backport-branches=9.1,8.13,7.17,6.0").buildAndFail()
431+
def result = runGenerateTask("--name", "new_tv", "--backport-branches=9.1,8.13,7.17,6.0").buildAndFail()
432432

433433
then:
434434
assertGenerateFailure(result, "Missing upper bounds files for branches [6.0, 7.17, 8.13], known branches are [8.19, 9.0, 9.1, 9.2]")

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -98,14 +98,14 @@ public void run() throws IOException {
9898
List<String> changedDefinitionNames = resources.getChangedReferableDefinitionNames();
9999
String targetDefinitionName = getTargetDefinitionName(resources, referencedNames, changedDefinitionNames);
100100

101-
List<TransportVersionUpperBound> upstreamUpperBounds = resources.getUpperBoundsFromUpstream();
102-
Set<String> targetUpperBoundNames = getTargetUpperBoundNames(resources, upstreamUpperBounds, targetDefinitionName);
103-
104101
getLogger().lifecycle("Generating transport version name: " + targetDefinitionName);
105102
if (targetDefinitionName.isEmpty()) {
106103
// TODO: resetting upper bounds needs to be done locally, otherwise it pulls in some (incomplete) changes from upstream main
107104
// resetAllUpperBounds(resources);
108105
} else {
106+
List<TransportVersionUpperBound> upstreamUpperBounds = resources.getUpperBoundsFromUpstream();
107+
Set<String> targetUpperBoundNames = getTargetUpperBoundNames(resources, upstreamUpperBounds, targetDefinitionName);
108+
109109
List<TransportVersionId> ids = updateUpperBounds(resources, upstreamUpperBounds, targetUpperBoundNames, targetDefinitionName);
110110
// (Re)write the definition file.
111111
resources.writeDefinition(new TransportVersionDefinition(targetDefinitionName, ids, true));

0 commit comments

Comments
 (0)