Skip to content

Commit e27722f

Browse files
authored
Merge branch 'main' into SEARCH-1027-linear-retriever-top-level-option-for-normalizer
2 parents 2bc12ec + 917baf3 commit e27722f

File tree

68 files changed

+996
-384
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+996
-384
lines changed

.claude/settings.local.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
{
2+
"permissions": {
3+
"allow": [
4+
"Bash(./gradlew precommit:*)",
5+
"Bash(./gradlew:*)"
6+
],
7+
"deny": [],
8+
"ask": []
9+
}
10+
}

bin/chezmoi

32.1 MB
Binary file not shown.

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -167,6 +167,11 @@ class InternalDistributionDownloadPluginFuncTest extends AbstractGradleFuncTest
167167
}
168168
}
169169
}
170+
171+
tasks.named('assemble').configure {
172+
dependsOn buildTar
173+
}
174+
170175
artifacts {
171176
it.add("default", buildTar)
172177
it.add("extracted", buildExpanded)

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

Lines changed: 8 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,11 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
4141
javaResource("myserver", "transport/definitions/unreferenced/" + name + ".csv", id)
4242
}
4343

44-
def definedAndUsedTransportVersion(String name, String ids) {
45-
return definedAndUsedTransportVersion(name, ids, "Test${name.capitalize()}")
44+
def namedAndReferencedTransportVersion(String name, String ids) {
45+
return namedAndReferencedTransportVersion(name, ids, "Test${name.capitalize()}")
4646
}
4747

48-
def definedAndUsedTransportVersion(String name, String ids, String classname) {
48+
def namedAndReferencedTransportVersion(String name, String ids, String classname) {
4949
javaSource("myserver", "org.elasticsearch", classname, "", """
5050
static final TransportVersion usage = TransportVersion.fromName("${name}");
5151
""")
@@ -60,17 +60,17 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
6060
return gradleRunner(":${project}:validateTransportVersionReferences").buildAndFail()
6161
}
6262

63-
def validateDefinitionsFails() {
64-
return gradleRunner(":myserver:validateTransportVersionDefinitions").buildAndFail()
63+
def validateResourcesFails() {
64+
return gradleRunner(":myserver:validateTransportVersionResources").buildAndFail()
6565
}
6666

67-
def assertReferencesFailure(BuildResult result, String project, String expectedOutput) {
67+
def assertValidateReferencesFailure(BuildResult result, String project, String expectedOutput) {
6868
result.task(":${project}:validateTransportVersionReferences").outcome == TaskOutcome.FAILED
6969
assertOutputContains(result.output, expectedOutput)
7070
}
7171

72-
def assertDefinitionsFailure(BuildResult result, String expectedOutput) {
73-
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.FAILED
72+
def assertValidateResourcesFailure(BuildResult result, String expectedOutput) {
73+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.FAILED
7474
assertOutputContains(result.output, expectedOutput)
7575
}
7676

@@ -81,9 +81,6 @@ class AbstractTransportVersionFuncTest extends AbstractGradleFuncTest {
8181
include ':myserver'
8282
include ':myplugin'
8383
"""
84-
file("gradle.properties") << """
85-
org.elasticsearch.transport.definitionsProject=:myserver
86-
"""
8784

8885
file("myserver/build.gradle") << """
8986
apply plugin: 'java-library'

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

Lines changed: 77 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,9 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
1616

1717
def "test setup works"() {
1818
when:
19-
def result = gradleRunner("validateTransportVersionDefinitions", "validateTransportVersionReferences").build()
19+
def result = gradleRunner("validateTransportVersionResources", "validateTransportVersionReferences").build()
2020
then:
21-
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
21+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
2222
result.task(":myserver:validateTransportVersionReferences").outcome == TaskOutcome.SUCCESS
2323
result.task(":myplugin:validateTransportVersionReferences").outcome == TaskOutcome.SUCCESS
2424
}
@@ -32,27 +32,27 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
3232
when:
3333
def result = validateReferencesFails("myplugin")
3434
then:
35-
assertReferencesFailure(result, "myplugin", "TransportVersion.fromName(\"dne\") was used at " +
35+
assertValidateReferencesFailure(result, "myplugin", "TransportVersion.fromName(\"dne\") was used at " +
3636
"org.elasticsearch.plugin.MyPlugin line 6, but lacks a transport version definition.")
3737
}
3838

3939
def "references must be defined"() {
4040
given:
4141
namedTransportVersion("not_used", "1000000")
4242
when:
43-
def result = validateDefinitionsFails()
43+
def result = validateResourcesFails()
4444
then:
45-
assertDefinitionsFailure(result, "Transport version definition file " +
45+
assertValidateResourcesFailure(result, "Transport version definition file " +
4646
"[myserver/src/main/resources/transport/definitions/named/not_used.csv] is not referenced")
4747
}
4848

4949
def "names must be lowercase alphanum or underscore"() {
5050
given:
51-
definedAndUsedTransportVersion("${name}", "8100000", "TestNames")
51+
namedAndReferencedTransportVersion("${name}", "8100000", "TestNames")
5252
when:
53-
def result = validateDefinitionsFails()
53+
def result = validateResourcesFails()
5454
then:
55-
assertDefinitionsFailure(result, "Transport version definition file " +
55+
assertValidateResourcesFailure(result, "Transport version definition file " +
5656
"[myserver/src/main/resources/transport/definitions/named/${name}.csv] does not have a valid name, " +
5757
"must be lowercase alphanumeric and underscore")
5858

@@ -62,130 +62,130 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
6262

6363
def "definitions contain at least one id"() {
6464
given:
65-
definedAndUsedTransportVersion("empty", "")
65+
namedAndReferencedTransportVersion("empty", "")
6666
when:
67-
def result = validateDefinitionsFails()
67+
def result = validateResourcesFails()
6868
then:
69-
assertDefinitionsFailure(result, "Transport version definition file " +
69+
assertValidateResourcesFailure(result, "Transport version definition file " +
7070
"[myserver/src/main/resources/transport/definitions/named/empty.csv] does not contain any ids")
7171
}
7272

7373
def "definitions have ids in descending order"() {
7474
given:
75-
definedAndUsedTransportVersion("out_of_order", "8100000,8200000")
75+
namedAndReferencedTransportVersion("out_of_order", "8100000,8200000")
7676
when:
77-
def result = validateDefinitionsFails()
77+
def result = validateResourcesFails()
7878
then:
79-
assertDefinitionsFailure(result, "Transport version definition file " +
79+
assertValidateResourcesFailure(result, "Transport version definition file " +
8080
"[myserver/src/main/resources/transport/definitions/named/out_of_order.csv] does not have ordered ids")
8181
}
8282

8383
def "definition ids are unique"() {
8484
given:
85-
definedAndUsedTransportVersion("duplicate", "8123000")
85+
namedAndReferencedTransportVersion("duplicate", "8123000")
8686
when:
87-
def result = validateDefinitionsFails()
87+
def result = validateResourcesFails()
8888
then:
89-
assertDefinitionsFailure(result, "Transport version definition file " +
89+
assertValidateResourcesFailure(result, "Transport version definition file " +
9090
"[myserver/src/main/resources/transport/definitions/named/existing_92.csv] contains id 8123000 already defined in " +
9191
"[myserver/src/main/resources/transport/definitions/named/duplicate.csv]")
9292
}
9393

9494
def "definitions have bwc ids with non-zero patch part"() {
9595
given:
96-
definedAndUsedTransportVersion("patched", "8200000,8100000")
96+
namedAndReferencedTransportVersion("patched", "8200000,8100000")
9797
when:
98-
def result = validateDefinitionsFails()
98+
def result = validateResourcesFails()
9999
then:
100-
assertDefinitionsFailure(result, "Transport version definition file " +
100+
assertValidateResourcesFailure(result, "Transport version definition file " +
101101
"[myserver/src/main/resources/transport/definitions/named/patched.csv] contains bwc id [8100000] with a patch part of 0")
102102
}
103103

104104
def "definitions have primary ids which cannot change"() {
105105
given:
106106
namedTransportVersion("existing_92", "8500000")
107107
when:
108-
def result = validateDefinitionsFails()
108+
def result = validateResourcesFails()
109109
then:
110-
assertDefinitionsFailure(result, "Transport version definition file " +
110+
assertValidateResourcesFailure(result, "Transport version definition file " +
111111
"[myserver/src/main/resources/transport/definitions/named/existing_92.csv] has modified primary id from 8123000 to 8500000")
112112
}
113113

114114
def "cannot change committed ids to a branch"() {
115115
given:
116116
namedTransportVersion("existing_92", "8123000,8012002")
117117
when:
118-
def result = validateDefinitionsFails()
118+
def result = validateResourcesFails()
119119
then:
120-
assertDefinitionsFailure(result, "Transport version definition file " +
120+
assertValidateResourcesFailure(result, "Transport version definition file " +
121121
"[myserver/src/main/resources/transport/definitions/named/existing_92.csv] modifies existing patch id from 8012001 to 8012002")
122122
}
123123

124124
def "latest files must reference defined name"() {
125125
given:
126126
latestTransportVersion("9.2", "dne", "8123000")
127127
when:
128-
def result = validateDefinitionsFails()
128+
def result = validateResourcesFails()
129129
then:
130-
assertDefinitionsFailure(result, "Latest transport version file " +
130+
assertValidateResourcesFailure(result, "Latest transport version file " +
131131
"[myserver/src/main/resources/transport/latest/9.2.csv] contains transport version name [dne] which is not defined")
132132
}
133133

134134
def "latest files id must exist in definition"() {
135135
given:
136136
latestTransportVersion("9.2", "existing_92", "8124000")
137137
when:
138-
def result = validateDefinitionsFails()
138+
def result = validateResourcesFails()
139139
then:
140-
assertDefinitionsFailure(result, "Latest transport version file " +
140+
assertValidateResourcesFailure(result, "Latest transport version file " +
141141
"[myserver/src/main/resources/transport/latest/9.2.csv] has id 8124000 which is not in definition " +
142142
"[myserver/src/main/resources/transport/definitions/named/existing_92.csv]")
143143
}
144144

145145
def "latest files have latest id within base"() {
146146
given:
147147
latestTransportVersion("9.0", "seemingly_latest", "8110001")
148-
definedAndUsedTransportVersion("original", "8110000")
149-
definedAndUsedTransportVersion("seemingly_latest", "8111000,8110001")
150-
definedAndUsedTransportVersion("actual_latest", "8112000,8110002")
148+
namedAndReferencedTransportVersion("original", "8110000")
149+
namedAndReferencedTransportVersion("seemingly_latest", "8111000,8110001")
150+
namedAndReferencedTransportVersion("actual_latest", "8112000,8110002")
151151
when:
152-
def result = validateDefinitionsFails()
152+
def result = validateResourcesFails()
153153
then:
154-
assertDefinitionsFailure(result, "Latest transport version file " +
154+
assertValidateResourcesFailure(result, "Latest transport version file " +
155155
"[myserver/src/main/resources/transport/latest/9.0.csv] has id 8110001 from [seemingly_latest] with base 8110000 " +
156156
"but another id 8110002 from [actual_latest] is later for that base")
157157
}
158158

159159
def "latest files cannot change base id"() {
160160
given:
161-
definedAndUsedTransportVersion("original", "8013000")
162-
definedAndUsedTransportVersion("patch", "8015000,8013001")
161+
namedAndReferencedTransportVersion("original", "8013000")
162+
namedAndReferencedTransportVersion("patch", "8015000,8013001")
163163
latestTransportVersion("9.1", "patch", "8013001")
164164
when:
165-
def result = validateDefinitionsFails()
165+
def result = validateResourcesFails()
166166
then:
167-
assertDefinitionsFailure(result, "Latest transport version file " +
167+
assertValidateResourcesFailure(result, "Latest transport version file " +
168168
"[myserver/src/main/resources/transport/latest/9.1.csv] modifies base id from 8012000 to 8013000")
169169
}
170170

171171
def "ids must be dense"() {
172172
given:
173-
definedAndUsedTransportVersion("original", "8013000")
174-
definedAndUsedTransportVersion("patch1", "8015000,8013002")
173+
namedAndReferencedTransportVersion("original", "8013000")
174+
namedAndReferencedTransportVersion("patch1", "8015000,8013002")
175175
latestTransportVersion("9.0", "patch1", "8013002")
176176
when:
177-
def result = validateDefinitionsFails()
177+
def result = validateResourcesFails()
178178
then:
179-
assertDefinitionsFailure(result, "Transport version base id 8013000 is missing patch ids between 8013000 and 8013002")
179+
assertValidateResourcesFailure(result, "Transport version base id 8013000 is missing patch ids between 8013000 and 8013002")
180180
}
181181

182182
def "primary id must not be patch version"() {
183183
given:
184-
definedAndUsedTransportVersion("patch", "8015001")
184+
namedAndReferencedTransportVersion("patch", "8015001")
185185
when:
186-
def result = validateDefinitionsFails()
186+
def result = validateResourcesFails()
187187
then:
188-
assertDefinitionsFailure(result, "Transport version definition file " +
188+
assertValidateResourcesFailure(result, "Transport version definition file " +
189189
"[myserver/src/main/resources/transport/definitions/named/patch.csv] has patch version 8015001 as primary id")
190190
}
191191

@@ -194,8 +194,39 @@ class TransportVersionValidationFuncTest extends AbstractTransportVersionFuncTes
194194
file("myserver/src/main/resources/transport/unreferenced/initial_9_0_0.csv").delete()
195195
file("myserver/src/main/resources/transport/unreferenced").deleteDir()
196196
when:
197-
def result = gradleRunner(":myserver:validateTransportVersionDefinitions").build()
197+
def result = gradleRunner(":myserver:validateTransportVersionResources").build()
198198
then:
199-
result.task(":myserver:validateTransportVersionDefinitions").outcome == TaskOutcome.SUCCESS
199+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
200+
}
201+
202+
def "latest can refer to an unreferenced definition"() {
203+
given:
204+
unreferencedTransportVersion("initial_10.0.0", "10000000")
205+
latestTransportVersion("10.0", "initial_10.0.0", "10000000")
206+
when:
207+
def result = gradleRunner(":myserver:validateTransportVersionResources").build()
208+
then:
209+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
210+
}
211+
212+
def "named and unreferenced definitions cannot have the same name"() {
213+
given:
214+
unreferencedTransportVersion("existing_92", "10000000")
215+
when:
216+
def result = validateResourcesFails()
217+
then:
218+
assertValidateResourcesFailure(result, "Transport version definition file " +
219+
"[myserver/src/main/resources/transport/definitions/named/existing_92.csv] " +
220+
"has same name as unreferenced definition " +
221+
"[myserver/src/main/resources/transport/definitions/unreferenced/existing_92.csv]")
222+
}
223+
224+
def "unreferenced definitions can have primary ids that are patches"() {
225+
given:
226+
unreferencedTransportVersion("initial_10.0.1", "10000001")
227+
when:
228+
def result = gradleRunner(":myserver:validateTransportVersionResources").build()
229+
then:
230+
result.task(":myserver:validateTransportVersionResources").outcome == TaskOutcome.SUCCESS
200231
}
201232
}

build-tools-internal/src/main/groovy/elasticsearch.fips.gradle

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,11 @@ if (buildParams.inFipsJvm) {
2323
File fipsSecurity = new File(fipsResourcesDir, javaSecurityFilename)
2424
File fipsPolicy = new File(fipsResourcesDir, 'fips_java.policy')
2525
File fipsTrustStore = new File(fipsResourcesDir, 'cacerts.bcfks')
26-
def bcFips = dependencies.create('org.bouncycastle:bc-fips:1.0.2.5')
26+
def bcFips = dependencies.create('org.bouncycastle:bc-fips:1.0.2.6')
2727
def bcTlsFips = dependencies.create('org.bouncycastle:bctls-fips:1.0.19')
2828
def manualDebug = false; //change this to manually debug bouncy castle in an IDE
2929
if(manualDebug) {
30-
bcFips = dependencies.create('org.bouncycastle:bc-fips-debug:1.0.2.5')
30+
bcFips = dependencies.create('org.bouncycastle:bc-fips-debug:1.0.2.6')
3131
bcTlsFips = dependencies.create('org.bouncycastle:bctls-fips:1.0.19'){
3232
exclude group: 'org.bouncycastle', module: 'bc-fips' // to avoid jar hell
3333
}

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ private void registerAndConfigureDistributionArchivesExtension(Project project)
7474
project.project(subProjectName, sub -> {
7575
sub.getPlugins().apply(BasePlugin.class);
7676
sub.getArtifacts().add(DEFAULT_CONFIGURATION_NAME, distributionArchive.getArchiveTask());
77+
sub.getTasks().named("assemble").configure(task -> task.dependsOn(distributionArchive.getArchiveTask()));
7778
var extractedConfiguration = sub.getConfigurations().create(EXTRACTED_CONFIGURATION_NAME);
7879
extractedConfiguration.setCanBeResolved(false);
7980
extractedConfiguration.setCanBeConsumed(true);

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,8 @@ static TransportVersionId fromString(String s) {
2222

2323
@Override
2424
public int compareTo(TransportVersionId o) {
25-
return Integer.compare(complete, o.complete);
25+
// note: this is descending order so the arguments are reversed
26+
return Integer.compare(o.complete, complete);
2627
}
2728

2829
@Override

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,17 +50,17 @@ public void apply(Project project) {
5050
}
5151

5252
var validateTask = project.getTasks()
53-
.register("validateTransportVersionDefinitions", ValidateTransportVersionResourcesTask.class, t -> {
53+
.register("validateTransportVersionResources", ValidateTransportVersionResourcesTask.class, t -> {
5454
t.setGroup("Transport Versions");
55-
t.setDescription("Validates that all defined TransportVersion constants are used in at least one project");
55+
t.setDescription("Validates that all transport version resources are internally consistent with each other");
5656
t.getReferencesFiles().setFrom(tvReferencesConfig);
5757
});
5858
project.getTasks().named(LifecycleBasePlugin.CHECK_TASK_NAME).configure(t -> t.dependsOn(validateTask));
5959

6060
var generateManifestTask = project.getTasks()
6161
.register("generateTransportVersionManifest", GenerateTransportVersionManifestTask.class, t -> {
6262
t.setGroup("Transport Versions");
63-
t.setDescription("Generate a manifest resource for all the known transport version definitions");
63+
t.setDescription("Generate a manifest resource for all transport version definitions");
6464
t.getManifestFile().set(project.getLayout().getBuildDirectory().file("generated-resources/manifest.txt"));
6565
});
6666
project.getTasks().named(JavaPlugin.PROCESS_RESOURCES_TASK_NAME, Copy.class).configure(t -> {

0 commit comments

Comments
 (0)