Skip to content

Commit 853d58f

Browse files
authored
Make resolve conflict in transport version its own task (#134842) (#135489)
This commit moves the action for resolving merge conflicts in transport version files a separate task instead of a command line flag to generate.
1 parent e171cc1 commit 853d58f

File tree

4 files changed

+209
-184
lines changed

4 files changed

+209
-184
lines changed
Lines changed: 90 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
/*
2+
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
3+
* or more contributor license agreements. Licensed under the "Elastic License
4+
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
5+
* Public License v 1"; you may not use this file except in compliance with, at
6+
* your election, the "Elastic License 2.0", the "GNU Affero General Public
7+
* License v3.0 only", or the "Server Side Public License, v 1".
8+
*/
9+
10+
package org.elasticsearch.gradle.internal.transport
11+
12+
import org.gradle.testkit.runner.BuildResult
13+
import org.gradle.testkit.runner.GradleRunner
14+
import org.gradle.testkit.runner.TaskOutcome
15+
16+
class ResolveTransportVersionConflictFuncTest extends AbstractTransportVersionFuncTest {
17+
18+
GradleRunner runResolveAndValidateTask() {
19+
List<String> args = List.of(":myserver:validateTransportVersionResources", ":myserver:resolveTransportVersionConflict")
20+
return gradleRunner(args.toArray())
21+
}
22+
23+
void assertResolveAndValidateSuccess(BuildResult result) {
24+
assert result.task(":myserver:resolveTransportVersionConflict").outcome == TaskOutcome.SUCCESS
25+
assert result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
26+
}
27+
28+
def "update flag works with current"() {
29+
given:
30+
referableAndReferencedTransportVersion("new_tv", "8123000")
31+
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
32+
"""
33+
<<<<<<< HEAD
34+
existing_92,8123000
35+
=======
36+
new_tv,8123000
37+
>>>>>> name
38+
""".strip()
39+
40+
when:
41+
def result = runResolveAndValidateTask().build()
42+
43+
then:
44+
assertResolveAndValidateSuccess(result)
45+
assertReferableDefinition("existing_92", "8123000,8012001")
46+
assertReferableDefinition("new_tv", "8124000")
47+
assertUpperBound("9.2", "new_tv,8124000")
48+
}
49+
50+
def "update flag works with multiple branches"() {
51+
given:
52+
referableAndReferencedTransportVersion("new_tv", "8123000,8012001,7123001")
53+
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
54+
"""
55+
<<<<<<< HEAD
56+
existing_92,8123000
57+
=======
58+
new_tv,8123000
59+
>>>>>> name
60+
""".strip()
61+
file("myserver/src/main/resources/transport/latest/9.1.csv").text =
62+
"""
63+
<<<<<<< HEAD
64+
existing_92,8012001
65+
=======
66+
new_tv,8012001
67+
>>>>>> name
68+
""".strip()
69+
file("myserver/src/main/resources/transport/latest/8.19.csv").text =
70+
"""
71+
<<<<<<< HEAD
72+
initial_8.19.7,7123001
73+
=======
74+
new_tv,7123001
75+
>>>>>> name
76+
""".strip()
77+
78+
when:
79+
def result = runResolveAndValidateTask().build()
80+
81+
then:
82+
assertResolveAndValidateSuccess(result)
83+
assertReferableDefinition("existing_92", "8123000,8012001")
84+
assertUnreferableDefinition("initial_8.19.7", "7123001")
85+
assertReferableDefinition("new_tv", "8124000,8012002,7123002")
86+
assertUpperBound("9.2", "new_tv,8124000")
87+
assertUpperBound("9.1", "new_tv,8012002")
88+
assertUpperBound("8.19", "new_tv,7123002")
89+
}
90+
}

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

Lines changed: 2 additions & 73 deletions
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,14 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
1919
List<String> args = new ArrayList<>()
2020
args.add(":myserver:validateTransportVersionResources")
2121
args.add(":myserver:generateTransportVersion")
22-
args.addAll(additionalArgs);
22+
args.addAll(additionalArgs)
2323
return gradleRunner(args.toArray())
2424
}
2525

2626
def runGenerateTask(String... additionalArgs) {
2727
List<String> args = new ArrayList<>()
2828
args.add(":myserver:generateTransportVersion")
29-
args.addAll(additionalArgs);
29+
args.addAll(additionalArgs)
3030
return gradleRunner(args.toArray())
3131
}
3232

@@ -283,77 +283,6 @@ class TransportVersionGenerationFuncTest extends AbstractTransportVersionFuncTes
283283
assertUpperBound("9.2", "second_tv,8124000")
284284
}
285285

286-
def "update flag works with current"() {
287-
given:
288-
referableAndReferencedTransportVersion("new_tv", "8123000")
289-
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
290-
"""
291-
<<<<<<< HEAD
292-
existing_92,8123000
293-
=======
294-
new_tv,8123000
295-
>>>>>> name
296-
""".strip()
297-
298-
when:
299-
def result = runGenerateAndValidateTask("--resolve-conflict").build()
300-
301-
then:
302-
assertGenerateAndValidateSuccess(result)
303-
assertReferableDefinition("existing_92", "8123000,8012001")
304-
assertReferableDefinition("new_tv", "8124000")
305-
assertUpperBound("9.2", "new_tv,8124000")
306-
}
307-
308-
def "update flag works with multiple branches"() {
309-
given:
310-
referableAndReferencedTransportVersion("new_tv", "8123000,8012001,7123001")
311-
file("myserver/src/main/resources/transport/latest/9.2.csv").text =
312-
"""
313-
<<<<<<< HEAD
314-
existing_92,8123000
315-
=======
316-
new_tv,8123000
317-
>>>>>> name
318-
""".strip()
319-
file("myserver/src/main/resources/transport/latest/9.1.csv").text =
320-
"""
321-
<<<<<<< HEAD
322-
existing_92,8012001
323-
=======
324-
new_tv,8012001
325-
>>>>>> name
326-
""".strip()
327-
file("myserver/src/main/resources/transport/latest/8.19.csv").text =
328-
"""
329-
<<<<<<< HEAD
330-
initial_8.19.7,7123001
331-
=======
332-
new_tv,7123001
333-
>>>>>> name
334-
""".strip()
335-
336-
when:
337-
def result = runGenerateAndValidateTask("--resolve-conflict").build()
338-
339-
then:
340-
assertGenerateAndValidateSuccess(result)
341-
assertReferableDefinition("existing_92", "8123000,8012001")
342-
assertUnreferableDefinition("initial_8.19.7", "7123001")
343-
assertReferableDefinition("new_tv", "8124000,8012002,7123002")
344-
assertUpperBound("9.2", "new_tv,8124000")
345-
assertUpperBound("9.1", "new_tv,8012002")
346-
assertUpperBound("8.19", "new_tv,7123002")
347-
}
348-
349-
def "update flag cannot be used with backport branches"() {
350-
when:
351-
def result = runGenerateTask("--resolve-conflict", "--backport-branches=9.1").buildAndFail()
352-
353-
then:
354-
assertGenerateFailure(result, "Cannot use --resolve-conflict with --backport-branches")
355-
}
356-
357286
def "branches param order does not matter"() {
358287
given:
359288
referencedTransportVersion("test_tv")

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

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -74,11 +74,7 @@ public abstract class GenerateTransportVersionDefinitionTask extends DefaultTask
7474

7575
@Input
7676
@Optional
77-
@Option(
78-
option = "resolve-conflict",
79-
description = "Regenerate the transport version currently being added to upstream to resolve a merge conflict"
80-
)
81-
public abstract Property<Boolean> getResolveConflict();
77+
abstract Property<Boolean> getResolveConflict();
8278

8379
/**
8480
* The name of the upper bounds file which will be used at runtime on the current branch. Normally

0 commit comments

Comments
 (0)