mirror of
https://github.com/elastic/elasticsearch.git
synced 2025-04-25 07:37:19 -04:00
Merge revision ce2a7dee86
into multi-project
This commit is contained in:
commit
affd6dfb5b
357 changed files with 9574 additions and 2238 deletions
|
@ -56,7 +56,7 @@ steps:
|
||||||
timeout_in_minutes: 300
|
timeout_in_minutes: 300
|
||||||
matrix:
|
matrix:
|
||||||
setup:
|
setup:
|
||||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
image: family/elasticsearch-ubuntu-2004
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
|
|
@ -10,6 +10,7 @@ steps:
|
||||||
- debian-12
|
- debian-12
|
||||||
- opensuse-leap-15
|
- opensuse-leap-15
|
||||||
- oraclelinux-8
|
- oraclelinux-8
|
||||||
|
- oraclelinux-9
|
||||||
- sles-15
|
- sles-15
|
||||||
- ubuntu-2004
|
- ubuntu-2004
|
||||||
- ubuntu-2204
|
- ubuntu-2204
|
||||||
|
|
|
@ -11,6 +11,7 @@ steps:
|
||||||
- debian-12
|
- debian-12
|
||||||
- opensuse-leap-15
|
- opensuse-leap-15
|
||||||
- oraclelinux-8
|
- oraclelinux-8
|
||||||
|
- oraclelinux-9
|
||||||
- sles-15
|
- sles-15
|
||||||
- ubuntu-2004
|
- ubuntu-2004
|
||||||
- ubuntu-2204
|
- ubuntu-2204
|
||||||
|
@ -301,8 +302,8 @@ steps:
|
||||||
env:
|
env:
|
||||||
BWC_VERSION: 8.16.2
|
BWC_VERSION: 8.16.2
|
||||||
|
|
||||||
- label: "{{matrix.image}} / 8.17.0 / packaging-tests-upgrade"
|
- label: "{{matrix.image}} / 8.17.1 / packaging-tests-upgrade"
|
||||||
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.17.0
|
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.17.1
|
||||||
timeout_in_minutes: 300
|
timeout_in_minutes: 300
|
||||||
matrix:
|
matrix:
|
||||||
setup:
|
setup:
|
||||||
|
@ -315,7 +316,7 @@ steps:
|
||||||
machineType: custom-16-32768
|
machineType: custom-16-32768
|
||||||
buildDirectory: /dev/shm/bk
|
buildDirectory: /dev/shm/bk
|
||||||
env:
|
env:
|
||||||
BWC_VERSION: 8.17.0
|
BWC_VERSION: 8.17.1
|
||||||
|
|
||||||
- label: "{{matrix.image}} / 8.18.0 / packaging-tests-upgrade"
|
- label: "{{matrix.image}} / 8.18.0 / packaging-tests-upgrade"
|
||||||
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.18.0
|
command: ./.ci/scripts/packaging-test.sh -Dbwc.checkout.align=true destructiveDistroUpgradeTest.v8.18.0
|
||||||
|
|
|
@ -10,6 +10,7 @@ steps:
|
||||||
- debian-12
|
- debian-12
|
||||||
- opensuse-leap-15
|
- opensuse-leap-15
|
||||||
- oraclelinux-8
|
- oraclelinux-8
|
||||||
|
- oraclelinux-9
|
||||||
- sles-15
|
- sles-15
|
||||||
- ubuntu-2004
|
- ubuntu-2004
|
||||||
- ubuntu-2204
|
- ubuntu-2204
|
||||||
|
|
|
@ -325,8 +325,8 @@ steps:
|
||||||
- signal_reason: agent_stop
|
- signal_reason: agent_stop
|
||||||
limit: 3
|
limit: 3
|
||||||
|
|
||||||
- label: 8.17.0 / bwc
|
- label: 8.17.1 / bwc
|
||||||
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.17.0#bwcTest
|
command: .ci/scripts/run-gradle.sh -Dbwc.checkout.align=true v8.17.1#bwcTest
|
||||||
timeout_in_minutes: 300
|
timeout_in_minutes: 300
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
|
@ -335,7 +335,7 @@ steps:
|
||||||
buildDirectory: /dev/shm/bk
|
buildDirectory: /dev/shm/bk
|
||||||
preemptible: true
|
preemptible: true
|
||||||
env:
|
env:
|
||||||
BWC_VERSION: 8.17.0
|
BWC_VERSION: 8.17.1
|
||||||
retry:
|
retry:
|
||||||
automatic:
|
automatic:
|
||||||
- exit_status: "-1"
|
- exit_status: "-1"
|
||||||
|
@ -448,7 +448,7 @@ steps:
|
||||||
setup:
|
setup:
|
||||||
ES_RUNTIME_JAVA:
|
ES_RUNTIME_JAVA:
|
||||||
- openjdk21
|
- openjdk21
|
||||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
image: family/elasticsearch-ubuntu-2004
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
@ -490,7 +490,7 @@ steps:
|
||||||
ES_RUNTIME_JAVA:
|
ES_RUNTIME_JAVA:
|
||||||
- openjdk21
|
- openjdk21
|
||||||
- openjdk23
|
- openjdk23
|
||||||
BWC_VERSION: ["8.16.2", "8.17.0", "8.18.0", "9.0.0"]
|
BWC_VERSION: ["8.16.2", "8.17.1", "8.18.0", "9.0.0"]
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
image: family/elasticsearch-ubuntu-2004
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
|
|
@ -13,6 +13,7 @@ steps:
|
||||||
- debian-12
|
- debian-12
|
||||||
- opensuse-leap-15
|
- opensuse-leap-15
|
||||||
- oraclelinux-8
|
- oraclelinux-8
|
||||||
|
- oraclelinux-9
|
||||||
- sles-15
|
- sles-15
|
||||||
- ubuntu-2004
|
- ubuntu-2004
|
||||||
- ubuntu-2204
|
- ubuntu-2204
|
||||||
|
|
11
.buildkite/pipelines/pull-request/part-1-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-1-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
config:
|
||||||
|
allow-labels: "test-entitlements"
|
||||||
|
steps:
|
||||||
|
- label: part-1-entitlements
|
||||||
|
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart1
|
||||||
|
timeout_in_minutes: 300
|
||||||
|
agents:
|
||||||
|
provider: gcp
|
||||||
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
machineType: custom-32-98304
|
||||||
|
buildDirectory: /dev/shm/bk
|
|
@ -1,6 +1,8 @@
|
||||||
steps:
|
steps:
|
||||||
- label: part-1
|
- label: part-1
|
||||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed checkPart1
|
command: |
|
||||||
|
.buildkite/scripts/spotless.sh # This doesn't have to be part of part-1, it was just a convenient place to put it
|
||||||
|
.ci/scripts/run-gradle.sh -Dignore.tests.seed checkPart1
|
||||||
timeout_in_minutes: 300
|
timeout_in_minutes: 300
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
|
|
11
.buildkite/pipelines/pull-request/part-2-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-2-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
config:
|
||||||
|
allow-labels: "test-entitlements"
|
||||||
|
steps:
|
||||||
|
- label: part-2-entitlements
|
||||||
|
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart2
|
||||||
|
timeout_in_minutes: 300
|
||||||
|
agents:
|
||||||
|
provider: gcp
|
||||||
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
machineType: custom-32-98304
|
||||||
|
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-3-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-3-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
config:
|
||||||
|
allow-labels: "test-entitlements"
|
||||||
|
steps:
|
||||||
|
- label: part-3-entitlements
|
||||||
|
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart3
|
||||||
|
timeout_in_minutes: 300
|
||||||
|
agents:
|
||||||
|
provider: gcp
|
||||||
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
machineType: custom-32-98304
|
||||||
|
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-4-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-4-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
config:
|
||||||
|
allow-labels: "test-entitlements"
|
||||||
|
steps:
|
||||||
|
- label: part-4-entitlements
|
||||||
|
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart4
|
||||||
|
timeout_in_minutes: 300
|
||||||
|
agents:
|
||||||
|
provider: gcp
|
||||||
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
machineType: custom-32-98304
|
||||||
|
buildDirectory: /dev/shm/bk
|
11
.buildkite/pipelines/pull-request/part-5-entitlements.yml
Normal file
11
.buildkite/pipelines/pull-request/part-5-entitlements.yml
Normal file
|
@ -0,0 +1,11 @@
|
||||||
|
config:
|
||||||
|
allow-labels: "test-entitlements"
|
||||||
|
steps:
|
||||||
|
- label: part-5-entitlements
|
||||||
|
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed -Dtests.jvm.argline="-Des.entitlements.enabled=true" checkPart5
|
||||||
|
timeout_in_minutes: 300
|
||||||
|
agents:
|
||||||
|
provider: gcp
|
||||||
|
image: family/elasticsearch-ubuntu-2004
|
||||||
|
machineType: custom-32-98304
|
||||||
|
buildDirectory: /dev/shm/bk
|
|
@ -3,7 +3,9 @@ config:
|
||||||
skip-labels: []
|
skip-labels: []
|
||||||
steps:
|
steps:
|
||||||
- label: precommit
|
- label: precommit
|
||||||
command: .ci/scripts/run-gradle.sh -Dignore.tests.seed precommit
|
command: |
|
||||||
|
.buildkite/scripts/spotless.sh
|
||||||
|
.ci/scripts/run-gradle.sh -Dignore.tests.seed precommit
|
||||||
timeout_in_minutes: 300
|
timeout_in_minutes: 300
|
||||||
agents:
|
agents:
|
||||||
provider: gcp
|
provider: gcp
|
||||||
|
|
44
.buildkite/scripts/spotless.sh
Executable file
44
.buildkite/scripts/spotless.sh
Executable file
|
@ -0,0 +1,44 @@
|
||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
if [[ -z "${BUILDKITE_PULL_REQUEST:-}" ]]; then
|
||||||
|
echo "Not a pull request, skipping spotless"
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if ! git diff --exit-code; then
|
||||||
|
echo "Changes are present before running spotless, not running"
|
||||||
|
git status
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
NEW_COMMIT_MESSAGE="[CI] Auto commit changes from spotless"
|
||||||
|
PREVIOUS_COMMIT_MESSAGE="$(git log -1 --pretty=%B)"
|
||||||
|
|
||||||
|
echo "--- Running spotless"
|
||||||
|
.ci/scripts/run-gradle.sh -Dscan.tag.NESTED spotlessApply
|
||||||
|
|
||||||
|
if git diff --exit-code; then
|
||||||
|
echo "No changes found after running spotless. Don't need to auto commit."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
if [[ "$NEW_COMMIT_MESSAGE" == "$PREVIOUS_COMMIT_MESSAGE" ]]; then
|
||||||
|
echo "Changes found after running spotless"
|
||||||
|
echo "CI already attempted to commit these changes, but the file(s) seem to have changed again."
|
||||||
|
echo "Please review and fix manually."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
git config --global user.name elasticsearchmachine
|
||||||
|
git config --global user.email 'infra-root+elasticsearchmachine@elastic.co'
|
||||||
|
|
||||||
|
gh pr checkout "${BUILDKITE_PULL_REQUEST}"
|
||||||
|
git add -u .
|
||||||
|
git commit -m "$NEW_COMMIT_MESSAGE"
|
||||||
|
git push
|
||||||
|
|
||||||
|
# After the git push, the new commit will trigger a new build within a few seconds and this build should get cancelled
|
||||||
|
# So, let's just sleep to give the build time to cancel itself without an error
|
||||||
|
# If it doesn't get cancelled for some reason, then exit with an error, because we don't want this build to be green (we just don't want it to generate an error either)
|
||||||
|
sleep 300
|
||||||
|
exit 1
|
|
@ -16,6 +16,6 @@ BWC_VERSION:
|
||||||
- "8.14.3"
|
- "8.14.3"
|
||||||
- "8.15.5"
|
- "8.15.5"
|
||||||
- "8.16.2"
|
- "8.16.2"
|
||||||
- "8.17.0"
|
- "8.17.1"
|
||||||
- "8.18.0"
|
- "8.18.0"
|
||||||
- "9.0.0"
|
- "9.0.0"
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
BWC_VERSION:
|
BWC_VERSION:
|
||||||
- "8.16.2"
|
- "8.16.2"
|
||||||
- "8.17.0"
|
- "8.17.1"
|
||||||
- "8.18.0"
|
- "8.18.0"
|
||||||
- "9.0.0"
|
- "9.0.0"
|
||||||
|
|
|
@ -439,7 +439,7 @@ class PublishPluginFuncTest extends AbstractGradleFuncTest {
|
||||||
// scm info only added for internal builds
|
// scm info only added for internal builds
|
||||||
internalBuild()
|
internalBuild()
|
||||||
buildFile << """
|
buildFile << """
|
||||||
buildParams.getGitOriginProperty().set("https://some-repo.com/repo.git")
|
buildParams.setGitOrigin("https://some-repo.com/repo.git")
|
||||||
apply plugin:'elasticsearch.java'
|
apply plugin:'elasticsearch.java'
|
||||||
apply plugin:'elasticsearch.publish'
|
apply plugin:'elasticsearch.publish'
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@ public enum DockerBase {
|
||||||
// Chainguard based wolfi image with latest jdk
|
// Chainguard based wolfi image with latest jdk
|
||||||
// This is usually updated via renovatebot
|
// This is usually updated via renovatebot
|
||||||
// spotless:off
|
// spotless:off
|
||||||
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:32f06b169bb4b0f257fbb10e8c8379f06d3ee1355c89b3327cb623781a29590e",
|
WOLFI("docker.elastic.co/wolfi/chainguard-base:latest@sha256:1b51ff6dba78c98d3e02b0cd64a8ce3238c7a40408d21e3af12a329d44db6f23",
|
||||||
"-wolfi",
|
"-wolfi",
|
||||||
"apk"
|
"apk"
|
||||||
),
|
),
|
||||||
|
|
|
@ -132,7 +132,7 @@ public class ElasticsearchJavaBasePlugin implements Plugin<Project> {
|
||||||
public void configureCompile(Project project) {
|
public void configureCompile(Project project) {
|
||||||
project.getExtensions().getExtraProperties().set("compactProfile", "full");
|
project.getExtensions().getExtraProperties().set("compactProfile", "full");
|
||||||
JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
|
JavaPluginExtension java = project.getExtensions().getByType(JavaPluginExtension.class);
|
||||||
if (buildParams.getJavaToolChainSpec().isPresent()) {
|
if (buildParams.getJavaToolChainSpec().getOrNull() != null) {
|
||||||
java.toolchain(buildParams.getJavaToolChainSpec().get());
|
java.toolchain(buildParams.getJavaToolChainSpec().get());
|
||||||
}
|
}
|
||||||
java.setSourceCompatibility(buildParams.getMinimumRuntimeVersion());
|
java.setSourceCompatibility(buildParams.getMinimumRuntimeVersion());
|
||||||
|
|
|
@ -13,7 +13,6 @@ import com.github.jengelman.gradle.plugins.shadow.ShadowBasePlugin;
|
||||||
|
|
||||||
import org.elasticsearch.gradle.OS;
|
import org.elasticsearch.gradle.OS;
|
||||||
import org.elasticsearch.gradle.internal.conventions.util.Util;
|
import org.elasticsearch.gradle.internal.conventions.util.Util;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||||
import org.elasticsearch.gradle.internal.test.ErrorReportingTestListener;
|
import org.elasticsearch.gradle.internal.test.ErrorReportingTestListener;
|
||||||
import org.elasticsearch.gradle.internal.test.SimpleCommandLineArgumentProvider;
|
import org.elasticsearch.gradle.internal.test.SimpleCommandLineArgumentProvider;
|
||||||
|
@ -27,7 +26,6 @@ import org.gradle.api.Task;
|
||||||
import org.gradle.api.artifacts.Configuration;
|
import org.gradle.api.artifacts.Configuration;
|
||||||
import org.gradle.api.file.FileCollection;
|
import org.gradle.api.file.FileCollection;
|
||||||
import org.gradle.api.plugins.JavaPlugin;
|
import org.gradle.api.plugins.JavaPlugin;
|
||||||
import org.gradle.api.provider.Property;
|
|
||||||
import org.gradle.api.provider.ProviderFactory;
|
import org.gradle.api.provider.ProviderFactory;
|
||||||
import org.gradle.api.tasks.SourceSet;
|
import org.gradle.api.tasks.SourceSet;
|
||||||
import org.gradle.api.tasks.SourceSetContainer;
|
import org.gradle.api.tasks.SourceSetContainer;
|
||||||
|
@ -56,8 +54,7 @@ public abstract class ElasticsearchTestBasePlugin implements Plugin<Project> {
|
||||||
@Override
|
@Override
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
var buildParams = loadBuildParams(project);
|
||||||
|
|
||||||
project.getPluginManager().apply(GradleTestPolicySetupPlugin.class);
|
project.getPluginManager().apply(GradleTestPolicySetupPlugin.class);
|
||||||
// for fips mode check
|
// for fips mode check
|
||||||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||||
|
|
|
@ -66,7 +66,7 @@ public class InternalDistributionBwcSetupPlugin implements Plugin<Project> {
|
||||||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||||
project.getPlugins().apply(JvmToolchainsPlugin.class);
|
project.getPlugins().apply(JvmToolchainsPlugin.class);
|
||||||
toolChainService = project.getExtensions().getByType(JavaToolchainService.class);
|
toolChainService = project.getExtensions().getByType(JavaToolchainService.class);
|
||||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
var buildParams = loadBuildParams(project).get();
|
||||||
Boolean isCi = buildParams.isCi();
|
Boolean isCi = buildParams.isCi();
|
||||||
buildParams.getBwcVersions().forPreviousUnreleased((BwcVersions.UnreleasedVersionInfo unreleasedVersion) -> {
|
buildParams.getBwcVersions().forPreviousUnreleased((BwcVersions.UnreleasedVersionInfo unreleasedVersion) -> {
|
||||||
configureBwcProject(
|
configureBwcProject(
|
||||||
|
|
|
@ -20,7 +20,6 @@ import org.elasticsearch.gradle.distribution.ElasticsearchDistributionTypes;
|
||||||
import org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes;
|
import org.elasticsearch.gradle.internal.distribution.InternalElasticsearchDistributionTypes;
|
||||||
import org.elasticsearch.gradle.internal.docker.DockerSupportPlugin;
|
import org.elasticsearch.gradle.internal.docker.DockerSupportPlugin;
|
||||||
import org.elasticsearch.gradle.internal.docker.DockerSupportService;
|
import org.elasticsearch.gradle.internal.docker.DockerSupportService;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||||
import org.elasticsearch.gradle.util.GradleUtils;
|
import org.elasticsearch.gradle.util.GradleUtils;
|
||||||
import org.gradle.api.GradleException;
|
import org.gradle.api.GradleException;
|
||||||
|
@ -49,7 +48,7 @@ public class InternalDistributionDownloadPlugin implements Plugin<Project> {
|
||||||
// this is needed for isInternal
|
// this is needed for isInternal
|
||||||
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getPluginManager().apply(GlobalBuildInfoPlugin.class);
|
||||||
project.getRootProject().getPluginManager().apply(DockerSupportPlugin.class);
|
project.getRootProject().getPluginManager().apply(DockerSupportPlugin.class);
|
||||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
var buildParams = loadBuildParams(project).get();
|
||||||
|
|
||||||
DistributionDownloadPlugin distributionDownloadPlugin = project.getPlugins().apply(DistributionDownloadPlugin.class);
|
DistributionDownloadPlugin distributionDownloadPlugin = project.getPlugins().apply(DistributionDownloadPlugin.class);
|
||||||
Provider<DockerSupportService> dockerSupport = GradleUtils.getBuildService(
|
Provider<DockerSupportService> dockerSupport = GradleUtils.getBuildService(
|
||||||
|
@ -61,7 +60,7 @@ public class InternalDistributionDownloadPlugin implements Plugin<Project> {
|
||||||
);
|
);
|
||||||
registerInternalDistributionResolutions(
|
registerInternalDistributionResolutions(
|
||||||
DistributionDownloadPlugin.getRegistrationsContainer(project),
|
DistributionDownloadPlugin.getRegistrationsContainer(project),
|
||||||
buildParams.getBwcVersionsProperty()
|
buildParams.getBwcVersionsProvider()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
package org.elasticsearch.gradle.internal;
|
package org.elasticsearch.gradle.internal;
|
||||||
|
|
||||||
import org.elasticsearch.gradle.VersionProperties;
|
import org.elasticsearch.gradle.VersionProperties;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||||
import org.elasticsearch.gradle.testclusters.ElasticsearchCluster;
|
import org.elasticsearch.gradle.testclusters.ElasticsearchCluster;
|
||||||
import org.elasticsearch.gradle.testclusters.TestClustersPlugin;
|
import org.elasticsearch.gradle.testclusters.TestClustersPlugin;
|
||||||
|
@ -26,7 +25,7 @@ public class InternalTestClustersPlugin implements Plugin<Project> {
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
project.getPlugins().apply(InternalDistributionDownloadPlugin.class);
|
project.getPlugins().apply(InternalDistributionDownloadPlugin.class);
|
||||||
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
var buildParams = loadBuildParams(project).get();
|
||||||
project.getRootProject().getPluginManager().apply(InternalReaperPlugin.class);
|
project.getRootProject().getPluginManager().apply(InternalReaperPlugin.class);
|
||||||
TestClustersPlugin testClustersPlugin = project.getPlugins().apply(TestClustersPlugin.class);
|
TestClustersPlugin testClustersPlugin = project.getPlugins().apply(TestClustersPlugin.class);
|
||||||
testClustersPlugin.setRuntimeJava(buildParams.getRuntimeJavaHome());
|
testClustersPlugin.setRuntimeJava(buildParams.getRuntimeJavaHome());
|
||||||
|
|
|
@ -13,175 +13,58 @@ import org.elasticsearch.gradle.internal.BwcVersions;
|
||||||
import org.gradle.api.Action;
|
import org.gradle.api.Action;
|
||||||
import org.gradle.api.JavaVersion;
|
import org.gradle.api.JavaVersion;
|
||||||
import org.gradle.api.Task;
|
import org.gradle.api.Task;
|
||||||
import org.gradle.api.provider.Property;
|
|
||||||
import org.gradle.api.provider.Provider;
|
import org.gradle.api.provider.Provider;
|
||||||
import org.gradle.api.provider.ProviderFactory;
|
|
||||||
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.time.ZoneOffset;
|
|
||||||
import java.time.ZonedDateTime;
|
import java.time.ZonedDateTime;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
import java.util.concurrent.atomic.AtomicReference;
|
|
||||||
|
|
||||||
public abstract class BuildParameterExtension {
|
public interface BuildParameterExtension {
|
||||||
private final Provider<Boolean> inFipsJvm;
|
String EXTENSION_NAME = "buildParams";
|
||||||
private final Provider<File> runtimeJavaHome;
|
|
||||||
private final Boolean isRuntimeJavaHomeSet;
|
|
||||||
private final List<JavaHome> javaVersions;
|
|
||||||
private final JavaVersion minimumCompilerVersion;
|
|
||||||
private final JavaVersion minimumRuntimeVersion;
|
|
||||||
private final JavaVersion gradleJavaVersion;
|
|
||||||
private final Provider<JavaVersion> runtimeJavaVersion;
|
|
||||||
private final Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec;
|
|
||||||
private final Provider<String> runtimeJavaDetails;
|
|
||||||
private final String gitRevision;
|
|
||||||
private transient AtomicReference<ZonedDateTime> buildDate = new AtomicReference<>();
|
|
||||||
private final String testSeed;
|
|
||||||
private final Boolean isCi;
|
|
||||||
private final Integer defaultParallel;
|
|
||||||
private final Boolean isSnapshotBuild;
|
|
||||||
|
|
||||||
public BuildParameterExtension(
|
boolean getInFipsJvm();
|
||||||
ProviderFactory providers,
|
|
||||||
Provider<File> runtimeJavaHome,
|
|
||||||
Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec,
|
|
||||||
Provider<JavaVersion> runtimeJavaVersion,
|
|
||||||
boolean isRuntimeJavaHomeSet,
|
|
||||||
Provider<String> runtimeJavaDetails,
|
|
||||||
List<JavaHome> javaVersions,
|
|
||||||
JavaVersion minimumCompilerVersion,
|
|
||||||
JavaVersion minimumRuntimeVersion,
|
|
||||||
JavaVersion gradleJavaVersion,
|
|
||||||
String gitRevision,
|
|
||||||
String gitOrigin,
|
|
||||||
ZonedDateTime buildDate,
|
|
||||||
String testSeed,
|
|
||||||
boolean isCi,
|
|
||||||
int defaultParallel,
|
|
||||||
final boolean isSnapshotBuild,
|
|
||||||
Provider<BwcVersions> bwcVersions
|
|
||||||
) {
|
|
||||||
this.inFipsJvm = providers.systemProperty("tests.fips.enabled").map(BuildParameterExtension::parseBoolean);
|
|
||||||
this.runtimeJavaHome = runtimeJavaHome;
|
|
||||||
this.javaToolChainSpec = javaToolChainSpec;
|
|
||||||
this.runtimeJavaVersion = runtimeJavaVersion;
|
|
||||||
this.isRuntimeJavaHomeSet = isRuntimeJavaHomeSet;
|
|
||||||
this.runtimeJavaDetails = runtimeJavaDetails;
|
|
||||||
this.javaVersions = javaVersions;
|
|
||||||
this.minimumCompilerVersion = minimumCompilerVersion;
|
|
||||||
this.minimumRuntimeVersion = minimumRuntimeVersion;
|
|
||||||
this.gradleJavaVersion = gradleJavaVersion;
|
|
||||||
this.gitRevision = gitRevision;
|
|
||||||
this.testSeed = testSeed;
|
|
||||||
this.isCi = isCi;
|
|
||||||
this.defaultParallel = defaultParallel;
|
|
||||||
this.isSnapshotBuild = isSnapshotBuild;
|
|
||||||
this.getBwcVersionsProperty().set(bwcVersions);
|
|
||||||
this.getGitOriginProperty().set(gitOrigin);
|
|
||||||
}
|
|
||||||
|
|
||||||
private static boolean parseBoolean(String s) {
|
Provider<File> getRuntimeJavaHome();
|
||||||
if (s == null) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
return Boolean.parseBoolean(s);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean getInFipsJvm() {
|
void withFipsEnabledOnly(Task task);
|
||||||
return inFipsJvm.getOrElse(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provider<File> getRuntimeJavaHome() {
|
Boolean getIsRuntimeJavaHomeSet();
|
||||||
return runtimeJavaHome;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void withFipsEnabledOnly(Task task) {
|
List<JavaHome> getJavaVersions();
|
||||||
task.onlyIf("FIPS mode disabled", task1 -> getInFipsJvm() == false);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean getIsRuntimeJavaHomeSet() {
|
JavaVersion getMinimumCompilerVersion();
|
||||||
return isRuntimeJavaHomeSet;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<JavaHome> getJavaVersions() {
|
JavaVersion getMinimumRuntimeVersion();
|
||||||
return javaVersions;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JavaVersion getMinimumCompilerVersion() {
|
JavaVersion getGradleJavaVersion();
|
||||||
return minimumCompilerVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JavaVersion getMinimumRuntimeVersion() {
|
Provider<JavaVersion> getRuntimeJavaVersion();
|
||||||
return minimumRuntimeVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public JavaVersion getGradleJavaVersion() {
|
Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec();
|
||||||
return gradleJavaVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provider<JavaVersion> getRuntimeJavaVersion() {
|
Provider<String> getRuntimeJavaDetails();
|
||||||
return runtimeJavaVersion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec() {
|
String getGitRevision();
|
||||||
return javaToolChainSpec;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Provider<String> getRuntimeJavaDetails() {
|
String getGitOrigin();
|
||||||
return runtimeJavaDetails;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGitRevision() {
|
ZonedDateTime getBuildDate();
|
||||||
return gitRevision;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getGitOrigin() {
|
String getTestSeed();
|
||||||
return getGitOriginProperty().get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public ZonedDateTime getBuildDate() {
|
Boolean isCi();
|
||||||
ZonedDateTime value = buildDate.get();
|
|
||||||
if (value == null) {
|
|
||||||
value = ZonedDateTime.now(ZoneOffset.UTC);
|
|
||||||
if (buildDate.compareAndSet(null, value) == false) {
|
|
||||||
// If another thread initialized it first, return the initialized value
|
|
||||||
value = buildDate.get();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return value;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getTestSeed() {
|
Integer getDefaultParallel();
|
||||||
return testSeed;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean isCi() {
|
Boolean isSnapshotBuild();
|
||||||
return isCi;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Integer getDefaultParallel() {
|
BwcVersions getBwcVersions();
|
||||||
return defaultParallel;
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean isSnapshotBuild() {
|
Provider<BwcVersions> getBwcVersionsProvider();
|
||||||
return isSnapshotBuild;
|
|
||||||
}
|
|
||||||
|
|
||||||
public BwcVersions getBwcVersions() {
|
Random getRandom();
|
||||||
return getBwcVersionsProperty().get();
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract Property<BwcVersions> getBwcVersionsProperty();
|
Boolean isGraalVmRuntime();
|
||||||
|
|
||||||
public abstract Property<String> getGitOriginProperty();
|
|
||||||
|
|
||||||
public Random getRandom() {
|
|
||||||
return new Random(Long.parseUnsignedLong(testSeed.split(":")[0], 16));
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean isGraalVmRuntime() {
|
|
||||||
return runtimeJavaDetails.get().toLowerCase().contains("graalvm");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,245 @@
|
||||||
|
/*
|
||||||
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||||
|
* or more contributor license agreements. Licensed under the "Elastic License
|
||||||
|
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
||||||
|
* Public License v 1"; you may not use this file except in compliance with, at
|
||||||
|
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
||||||
|
* License v3.0 only", or the "Server Side Public License, v 1".
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.gradle.internal.info;
|
||||||
|
|
||||||
|
import org.elasticsearch.gradle.internal.BwcVersions;
|
||||||
|
import org.gradle.api.Action;
|
||||||
|
import org.gradle.api.JavaVersion;
|
||||||
|
import org.gradle.api.Task;
|
||||||
|
import org.gradle.api.provider.Provider;
|
||||||
|
import org.gradle.api.provider.ProviderFactory;
|
||||||
|
import org.gradle.jvm.toolchain.JavaToolchainSpec;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.time.ZoneOffset;
|
||||||
|
import java.time.ZonedDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Random;
|
||||||
|
import java.util.concurrent.atomic.AtomicReference;
|
||||||
|
import java.util.function.Supplier;
|
||||||
|
|
||||||
|
public abstract class DefaultBuildParameterExtension implements BuildParameterExtension {
|
||||||
|
private final Provider<Boolean> inFipsJvm;
|
||||||
|
private final Provider<File> runtimeJavaHome;
|
||||||
|
private final Boolean isRuntimeJavaHomeSet;
|
||||||
|
private final List<JavaHome> javaVersions;
|
||||||
|
private final JavaVersion minimumCompilerVersion;
|
||||||
|
private final JavaVersion minimumRuntimeVersion;
|
||||||
|
private final JavaVersion gradleJavaVersion;
|
||||||
|
private final Provider<JavaVersion> runtimeJavaVersion;
|
||||||
|
private final Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec;
|
||||||
|
private final Provider<String> runtimeJavaDetails;
|
||||||
|
private final String gitRevision;
|
||||||
|
|
||||||
|
private transient AtomicReference<ZonedDateTime> buildDate = new AtomicReference<>();
|
||||||
|
private final String testSeed;
|
||||||
|
private final Boolean isCi;
|
||||||
|
private final Integer defaultParallel;
|
||||||
|
private final Boolean isSnapshotBuild;
|
||||||
|
|
||||||
|
// not final for testing
|
||||||
|
private Provider<BwcVersions> bwcVersions;
|
||||||
|
private String gitOrigin;
|
||||||
|
|
||||||
|
public DefaultBuildParameterExtension(
|
||||||
|
ProviderFactory providers,
|
||||||
|
Provider<File> runtimeJavaHome,
|
||||||
|
Provider<? extends Action<JavaToolchainSpec>> javaToolChainSpec,
|
||||||
|
Provider<JavaVersion> runtimeJavaVersion,
|
||||||
|
boolean isRuntimeJavaHomeSet,
|
||||||
|
Provider<String> runtimeJavaDetails,
|
||||||
|
List<JavaHome> javaVersions,
|
||||||
|
JavaVersion minimumCompilerVersion,
|
||||||
|
JavaVersion minimumRuntimeVersion,
|
||||||
|
JavaVersion gradleJavaVersion,
|
||||||
|
String gitRevision,
|
||||||
|
String gitOrigin,
|
||||||
|
String testSeed,
|
||||||
|
boolean isCi,
|
||||||
|
int defaultParallel,
|
||||||
|
final boolean isSnapshotBuild,
|
||||||
|
Provider<BwcVersions> bwcVersions
|
||||||
|
) {
|
||||||
|
this.inFipsJvm = providers.systemProperty("tests.fips.enabled").map(DefaultBuildParameterExtension::parseBoolean);
|
||||||
|
this.runtimeJavaHome = cache(providers, runtimeJavaHome);
|
||||||
|
this.javaToolChainSpec = cache(providers, javaToolChainSpec);
|
||||||
|
this.runtimeJavaVersion = cache(providers, runtimeJavaVersion);
|
||||||
|
this.isRuntimeJavaHomeSet = isRuntimeJavaHomeSet;
|
||||||
|
this.runtimeJavaDetails = cache(providers, runtimeJavaDetails);
|
||||||
|
this.javaVersions = javaVersions;
|
||||||
|
this.minimumCompilerVersion = minimumCompilerVersion;
|
||||||
|
this.minimumRuntimeVersion = minimumRuntimeVersion;
|
||||||
|
this.gradleJavaVersion = gradleJavaVersion;
|
||||||
|
this.gitRevision = gitRevision;
|
||||||
|
this.testSeed = testSeed;
|
||||||
|
this.isCi = isCi;
|
||||||
|
this.defaultParallel = defaultParallel;
|
||||||
|
this.isSnapshotBuild = isSnapshotBuild;
|
||||||
|
this.bwcVersions = cache(providers, bwcVersions);
|
||||||
|
this.gitOrigin = gitOrigin;
|
||||||
|
}
|
||||||
|
|
||||||
|
// This is a workaround for https://github.com/gradle/gradle/issues/25550
|
||||||
|
private <T> Provider<T> cache(ProviderFactory providerFactory, Provider<T> incomingProvider) {
|
||||||
|
SingleObjectCache<T> cache = new SingleObjectCache<>();
|
||||||
|
return providerFactory.provider(() -> cache.computeIfAbsent(() -> incomingProvider.getOrNull()));
|
||||||
|
}
|
||||||
|
|
||||||
|
private static boolean parseBoolean(String s) {
|
||||||
|
if (s == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return Boolean.parseBoolean(s);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean getInFipsJvm() {
|
||||||
|
return inFipsJvm.getOrElse(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Provider<File> getRuntimeJavaHome() {
|
||||||
|
return runtimeJavaHome;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void withFipsEnabledOnly(Task task) {
|
||||||
|
task.onlyIf("FIPS mode disabled", task1 -> getInFipsJvm() == false);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean getIsRuntimeJavaHomeSet() {
|
||||||
|
return isRuntimeJavaHomeSet;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<JavaHome> getJavaVersions() {
|
||||||
|
return javaVersions;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JavaVersion getMinimumCompilerVersion() {
|
||||||
|
return minimumCompilerVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JavaVersion getMinimumRuntimeVersion() {
|
||||||
|
return minimumRuntimeVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JavaVersion getGradleJavaVersion() {
|
||||||
|
return gradleJavaVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Provider<JavaVersion> getRuntimeJavaVersion() {
|
||||||
|
return runtimeJavaVersion;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Provider<? extends Action<JavaToolchainSpec>> getJavaToolChainSpec() {
|
||||||
|
return javaToolChainSpec;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Provider<String> getRuntimeJavaDetails() {
|
||||||
|
return runtimeJavaDetails;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGitRevision() {
|
||||||
|
return gitRevision;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getGitOrigin() {
|
||||||
|
return gitOrigin;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public ZonedDateTime getBuildDate() {
|
||||||
|
ZonedDateTime value = buildDate.get();
|
||||||
|
if (value == null) {
|
||||||
|
value = ZonedDateTime.now(ZoneOffset.UTC);
|
||||||
|
if (buildDate.compareAndSet(null, value) == false) {
|
||||||
|
// If another thread initialized it first, return the initialized value
|
||||||
|
value = buildDate.get();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return value;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getTestSeed() {
|
||||||
|
return testSeed;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isCi() {
|
||||||
|
return isCi;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Integer getDefaultParallel() {
|
||||||
|
return defaultParallel;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isSnapshotBuild() {
|
||||||
|
return isSnapshotBuild;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public BwcVersions getBwcVersions() {
|
||||||
|
return bwcVersions.get();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Random getRandom() {
|
||||||
|
return new Random(Long.parseUnsignedLong(testSeed.split(":")[0], 16));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Boolean isGraalVmRuntime() {
|
||||||
|
return runtimeJavaDetails.get().toLowerCase().contains("graalvm");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static class SingleObjectCache<T> {
|
||||||
|
private T instance;
|
||||||
|
|
||||||
|
public T computeIfAbsent(Supplier<T> supplier) {
|
||||||
|
synchronized (this) {
|
||||||
|
if (instance == null) {
|
||||||
|
instance = supplier.get();
|
||||||
|
}
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public T get() {
|
||||||
|
return instance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public Provider<BwcVersions> getBwcVersionsProvider() {
|
||||||
|
return bwcVersions;
|
||||||
|
}
|
||||||
|
|
||||||
|
// for testing; not part of public api
|
||||||
|
public void setBwcVersions(Provider<BwcVersions> bwcVersions) {
|
||||||
|
this.bwcVersions = bwcVersions;
|
||||||
|
}
|
||||||
|
|
||||||
|
// for testing; not part of public api
|
||||||
|
public void setGitOrigin(String gitOrigin) {
|
||||||
|
this.gitOrigin = gitOrigin;
|
||||||
|
}
|
||||||
|
}
|
|
@ -51,8 +51,6 @@ import java.io.InputStream;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
import java.io.UncheckedIOException;
|
import java.io.UncheckedIOException;
|
||||||
import java.nio.file.Files;
|
import java.nio.file.Files;
|
||||||
import java.time.ZoneOffset;
|
|
||||||
import java.time.ZonedDateTime;
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
|
@ -124,8 +122,10 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
|
||||||
);
|
);
|
||||||
BuildParameterExtension buildParams = project.getExtensions()
|
BuildParameterExtension buildParams = project.getExtensions()
|
||||||
.create(
|
.create(
|
||||||
"buildParams",
|
|
||||||
BuildParameterExtension.class,
|
BuildParameterExtension.class,
|
||||||
|
BuildParameterExtension.EXTENSION_NAME,
|
||||||
|
DefaultBuildParameterExtension.class,
|
||||||
|
providers,
|
||||||
actualRuntimeJavaHome,
|
actualRuntimeJavaHome,
|
||||||
resolveToolchainSpecFromEnv(),
|
resolveToolchainSpecFromEnv(),
|
||||||
actualRuntimeJavaHome.map(
|
actualRuntimeJavaHome.map(
|
||||||
|
@ -145,7 +145,6 @@ public class GlobalBuildInfoPlugin implements Plugin<Project> {
|
||||||
Jvm.current().getJavaVersion(),
|
Jvm.current().getJavaVersion(),
|
||||||
gitInfo.getRevision(),
|
gitInfo.getRevision(),
|
||||||
gitInfo.getOrigin(),
|
gitInfo.getOrigin(),
|
||||||
ZonedDateTime.now(ZoneOffset.UTC),
|
|
||||||
getTestSeed(),
|
getTestSeed(),
|
||||||
System.getenv("JENKINS_URL") != null || System.getenv("BUILDKITE_BUILD_URL") != null || System.getProperty("isCI") != null,
|
System.getenv("JENKINS_URL") != null || System.getenv("BUILDKITE_BUILD_URL") != null || System.getProperty("isCI") != null,
|
||||||
ParallelDetector.findDefaultParallel(project),
|
ParallelDetector.findDefaultParallel(project),
|
||||||
|
|
|
@ -12,12 +12,10 @@ package org.elasticsearch.gradle.internal.precommit;
|
||||||
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin;
|
import org.elasticsearch.gradle.dependencies.CompileOnlyResolvePlugin;
|
||||||
import org.elasticsearch.gradle.internal.ExportElasticsearchBuildResourcesTask;
|
import org.elasticsearch.gradle.internal.ExportElasticsearchBuildResourcesTask;
|
||||||
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
|
import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitPlugin;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
import org.gradle.api.Task;
|
import org.gradle.api.Task;
|
||||||
import org.gradle.api.artifacts.Configuration;
|
import org.gradle.api.artifacts.Configuration;
|
||||||
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
|
import org.gradle.api.artifacts.component.ModuleComponentIdentifier;
|
||||||
import org.gradle.api.provider.Property;
|
|
||||||
import org.gradle.api.tasks.TaskProvider;
|
import org.gradle.api.tasks.TaskProvider;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
@ -34,7 +32,7 @@ public class ThirdPartyAuditPrecommitPlugin extends PrecommitPlugin {
|
||||||
@Override
|
@Override
|
||||||
public TaskProvider<? extends Task> createTask(Project project) {
|
public TaskProvider<? extends Task> createTask(Project project) {
|
||||||
project.getRootProject().getPlugins().apply(CompileOnlyResolvePlugin.class);
|
project.getRootProject().getPlugins().apply(CompileOnlyResolvePlugin.class);
|
||||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
var buildParams = loadBuildParams(project);
|
||||||
|
|
||||||
project.getPlugins().apply(CompileOnlyResolvePlugin.class);
|
project.getPlugins().apply(CompileOnlyResolvePlugin.class);
|
||||||
project.getConfigurations().create("forbiddenApisCliJar");
|
project.getConfigurations().create("forbiddenApisCliJar");
|
||||||
|
|
|
@ -10,7 +10,6 @@
|
||||||
package org.elasticsearch.gradle.internal.snyk;
|
package org.elasticsearch.gradle.internal.snyk;
|
||||||
|
|
||||||
import org.elasticsearch.gradle.internal.conventions.info.GitInfo;
|
import org.elasticsearch.gradle.internal.conventions.info.GitInfo;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||||
import org.gradle.api.Plugin;
|
import org.gradle.api.Plugin;
|
||||||
import org.gradle.api.Project;
|
import org.gradle.api.Project;
|
||||||
|
@ -18,7 +17,6 @@ import org.gradle.api.artifacts.Configuration;
|
||||||
import org.gradle.api.file.ProjectLayout;
|
import org.gradle.api.file.ProjectLayout;
|
||||||
import org.gradle.api.plugins.JavaPlugin;
|
import org.gradle.api.plugins.JavaPlugin;
|
||||||
import org.gradle.api.plugins.JavaPluginExtension;
|
import org.gradle.api.plugins.JavaPluginExtension;
|
||||||
import org.gradle.api.provider.Property;
|
|
||||||
import org.gradle.api.provider.ProviderFactory;
|
import org.gradle.api.provider.ProviderFactory;
|
||||||
import org.gradle.api.tasks.SourceSet;
|
import org.gradle.api.tasks.SourceSet;
|
||||||
|
|
||||||
|
@ -41,7 +39,7 @@ public class SnykDependencyMonitoringGradlePlugin implements Plugin<Project> {
|
||||||
@Override
|
@Override
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||||
Property<BuildParameterExtension> buildParams = loadBuildParams(project);
|
var buildParams = loadBuildParams(project);
|
||||||
|
|
||||||
var generateTaskProvider = project.getTasks()
|
var generateTaskProvider = project.getTasks()
|
||||||
.register("generateSnykDependencyGraph", GenerateSnykDependencyGraph.class, generateSnykDependencyGraph -> {
|
.register("generateSnykDependencyGraph", GenerateSnykDependencyGraph.class, generateSnykDependencyGraph -> {
|
||||||
|
|
|
@ -35,7 +35,7 @@ public class TestWithSslPlugin implements Plugin<Project> {
|
||||||
@Override
|
@Override
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
File keyStoreDir = new File(project.getBuildDir(), "keystore");
|
File keyStoreDir = new File(project.getBuildDir(), "keystore");
|
||||||
BuildParameterExtension buildParams = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class);
|
var buildParams = project.getRootProject().getExtensions().getByType(BuildParameterExtension.class);
|
||||||
TaskProvider<ExportElasticsearchBuildResourcesTask> exportKeyStore = project.getTasks()
|
TaskProvider<ExportElasticsearchBuildResourcesTask> exportKeyStore = project.getTasks()
|
||||||
.register("copyTestCertificates", ExportElasticsearchBuildResourcesTask.class, (t) -> {
|
.register("copyTestCertificates", ExportElasticsearchBuildResourcesTask.class, (t) -> {
|
||||||
t.copy("test/ssl/test-client.crt");
|
t.copy("test/ssl/test-client.crt");
|
||||||
|
|
|
@ -11,7 +11,6 @@ package org.elasticsearch.gradle.internal.test.rest.compat.compat;
|
||||||
|
|
||||||
import org.elasticsearch.gradle.Version;
|
import org.elasticsearch.gradle.Version;
|
||||||
import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin;
|
import org.elasticsearch.gradle.internal.ElasticsearchJavaBasePlugin;
|
||||||
import org.elasticsearch.gradle.internal.info.BuildParameterExtension;
|
|
||||||
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
import org.elasticsearch.gradle.internal.info.GlobalBuildInfoPlugin;
|
||||||
import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask;
|
import org.elasticsearch.gradle.internal.test.rest.CopyRestApiTask;
|
||||||
import org.elasticsearch.gradle.internal.test.rest.CopyRestTestsTask;
|
import org.elasticsearch.gradle.internal.test.rest.CopyRestTestsTask;
|
||||||
|
@ -78,7 +77,7 @@ public abstract class AbstractYamlRestCompatTestPlugin implements Plugin<Project
|
||||||
@Override
|
@Override
|
||||||
public void apply(Project project) {
|
public void apply(Project project) {
|
||||||
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
project.getRootProject().getRootProject().getPlugins().apply(GlobalBuildInfoPlugin.class);
|
||||||
BuildParameterExtension buildParams = loadBuildParams(project).get();
|
var buildParams = loadBuildParams(project).get();
|
||||||
|
|
||||||
final Path compatRestResourcesDir = Path.of("restResources").resolve("compat");
|
final Path compatRestResourcesDir = Path.of("restResources").resolve("compat");
|
||||||
final Path compatSpecsDir = compatRestResourcesDir.resolve("yamlSpecs");
|
final Path compatSpecsDir = compatRestResourcesDir.resolve("yamlSpecs");
|
||||||
|
|
|
@ -0,0 +1,112 @@
|
||||||
|
/*
|
||||||
|
* Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one
|
||||||
|
* or more contributor license agreements. Licensed under the "Elastic License
|
||||||
|
* 2.0", the "GNU Affero General Public License v3.0 only", and the "Server Side
|
||||||
|
* Public License v 1"; you may not use this file except in compliance with, at
|
||||||
|
* your election, the "Elastic License 2.0", the "GNU Affero General Public
|
||||||
|
* License v3.0 only", or the "Server Side Public License, v 1".
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.elasticsearch.gradle.internal.info
|
||||||
|
|
||||||
|
import spock.lang.Specification
|
||||||
|
|
||||||
|
import org.elasticsearch.gradle.internal.BwcVersions
|
||||||
|
import org.gradle.api.JavaVersion
|
||||||
|
import org.gradle.api.Project
|
||||||
|
import org.gradle.api.provider.Provider
|
||||||
|
import org.gradle.api.provider.ProviderFactory
|
||||||
|
import org.gradle.testfixtures.ProjectBuilder
|
||||||
|
import org.junit.Assert
|
||||||
|
|
||||||
|
import java.util.concurrent.CountDownLatch
|
||||||
|
import java.util.concurrent.Executors
|
||||||
|
import java.util.concurrent.Future
|
||||||
|
import java.util.concurrent.TimeUnit
|
||||||
|
import java.util.concurrent.atomic.AtomicInteger
|
||||||
|
|
||||||
|
import static org.junit.Assert.fail
|
||||||
|
|
||||||
|
class BuildParameterExtensionSpec extends Specification {
|
||||||
|
|
||||||
|
ProjectBuilder projectBuilder = new ProjectBuilder()
|
||||||
|
|
||||||
|
def "#getterName is cached anc concurrently accessible"() {
|
||||||
|
given:
|
||||||
|
def project = projectBuilder.build()
|
||||||
|
def providers = project.getProviders();
|
||||||
|
def buildParams = extension(project, providers)
|
||||||
|
int numberOfThreads = 10;
|
||||||
|
when:
|
||||||
|
var service = Executors.newFixedThreadPool(numberOfThreads)
|
||||||
|
var latch = new CountDownLatch(numberOfThreads)
|
||||||
|
def testedProvider = buildParams."$getterName"()
|
||||||
|
def futures = (1..numberOfThreads).collect {
|
||||||
|
service.submit(
|
||||||
|
() -> {
|
||||||
|
try {
|
||||||
|
testedProvider.get()
|
||||||
|
} catch (AssertionError e) {
|
||||||
|
latch.countDown()
|
||||||
|
Assert.fail("Accessing cached provider more than once")
|
||||||
|
}
|
||||||
|
latch.countDown()
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
latch.await(10, TimeUnit.SECONDS)
|
||||||
|
|
||||||
|
then:
|
||||||
|
futures.collect { it.state() }.any() { it == Future.State.FAILED } == false
|
||||||
|
|
||||||
|
where:
|
||||||
|
getterName << [
|
||||||
|
"getRuntimeJavaHome",
|
||||||
|
"getJavaToolChainSpec",
|
||||||
|
"getRuntimeJavaDetails",
|
||||||
|
"getRuntimeJavaVersion",
|
||||||
|
"getBwcVersionsProvider"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
private BuildParameterExtension extension(Project project, ProviderFactory providers) {
|
||||||
|
return project.getExtensions().create(
|
||||||
|
BuildParameterExtension.class, "buildParameters", DefaultBuildParameterExtension.class,
|
||||||
|
providers,
|
||||||
|
providerMock(),
|
||||||
|
providerMock(),
|
||||||
|
providerMock(),
|
||||||
|
true,
|
||||||
|
providerMock(),
|
||||||
|
[
|
||||||
|
Mock(JavaHome),
|
||||||
|
Mock(JavaHome),
|
||||||
|
],
|
||||||
|
JavaVersion.VERSION_11,
|
||||||
|
JavaVersion.VERSION_11,
|
||||||
|
JavaVersion.VERSION_11,
|
||||||
|
"gitRevision",
|
||||||
|
"gitOrigin",
|
||||||
|
"testSeed",
|
||||||
|
false,
|
||||||
|
5,
|
||||||
|
true,
|
||||||
|
// cannot use Mock here because of the way the provider is used by gradle internal property api
|
||||||
|
providerMock()
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
private Provider providerMock() {
|
||||||
|
Provider provider = Mock(Provider)
|
||||||
|
AtomicInteger counter = new AtomicInteger(0)
|
||||||
|
provider.getOrNull() >> {
|
||||||
|
println "accessing provider"
|
||||||
|
return counter.get() == 1 ? fail("Accessing cached provider more than once") : counter.incrementAndGet()
|
||||||
|
}
|
||||||
|
provider.get() >> {
|
||||||
|
fail("Accessing cached provider directly")
|
||||||
|
}
|
||||||
|
return provider
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
|
@ -876,10 +876,8 @@ public class ElasticsearchNode implements TestClusterConfiguration {
|
||||||
// Don't inherit anything from the environment for as that would lack reproducibility
|
// Don't inherit anything from the environment for as that would lack reproducibility
|
||||||
environment.clear();
|
environment.clear();
|
||||||
environment.putAll(getESEnvironment());
|
environment.putAll(getESEnvironment());
|
||||||
if (cliJvmArgs.isEmpty() == false) {
|
String cliJvmArgsString = String.join(" ", cliJvmArgs);
|
||||||
String cliJvmArgsString = String.join(" ", cliJvmArgs);
|
environment.put("CLI_JAVA_OPTS", cliJvmArgsString + " " + System.getProperty("tests.jvm.argline", ""));
|
||||||
environment.put("CLI_JAVA_OPTS", cliJvmArgsString);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Direct the stderr to the ES log file. This should capture any jvm problems to start.
|
// Direct the stderr to the ES log file. This should capture any jvm problems to start.
|
||||||
// Stdout is discarded because ES duplicates the log file to stdout when run in the foreground.
|
// Stdout is discarded because ES duplicates the log file to stdout when run in the foreground.
|
||||||
|
|
|
@ -183,7 +183,7 @@ abstract class AbstractGradleFuncTest extends Specification {
|
||||||
]
|
]
|
||||||
|
|
||||||
BwcVersions versions = new BwcVersions(currentVersion, versionList, ['main', '8.x', '8.3', '8.2', '8.1', '7.16'])
|
BwcVersions versions = new BwcVersions(currentVersion, versionList, ['main', '8.x', '8.3', '8.2', '8.1', '7.16'])
|
||||||
buildParams.getBwcVersionsProperty().set(versions)
|
buildParams.setBwcVersions(project.provider { versions} )
|
||||||
"""
|
"""
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 104683
|
|
||||||
summary: "Feature: re-structure document ID generation favoring _id inverted index compression"
|
|
||||||
area: Logs
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 112881
|
|
||||||
summary: "ESQL: Remove parent from `FieldAttribute`"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 112989
|
|
||||||
summary: Upgrade Bouncy Castle FIPS dependencies
|
|
||||||
area: Security
|
|
||||||
type: upgrade
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 113194
|
|
||||||
summary: Add Search Phase APM metrics
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 113713
|
|
||||||
summary: Adding inference endpoint validation for `AzureAiStudioService`
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 113920
|
|
||||||
summary: Add initial support for `semantic_text` field type
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,7 +0,0 @@
|
||||||
pr: 114334
|
|
||||||
summary: Don't return TEXT type for functions that take TEXT
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 111537
|
|
||||||
- 114333
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114482
|
|
||||||
summary: Remove snapshot build restriction for match and qstr functions
|
|
||||||
area: ES|QL
|
|
||||||
type: feature
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114484
|
|
||||||
summary: Add `docvalue_fields` Support for `dense_vector` Fields
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues:
|
|
||||||
- 108470
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114620
|
|
||||||
summary: "ES|QL: add metrics for functions"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114665
|
|
||||||
summary: Fixing remote ENRICH by pushing the Enrich inside `FragmentExec`
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 105095
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114681
|
|
||||||
summary: "Support for unsigned 64 bit numbers in Cpu stats"
|
|
||||||
area: Infra/Core
|
|
||||||
type: enhancement
|
|
||||||
issues:
|
|
||||||
- 112274
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114742
|
|
||||||
summary: Adding support for additional mapping to simulate ingest API
|
|
||||||
area: Ingest Node
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114819
|
|
||||||
summary: Don't use a `BytesStreamOutput` to copy keys in `BytesRefBlockHash`
|
|
||||||
area: EQL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 114599
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114855
|
|
||||||
summary: Add query rules retriever
|
|
||||||
area: Relevance
|
|
||||||
type: enhancement
|
|
||||||
issues: [ ]
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114862
|
|
||||||
summary: "[Inference API] Add API to get configuration of inference services"
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114869
|
|
||||||
summary: Standardize error code when bulk body is invalid
|
|
||||||
area: CRUD
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114899
|
|
||||||
summary: "ES|QL: Fix stats by constant expression"
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 114924
|
|
||||||
summary: Reducing error-level stack trace logging for normal events in `GeoIpDownloader`
|
|
||||||
area: Ingest Node
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114934
|
|
||||||
summary: "[ES|QL] To_DatePeriod and To_TimeDuration return better error messages on\
|
|
||||||
\ `union_type` fields"
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 114964
|
|
||||||
summary: Add a `monitor_stats` privilege and allow that privilege for remote cluster
|
|
||||||
privileges
|
|
||||||
area: Authorization
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115041
|
|
||||||
summary: Increase default `queue_capacity` to 10_000 and decrease max `queue_capacity`
|
|
||||||
to 100_000
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,7 +0,0 @@
|
||||||
pr: 115091
|
|
||||||
summary: Added stricter range type checks and runtime warnings for ENRICH
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 107357
|
|
||||||
- 116799
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115102
|
|
||||||
summary: Watch Next Run Interval Resets On Shard Move or Node Restart
|
|
||||||
area: Watcher
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 111433
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115142
|
|
||||||
summary: Attempt to clean up index before remote transfer
|
|
||||||
area: Recovery
|
|
||||||
type: enhancement
|
|
||||||
issues:
|
|
||||||
- 104473
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115266
|
|
||||||
summary: ES|QL CCS uses `skip_unavailable` setting for handling disconnected remote
|
|
||||||
clusters
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: [ 114531 ]
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115359
|
|
||||||
summary: Adding support for simulate ingest mapping adddition for indices with mappings
|
|
||||||
that do not come from templates
|
|
||||||
area: Ingest Node
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,9 +0,0 @@
|
||||||
pr: 115414
|
|
||||||
summary: Mitigate IOSession timeouts
|
|
||||||
area: Machine Learning
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 114385
|
|
||||||
- 114327
|
|
||||||
- 114105
|
|
||||||
- 114232
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115459
|
|
||||||
summary: Adds access to flags no_sub_matches and no_overlapping_matches to hyphenation-decompounder-tokenfilter
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues:
|
|
||||||
- 97849
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115640
|
|
||||||
summary: Fix NPE on plugin sync
|
|
||||||
area: Infra/CLI
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 114818
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115655
|
|
||||||
summary: Better sizing `BytesRef` for Strings in Queries
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115678
|
|
||||||
summary: "ESQL: extract common filter from aggs"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115687
|
|
||||||
summary: Add default ILM policies and switch to ILM for apm-data plugin
|
|
||||||
area: Data streams
|
|
||||||
type: feature
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115744
|
|
||||||
summary: Use `SearchStats` instead of field.isAggregatable in data node planning
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 115737
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115792
|
|
||||||
summary: Add ES|QL `bit_length` function
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115797
|
|
||||||
summary: Enable `_tier` based coordinator rewrites for all indices (not just mounted
|
|
||||||
indices)
|
|
||||||
area: Search
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115807
|
|
||||||
summary: "[Inference API] Improve chunked results error message"
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115812
|
|
||||||
summary: "Prohibit changes to index mode, source, and sort settings during resize"
|
|
||||||
area: Logs
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 115814
|
|
||||||
summary: "[ES|QL] Implicit casting string literal to intervals"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues:
|
|
||||||
- 115352
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115858
|
|
||||||
summary: "ESQL: optimise aggregations filtered by false/null into evals"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 115994
|
|
||||||
summary: Add logsdb telemetry
|
|
||||||
area: Logs
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 116021
|
|
||||||
summary: Fields caps does not honour ignore_unavailable
|
|
||||||
area: Search
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 107767
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116082
|
|
||||||
summary: Add support for bitwise inner-product in painless
|
|
||||||
area: Vector Search
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116128
|
|
||||||
summary: Add num docs and size to logsdb telemetry
|
|
||||||
area: Logs
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116211
|
|
||||||
summary: Use underlying `ByteBuf` `refCount` for `ReleasableBytesReference`
|
|
||||||
area: Network
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116325
|
|
||||||
summary: Adjust analyze limit exception to be a `bad_request`
|
|
||||||
area: Analysis
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116346
|
|
||||||
summary: "[ESQL] Fix Binary Comparisons on Date Nanos"
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116348
|
|
||||||
summary: "ESQL: Honor skip_unavailable setting for nonmatching indices errors at planning time"
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: [ 114531 ]
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116431
|
|
||||||
summary: Adds support for `input_type` field to Vertex inference service
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116437
|
|
||||||
summary: Ensure class resource stream is closed in `ResourceUtils`
|
|
||||||
area: Indices APIs
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116447
|
|
||||||
summary: Adding a deprecation info API warning for data streams with old indices
|
|
||||||
area: Data streams
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116515
|
|
||||||
summary: Esql/lookup join grammar
|
|
||||||
area: ES|QL
|
|
||||||
type: feature
|
|
||||||
issues: []
|
|
|
@ -1,7 +0,0 @@
|
||||||
pr: 116583
|
|
||||||
summary: Fix NPE in `EnrichLookupService` on mixed clusters with <8.14 versions
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116529
|
|
||||||
- 116544
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116591
|
|
||||||
summary: "Add support for `BYTE_LENGTH` scalar function"
|
|
||||||
area: ES|QL
|
|
||||||
type: feature
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 116656
|
|
||||||
summary: _validate does not honour ignore_unavailable
|
|
||||||
area: Search
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116594
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 116664
|
|
||||||
summary: Hides `hugging_face_elser` service from the `GET _inference/_services API`
|
|
||||||
area: Machine Learning
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116644
|
|
|
@ -1,10 +0,0 @@
|
||||||
pr: 116689
|
|
||||||
summary: Deprecate `_source.mode` in mappings
|
|
||||||
area: Mapping
|
|
||||||
type: deprecation
|
|
||||||
issues: []
|
|
||||||
deprecation:
|
|
||||||
title: Deprecate `_source.mode` in mappings
|
|
||||||
area: Mapping
|
|
||||||
details: Configuring `_source.mode` in mappings is deprecated and will be removed in future versions. Use `index.mapping.source.mode` index setting instead.
|
|
||||||
impact: Use `index.mapping.source.mode` index setting instead
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116809
|
|
||||||
summary: "Distinguish `LicensedFeature` by family field"
|
|
||||||
area: License
|
|
||||||
type: bug
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116819
|
|
||||||
summary: ESQL - Add match operator (:)
|
|
||||||
area: Search
|
|
||||||
type: feature
|
|
||||||
issues: []
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116931
|
|
||||||
summary: Enable built-in Inference Endpoints and default for Semantic Text
|
|
||||||
area: "Machine Learning"
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 116953
|
|
||||||
summary: Fix false positive date detection with trailing dot
|
|
||||||
area: Mapping
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116946
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116957
|
|
||||||
summary: Propagate scoring function through random sampler
|
|
||||||
area: Machine Learning
|
|
||||||
type: bug
|
|
||||||
issues: [ 110134 ]
|
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 116962
|
|
||||||
summary: "Add special case for elastic reranker in inference API"
|
|
||||||
area: Machine Learning
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 116980
|
|
||||||
summary: "ESQL: Fix sorts containing `_source`"
|
|
||||||
area: ES|QL
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116659
|
|
5
docs/changelog/116996.yaml
Normal file
5
docs/changelog/116996.yaml
Normal file
|
@ -0,0 +1,5 @@
|
||||||
|
pr: 116996
|
||||||
|
summary: Initial work on `ReindexDatastreamIndexAction`
|
||||||
|
area: Data streams
|
||||||
|
type: enhancement
|
||||||
|
issues: []
|
|
@ -1,5 +0,0 @@
|
||||||
pr: 117080
|
|
||||||
summary: Esql Enable Date Nanos (tech preview)
|
|
||||||
area: ES|QL
|
|
||||||
type: enhancement
|
|
||||||
issues: []
|
|
|
@ -1,6 +0,0 @@
|
||||||
pr: 117105
|
|
||||||
summary: Fix long metric deserialize & add - auto-resize needs to be set manually
|
|
||||||
area: CCS
|
|
||||||
type: bug
|
|
||||||
issues:
|
|
||||||
- 116914
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue