Skip to content

Commit a3a4918

Browse files
committed
Rename initial to unreferenced in transport versions (elastic#133082)
The concept of "initial" transport version is broader than just the initial ids created for releases. There are several cases where ids were skipped for various reasons. In order to ensure validation can still work (eg density of base ids), this commit broadens the concept to a place we can define any unreferenced transport version.
1 parent 3a42af7 commit a3a4918

File tree

4 files changed

+31
-11
lines changed

4 files changed

+31
-11
lines changed

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

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -42,8 +42,12 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
4242
}
4343
}
4444

45-
def definedTransportVersion(String name, String ids) {
46-
javaResource("myserver", "transport/defined/" + name + ".csv", ids)
45+
def namedTransportVersion(String name, String ids) {
46+
javaResource("myserver", "transport/definitions/named/" + name + ".csv", ids)
47+
}
48+
49+
def unreferencedTransportVersion(String name, String id) {
50+
javaResource("myserver", "transport/definitions/unreferenced/" + name + ".csv", id)
4751
}
4852

4953
def definedAndUsedTransportVersion(String name, String ids) {
@@ -54,7 +58,7 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
5458
javaSource("myserver", "org.elasticsearch", classname, "", """
5559
static final TransportVersion usage = TransportVersion.fromName("${name}");
5660
""")
57-
definedTransportVersion(name, ids)
61+
namedTransportVersion(name, ids)
5862
}
5963

6064
def latestTransportVersion(String branch, String name, String id) {
@@ -95,8 +99,9 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
9599
apply plugin: 'elasticsearch.transport-version-references'
96100
apply plugin: 'elasticsearch.transport-version-resources'
97101
"""
98-
definedTransportVersion("existing_91", "8012000")
99-
definedTransportVersion("existing_92", "8123000,8012001")
102+
namedTransportVersion("existing_91", "8012000")
103+
namedTransportVersion("existing_92", "8123000,8012001")
104+
unreferencedTransportVersion("initial_9_0_0", "8000000")
100105
latestTransportVersion("9.2", "existing_92", "8123000")
101106
latestTransportVersion("9.1", "existing_92", "8012001")
102107
// a mock version of TransportVersion, just here so we can compile Dummy.java et al
@@ -148,7 +153,7 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
148153

149154
def "references must be defined"() {
150155
given:
151-
definedTransportVersion("not_used", "1000000")
156+
namedTransportVersion("not_used", "1000000")
152157
when:
153158
def result = validateDefinitionsFails()
154159
then:
@@ -213,7 +218,7 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
213218

214219
def "definitions have primary ids which cannot change"() {
215220
given:
216-
definedTransportVersion("existing_92", "8500000")
221+
namedTransportVersion("existing_92", "8500000")
217222
when:
218223
def result = validateDefinitionsFails()
219224
then:
@@ -223,7 +228,7 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
223228

224229
def "cannot change committed ids to a branch"() {
225230
given:
226-
definedTransportVersion("existing_92", "8123000,8012002")
231+
namedTransportVersion("existing_92", "8123000,8012002")
227232
when:
228233
def result = validateDefinitionsFails()
229234
then:
@@ -298,4 +303,14 @@ class TransportVersionManagementPluginFuncTest extends AbstractGradleFuncTest {
298303
assertDefinitionsFailure(result, "Transport version definition file " +
299304
"[myserver/src/main/resources/transport/defined/patch.csv] has patch version 8015001 as primary id")
300305
}
306+
307+
def "unreferenced directory is optional"() {
308+
given:
309+
file("myserver/src/main/resources/transport/unreferenced/initial_9_0_0.csv").delete()
310+
file("myserver/src/main/resources/transport/unreferenced").deleteDir()
311+
when:
312+
def result = gradleRunner(":myserver:validateTransportVersionDefinitions").build()
313+
then:
314+
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
315+
}
301316
}

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

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,9 +110,14 @@ public void validateTransportVersions() throws IOException {
110110
// now load all definitions, do some validation and record them by various keys for later quick lookup
111111
// NOTE: this must run after loading referenced names and existing definitions
112112
// NOTE: this is sorted so that the order of cross validation is deterministic
113-
try (var definitionsStream = Files.list(definitionsDir).sorted()) {
114-
for (var definitionFile : definitionsStream.toList()) {
115-
recordAndValidateDefinition(readDefinitionFile(definitionFile));
113+
for (String subDirName : List.of("unreferenced", "named")) {
114+
Path subDir = definitionsDir.resolve(subDirName);
115+
if (Files.isDirectory(subDir)) {
116+
try (var definitionsStream = Files.list(subDir).sorted()) {
117+
for (var definitionFile : definitionsStream.toList()) {
118+
recordAndValidateDefinition(readDefinitionFile(definitionFile));
119+
}
120+
}
116121
}
117122
}
118123

0 commit comments

Comments
 (0)