From 54f0b83b1d07f5c44aa5f99901732fcaee04d1d7 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 29 Mar 2021 16:08:23 +0100 Subject: [PATCH 01/22] Define tasks for handling release notes --- build.gradle | 1 + buildSrc/build.gradle | 1 + .../org/elasticsearch/gradle/Version.java | 40 +- .../ValidateJsonAgainstSchemaTask.java | 58 ++- .../ValidateYamlAgainstSchemaTask.java | 26 ++ .../release/BreakingChangesGenerator.java | 200 ++++++++++ .../gradle/release/ChangelogEntry.java | 355 ++++++++++++++++++ .../release/GenerateReleaseNotesTask.java | 167 ++++++++ .../release/ReleaseHighlightsGenerator.java | 109 ++++++ .../gradle/release/ReleaseNotesGenerator.java | 154 ++++++++ .../release/ReleaseNotesIndexUpdater.java | 82 ++++ .../gradle/release/ReleaseToolsPlugin.java | 85 +++++ .../elasticsearch.release-tools.properties | 1 + .../src/main/resources/changelog-schema.json | 202 ++++++++++ .../elasticsearch/gradle/VersionTests.java | 56 ++- 15 files changed, 1488 insertions(+), 49 deletions(-) create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateYamlAgainstSchemaTask.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/BreakingChangesGenerator.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseHighlightsGenerator.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesIndexUpdater.java create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java create mode 100644 buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.release-tools.properties create mode 100644 buildSrc/src/main/resources/changelog-schema.json diff --git a/build.gradle b/build.gradle index c0a162e7e88cc..bfc77b2defca3 100644 --- a/build.gradle +++ b/build.gradle @@ -26,6 +26,7 @@ plugins { id 'lifecycle-base' id 'elasticsearch.docker-support' id 'elasticsearch.global-build-info' + id 'elasticsearch.release-tools' id "com.diffplug.spotless" version "5.9.0" apply false } diff --git a/buildSrc/build.gradle b/buildSrc/build.gradle index a30375a742bca..69da70bd70b9c 100644 --- a/buildSrc/build.gradle +++ b/buildSrc/build.gradle @@ -111,6 +111,7 @@ dependencies { testFixturesApi gradleTestKit() testImplementation 'com.github.tomakehurst:wiremock-jre8-standalone:2.23.2' testImplementation 'org.mockito:mockito-core:1.9.5' + testImplementation "org.hamcrest:hamcrest:${props.getProperty('hamcrest')}" integTestImplementation('org.spockframework:spock-core:1.3-groovy-2.5') { exclude module: "groovy" } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java b/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java index 8ac6193bdc3f9..7f455134a9c95 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java @@ -7,6 +7,9 @@ */ package org.elasticsearch.gradle; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -19,6 +22,7 @@ public final class Version implements Comparable { private final int minor; private final int revision; private final int id; + private final List labels; /** * Specifies how a version string should be parsed. @@ -36,11 +40,15 @@ public enum Mode { RELAXED } - private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-alpha\\d+|-beta\\d+|-rc\\d+)?(-SNAPSHOT)?"); + private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)((?:-alpha\\d+|-beta\\d+|-rc\\d+)?(?:-SNAPSHOT)?)?"); - private static final Pattern relaxedPattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-[a-zA-Z0-9_]+)*?"); + private static final Pattern relaxedPattern = Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)((?:-[a-zA-Z0-9_]+)*)?"); public Version(int major, int minor, int revision) { + this(major, minor, revision, List.of()); + } + + public Version(int major, int minor, int revision, List labels) { Objects.requireNonNull(major, "major version can't be null"); Objects.requireNonNull(minor, "minor version can't be null"); Objects.requireNonNull(revision, "revision version can't be null"); @@ -50,13 +58,8 @@ public Version(int major, int minor, int revision) { // currently snapshot is not taken into account this.id = major * 10000000 + minor * 100000 + revision * 1000; - } - private static int parseSuffixNumber(String substring) { - if (substring.isEmpty()) { - throw new IllegalArgumentException("Invalid suffix, must contain a number e.x. alpha2"); - } - return Integer.parseInt(substring); + this.labels = new ArrayList<>(labels); } public static Version fromString(final String s) { @@ -73,12 +76,25 @@ public static Version fromString(final String s, final Mode mode) { throw new IllegalArgumentException("Invalid version format: '" + s + "'. Should be " + expected); } - return new Version(Integer.parseInt(matcher.group(1)), parseSuffixNumber(matcher.group(2)), parseSuffixNumber(matcher.group(3))); + String labelString = matcher.group(4); + List labels; + if (labelString == null || labelString.isEmpty()) { + labels = List.of(); + } else { + labels = Arrays.asList(labelString.substring(1).split("-")); + } + + return new Version( + Integer.parseInt(matcher.group(1)), + Integer.parseInt(matcher.group(2)), + Integer.parseInt(matcher.group(3)), + labels + ); } @Override public String toString() { - return String.valueOf(getMajor()) + "." + String.valueOf(getMinor()) + "." + String.valueOf(getRevision()); + return getMajor() + "." + getMinor() + "." + getRevision(); } public boolean before(Version compareTo) { @@ -146,6 +162,10 @@ protected int getId() { return id; } + public List getLabels() { + return labels; + } + @Override public int compareTo(Version other) { return Integer.compare(getId(), other.getId()); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java index 60b609b3145fa..9807b1855eff1 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java @@ -20,9 +20,11 @@ import org.gradle.api.file.FileCollection; import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.InputFiles; +import org.gradle.api.tasks.Internal; import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; import org.gradle.work.ChangeType; +import org.gradle.work.FileChange; import org.gradle.work.Incremental; import org.gradle.work.InputChanges; @@ -42,8 +44,6 @@ * Incremental task to validate a set of JSON files against against a schema. */ public class ValidateJsonAgainstSchemaTask extends DefaultTask { - - private final ObjectMapper mapper = new ObjectMapper(); private File jsonSchema; private File report; private FileCollection inputFiles; @@ -76,28 +76,37 @@ public File getReport() { return this.report; } + @Internal + protected ObjectMapper getMapper() { + return new ObjectMapper(); + } + + @Internal + protected String getFileType() { + return "JSON"; + } + @TaskAction public void validate(InputChanges inputChanges) throws IOException { - File jsonSchemaOnDisk = getJsonSchema(); - getLogger().debug("JSON schema : [{}]", jsonSchemaOnDisk.getAbsolutePath()); - SchemaValidatorsConfig config = new SchemaValidatorsConfig(); - JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7); - JsonSchema jsonSchema = factory.getSchema(mapper.readTree(jsonSchemaOnDisk), config); - Map> errors = new LinkedHashMap<>(); + final File jsonSchemaOnDisk = getJsonSchema(); + final JsonSchema jsonSchema = buildSchemaObject(jsonSchemaOnDisk); + + final Map> errors = new LinkedHashMap<>(); + final ObjectMapper mapper = this.getMapper(); + // incrementally evaluate input files + // validate all files and hold on to errors for a complete report if there are failures StreamSupport.stream(inputChanges.getFileChanges(getInputFiles()).spliterator(), false) .filter(f -> f.getChangeType() != ChangeType.REMOVED) - .forEach(fileChange -> { - File file = fileChange.getFile(); - if (file.isDirectory() == false) { - // validate all files and hold on to errors for a complete report if there are failures - getLogger().debug("Validating JSON [{}]", file.getName()); - try { - Set validationMessages = jsonSchema.validate(mapper.readTree(file)); - maybeLogAndCollectError(validationMessages, errors, file); - } catch (IOException e) { - throw new UncheckedIOException(e); - } + .map(FileChange::getFile) + .filter(file -> file.isDirectory() == false) + .forEach(file -> { + getLogger().debug("Validating {} [{}]", getFileType(), file.getName()); + try { + Set validationMessages = jsonSchema.validate(mapper.readTree(file)); + maybeLogAndCollectError(validationMessages, errors, file); + } catch (IOException e) { + throw new UncheckedIOException(e); } }); if (errors.isEmpty()) { @@ -119,9 +128,18 @@ public void validate(InputChanges inputChanges) throws IOException { } } + private JsonSchema buildSchemaObject(File jsonSchemaOnDisk) throws IOException { + final ObjectMapper jsonMapper = new ObjectMapper(); + getLogger().debug("JSON schema : [{}]", jsonSchemaOnDisk.getAbsolutePath()); + final SchemaValidatorsConfig config = new SchemaValidatorsConfig(); + final JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7); + return factory.getSchema(jsonMapper.readTree(jsonSchemaOnDisk), config); + } + private void maybeLogAndCollectError(Set messages, Map> errors, File file) { + final String fileType = getFileType(); for (ValidationMessage message : messages) { - getLogger().error("[validate JSON][ERROR][{}][{}]", file.getName(), message.toString()); + getLogger().error("[validate {}][ERROR][{}][{}]", fileType, file.getName(), message.toString()); errors.computeIfAbsent(file, k -> new LinkedHashSet<>()) .add(String.format("%s: %s", file.getAbsolutePath(), message.toString())); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateYamlAgainstSchemaTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateYamlAgainstSchemaTask.java new file mode 100644 index 0000000000000..c4233fc26166c --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateYamlAgainstSchemaTask.java @@ -0,0 +1,26 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.internal.precommit; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; + +/** + * Incremental task to validate a set of YAML files against against a schema. + */ +public class ValidateYamlAgainstSchemaTask extends ValidateJsonAgainstSchemaTask { + @Override + protected String getFileType() { + return "YAML"; + } + + protected ObjectMapper getMapper() { + return new ObjectMapper(new YAMLFactory()); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/BreakingChangesGenerator.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/BreakingChangesGenerator.java new file mode 100644 index 0000000000000..78bbe665e4b5d --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/BreakingChangesGenerator.java @@ -0,0 +1,200 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; + +import java.io.Closeable; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintStream; +import java.util.List; +import java.util.Locale; +import java.util.Map; +import java.util.Objects; +import java.util.TreeMap; +import java.util.stream.Collectors; + +/** + * Generates the page that lists the breaking changes and deprecations for a minor version release. + */ +public class BreakingChangesGenerator implements Closeable { + + private final PrintStream out; + + public BreakingChangesGenerator(File outputFile) throws FileNotFoundException { + this.out = new PrintStream(outputFile); + } + + @Override + public void close() throws IOException { + this.out.close(); + } + + public void generate(List entries) { + Version version = VersionProperties.getElasticsearchVersion(); + final VersionStrings versionStrings = new VersionStrings(version); + + List.of( + "[[migrating-" + versionStrings.majorDotMinor + "]]", + "== Migrating to " + versionStrings.majorDotMinor, + "++++", + "" + versionStrings.majorDotMinor + "", + "++++", + "", + "This section discusses the changes that you need to be aware of when migrating", + "your application to {es} " + versionStrings.majorDotMinor + ".", + "", + "See also <> and <>." + ).forEach(out::println); + + if (VersionProperties.isElasticsearchSnapshot()) { + out.println(); + out.println("coming[" + version + "]"); + } + + out.println(); + out.println("//NOTE: The notable-breaking-changes tagged regions are re-used in the"); + out.println("//Installation and Upgrade Guide"); + + generateBreakingChanges(entries, versionStrings); + generateDeprecations(entries, versionStrings); + } + + private static class VersionStrings { + private final String majorMinor; + private final String majorDotMinor; + private final String nextMajor; + + private VersionStrings(Version version) { + this.majorMinor = String.valueOf(version.getMajor()) + version.getMinor(); + this.majorDotMinor = version.getMajor() + "." + version.getMinor(); + this.nextMajor = (version.getMajor() + 1) + ".0"; + } + } + + private void generateBreakingChanges(List entries, VersionStrings versionStrings) { + final Map> breakingChangesByArea = entries.stream() + .map(ChangelogEntry::getBreaking) + .filter(Objects::nonNull) + .collect(Collectors.groupingBy(ChangelogEntry.Breaking::getArea, TreeMap::new, Collectors.toList())); + + if (breakingChangesByArea.isEmpty()) { + return; + } + + out.println(); + out.println(); + + List.of( + "[discrete]", + "[[breaking-changes-" + versionStrings.majorDotMinor + "]]", + "=== Breaking changes", + "", + "The following changes in {es} " + versionStrings.majorDotMinor + " might affect your applications", + "and prevent them from operating normally.", + "Before upgrading to " + versionStrings.majorDotMinor + " review these changes and take the described steps", + "to mitigate the impact.", + "", + "NOTE: Breaking changes introduced in minor versions are", + "normally limited to security and bug fixes.", + "Significant changes in behavior are deprecated in a minor release and", + "the old behavior is supported until the next major release.", + "To find out if you are using any deprecated functionality,", + "enable <>." + ).forEach(out::println); + + breakingChangesByArea.forEach((area, breakingChanges) -> { + out.println(); + + final boolean hasNotableChanges = breakingChanges.stream().anyMatch(ChangelogEntry.Breaking::isNotable); + if (hasNotableChanges) { + out.println("// tag::notable-breaking-changes[]"); + } + + out.println("[discrete]"); + out.println( + "[[breaking_" + versionStrings.majorMinor + "_" + area.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "_") + "]]" + ); + out.println("==== " + area); + + breakingChanges.forEach(breaking -> { + out.println(); + out.println("[[" + breaking.getAnchor() + "]]"); + out.println("." + breaking.getTitle()); + out.println("[%collapsible]"); + out.println("===="); + out.println("*Details* +"); + out.println(breaking.getDetails().trim()); + out.println(); + out.println("*Impact* +"); + out.println(breaking.getImpact().trim()); + out.println("===="); + }); + + if (hasNotableChanges) { + out.println("// end::notable-breaking-changes[]"); + } + }); + } + + private void generateDeprecations(List entries, VersionStrings versionStrings) { + final Map> deprecationsByArea = entries.stream() + .map(ChangelogEntry::getDeprecation) + .filter(Objects::nonNull) + .collect(Collectors.groupingBy(ChangelogEntry.Deprecation::getArea, TreeMap::new, Collectors.toList())); + + if (deprecationsByArea.isEmpty()) { + return; + } + + out.println(); + out.println(); + + List.of( + "[discrete]", + "[[deprecated-" + versionStrings.majorDotMinor + "]]", + "=== Deprecations", + "", + "The following functionality has been deprecated in {es} " + versionStrings.majorDotMinor, + "and will be removed in " + versionStrings.nextMajor + ".", + "While this won't have an immediate impact on your applications,", + "we strongly encourage you take the described steps to update your code", + "after upgrading to " + versionStrings.majorDotMinor + ".", + "", + "NOTE: Significant changes in behavior are deprecated in a minor release and", + "the old behavior is supported until the next major release.", + "To find out if you are using any deprecated functionality,", + "enable <>." + ).forEach(out::println); + + deprecationsByArea.forEach((area, deprecations) -> { + out.println(); + + out.println("[discrete]"); + out.println( + "[[deprecations-" + versionStrings.majorMinor + "_" + area.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "_") + "]]" + ); + out.println("==== " + area + " deprecations"); + + deprecations.forEach(deprecation -> { + out.println(); + out.println("[[" + deprecation.getAnchor() + "]]"); + out.println("." + deprecation.getTitle()); + out.println("[%collapsible]"); + out.println("===="); + out.println("*Details* +"); + out.println(deprecation.getBody().trim()); + out.println("===="); + }); + }); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java new file mode 100644 index 0000000000000..9b349a5e91274 --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java @@ -0,0 +1,355 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import java.util.List; +import java.util.Locale; +import java.util.Objects; + +/** + * This class models the contents of a changelog YAML file. It contains no validation of its own, + * because we check it against a JSON Schema document. + * + * @see buildSrc/src/main/resources/changelog-schema.json + * @see Understanding JSON Schema + */ +public class ChangelogEntry { + private int pr; + private List issues; + private String area; + private String type; + private String summary; + private Highlight highlight; + private Breaking breaking; + private Deprecation deprecation; + private List versions; + + public int getPr() { + return pr; + } + + public void setPr(int pr) { + this.pr = pr; + } + + public List getIssues() { + return issues; + } + + public void setIssues(List issues) { + this.issues = issues; + } + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getSummary() { + return summary; + } + + public void setSummary(String summary) { + this.summary = summary; + } + + public Highlight getHighlight() { + return highlight; + } + + public void setHighlight(Highlight highlight) { + this.highlight = highlight; + } + + public Breaking getBreaking() { + return breaking; + } + + public void setBreaking(Breaking breaking) { + this.breaking = breaking; + } + + public Deprecation getDeprecation() { + return deprecation; + } + + public void setDeprecation(Deprecation deprecation) { + this.deprecation = deprecation; + } + + public List getVersions() { + return versions; + } + + public void setVersions(List versions) { + this.versions = versions; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + ChangelogEntry that = (ChangelogEntry) o; + return pr == that.pr + && Objects.equals(issues, that.issues) + && Objects.equals(area, that.area) + && Objects.equals(type, that.type) + && Objects.equals(summary, that.summary) + && Objects.equals(highlight, that.highlight) + && Objects.equals(breaking, that.breaking) + && Objects.equals(versions, that.versions); + } + + @Override + public int hashCode() { + return Objects.hash(pr, issues, area, type, summary, highlight, breaking, versions); + } + + @Override + public String toString() { + return String.format( + Locale.ROOT, + "ChangelogEntry{pr=%d, issues=%s, area='%s', type='%s', summary='%s', highlight=%s, breaking=%s, deprecation=%s versions=%s}", + pr, + issues, + area, + type, + summary, + highlight, + breaking, + deprecation, + versions + ); + } + + public static class Highlight { + private boolean notable; + private String title; + private String body; + + public boolean isNotable() { + return notable; + } + + public void setNotable(boolean notable) { + this.notable = notable; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Highlight highlight = (Highlight) o; + return Objects.equals(notable, highlight.notable) + && Objects.equals(title, highlight.title) + && Objects.equals(body, highlight.body); + } + + @Override + public int hashCode() { + return Objects.hash(notable, title, body); + } + + @Override + public String toString() { + return String.format(Locale.ROOT, "Highlight{notable=%s, title='%s', body='%s'}", notable, title, body); + } + } + + public static class Breaking { + private String area; + private String title; + private String details; + private String impact; + private boolean isNotable; + private String anchor; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getDetails() { + return details; + } + + public void setDetails(String details) { + this.details = details; + } + + public String getImpact() { + return impact; + } + + public void setImpact(String impact) { + this.impact = impact; + } + + public boolean isNotable() { + return isNotable; + } + + public void setNotable(boolean notable) { + isNotable = notable; + } + + public String getAnchor() { + return anchor; + } + + public void setAnchor(String anchor) { + this.anchor = anchor; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Breaking breaking = (Breaking) o; + return isNotable == breaking.isNotable + && Objects.equals(area, breaking.area) + && Objects.equals(title, breaking.title) + && Objects.equals(details, breaking.details) + && Objects.equals(impact, breaking.impact) + && Objects.equals(anchor, breaking.anchor); + } + + @Override + public int hashCode() { + return Objects.hash(area, title, details, impact, isNotable, anchor); + } + + @Override + public String toString() { + return String.format( + "Breaking{area='%s', title='%s', details='%s', impact='%s', isNotable=%s, anchor='%s'}", + area, + title, + details, + impact, + isNotable, + anchor + ); + } + } + + public static class Deprecation { + private String area; + private String title; + private String body; + private String anchor; + + public String getArea() { + return area; + } + + public void setArea(String area) { + this.area = area; + } + + public String getTitle() { + return title; + } + + public void setTitle(String title) { + this.title = title; + } + + public String getBody() { + return body; + } + + public void setBody(String body) { + this.body = body; + } + + public String getAnchor() { + return anchor; + } + + public void setAnchor(String anchor) { + this.anchor = anchor; + } + + @Override + public boolean equals(Object o) { + if (this == o) { + return true; + } + if (o == null || getClass() != o.getClass()) { + return false; + } + Deprecation that = (Deprecation) o; + return Objects.equals(area, that.area) + && Objects.equals(title, that.title) + && Objects.equals(body, that.body) + && Objects.equals(anchor, that.anchor); + } + + @Override + public int hashCode() { + return Objects.hash(area, title, body, anchor); + } + + @Override + public String toString() { + return String.format("Deprecation{area='%s', title='%s', body='%s', anchor='%s'}", area, title, body, anchor); + } + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java new file mode 100644 index 0000000000000..c722b9226636f --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java @@ -0,0 +1,167 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; +import org.gradle.api.DefaultTask; +import org.gradle.api.file.ConfigurableFileCollection; +import org.gradle.api.file.FileCollection; +import org.gradle.api.file.RegularFile; +import org.gradle.api.file.RegularFileProperty; +import org.gradle.api.logging.Logger; +import org.gradle.api.logging.Logging; +import org.gradle.api.model.ObjectFactory; +import org.gradle.api.tasks.InputFiles; +import org.gradle.api.tasks.OutputFile; +import org.gradle.api.tasks.TaskAction; + +import javax.inject.Inject; +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; +import java.util.List; +import java.util.Set; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * Orchestrates the steps required to generate or update various release notes files. + */ +public class GenerateReleaseNotesTask extends DefaultTask { + private static final Logger LOGGER = Logging.getLogger(GenerateReleaseNotesTask.class); + + private final ConfigurableFileCollection changelogs; + private final RegularFileProperty releaseNotesIndexFile; + private final RegularFileProperty releaseNotesFile; + private final RegularFileProperty releaseHighlightsFile; + private final RegularFileProperty breakingChangesFile; + + private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory()); + + @Inject + public GenerateReleaseNotesTask(ObjectFactory objectFactory) { + changelogs = objectFactory.fileCollection(); + releaseNotesIndexFile = objectFactory.fileProperty(); + releaseNotesFile = objectFactory.fileProperty(); + releaseHighlightsFile = objectFactory.fileProperty(); + breakingChangesFile = objectFactory.fileProperty(); + } + + @TaskAction + public void executeTask() throws IOException { + LOGGER.info("Finding changelog files..."); + + final Version checkoutVersion = VersionProperties.getElasticsearchVersion(); + + final List entries = this.changelogs.getFiles() + .stream() + .map(this::parseChangelogFile) + .filter( + // Only process changelogs that are included in this minor version series of ES. + // If this change was released in an earlier major or minor version of Elasticsearch, do not + // include it in the notes. An earlier patch version is OK, the release notes include changes + // for every patch release in a minor series. + log -> { + final List versionsForChangelogFile = log.getVersions() + .stream() + .map(v -> Version.fromString(v, Version.Mode.RELAXED)) + .collect(Collectors.toList()); + + final Predicate includedInSameMinor = v -> v.getMajor() == checkoutVersion.getMajor() + && v.getMinor() == checkoutVersion.getMinor(); + + final Predicate includedInEarlierMajorOrMinor = v -> v.getMajor() < checkoutVersion.getMajor() + || (v.getMajor() == checkoutVersion.getMajor() && v.getMinor() < checkoutVersion.getMinor()); + + boolean includedInThisMinor = versionsForChangelogFile.stream().anyMatch(includedInSameMinor); + + if (includedInThisMinor) { + return versionsForChangelogFile.stream().noneMatch(includedInEarlierMajorOrMinor); + } else { + return false; + } + } + ) + .collect(Collectors.toList()); + + LOGGER.info("Updating release notes index..."); + ReleaseNotesIndexUpdater.update(this.releaseNotesIndexFile.get().getAsFile()); + + LOGGER.info("Generating release notes..."); + try (ReleaseNotesGenerator generator = new ReleaseNotesGenerator(this.releaseNotesFile.get().getAsFile())) { + generator.generate(entries); + } + + LOGGER.info("Generating release highlights..."); + try (ReleaseHighlightsGenerator generator = new ReleaseHighlightsGenerator(this.releaseHighlightsFile.get().getAsFile())) { + generator.generate(entries); + } + + LOGGER.info("Generating breaking changes / deprecations notes..."); + try (BreakingChangesGenerator generator = new BreakingChangesGenerator(this.breakingChangesFile.get().getAsFile())) { + generator.generate(entries); + } + } + + private ChangelogEntry parseChangelogFile(File file) { + try { + return yamlMapper.readValue(file, ChangelogEntry.class); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + + @InputFiles + public FileCollection getChangelogs() { + return changelogs; + } + + public void setChangelogs(Set files) { + this.changelogs.setFrom(files); + } + + @OutputFile + public RegularFileProperty getReleaseNotesIndexFile() { + return releaseNotesIndexFile; + } + + public void setReleaseNotesIndexFile(RegularFile file) { + this.releaseNotesIndexFile.set(file); + } + + @OutputFile + public RegularFileProperty getReleaseNotesFile() { + return releaseNotesFile; + } + + public void setReleaseNotesFile(RegularFile file) { + this.releaseNotesFile.set(file); + } + + @OutputFile + public RegularFileProperty getReleaseHighlightsFile() { + return releaseHighlightsFile; + } + + public void setReleaseHighlightsFile(RegularFile file) { + this.releaseHighlightsFile.set(file); + } + + @OutputFile + public RegularFileProperty getBreakingChangesFile() { + return breakingChangesFile; + } + + public void setBreakingChangesFile(RegularFile file) { + this.breakingChangesFile.set(file); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseHighlightsGenerator.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseHighlightsGenerator.java new file mode 100644 index 0000000000000..22747c4ae1344 --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseHighlightsGenerator.java @@ -0,0 +1,109 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; + +import java.io.Closeable; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.List; +import java.util.Map; +import java.util.Objects; +import java.util.stream.Collectors; + +/** + * Generates the release highlights notes, for changelog files that contain the highlight field. + */ +public class ReleaseHighlightsGenerator implements Closeable { + + private final PrintStream out; + + public ReleaseHighlightsGenerator(File outputFile) throws FileNotFoundException { + this.out = new PrintStream(outputFile); + } + + @Override + public void close() throws IOException { + this.out.close(); + } + + public void generate(List entries) { + List.of( + "[[release-highlights]]", + "== What's new in {minor-version}", + "", + "coming[{minor-version}]", + "", + "Here are the highlights of what's new and improved in {es} {minor-version}!", + "ifeval::[\"{release-state}\"!=\"unreleased\"]", + "For detailed information about this release, see the", + "<> and", + "<>.", + "endif::[]", + "" + ).forEach(this.out::println); + + Version version = VersionProperties.getElasticsearchVersion(); + + if (version.getMinor() > 0) { + this.out.println("// Add previous release to the list"); + this.out.println("Other versions:"); + + List priorVersions = new ArrayList<>(); + + final int major = version.getMajor(); + for (int minor = version.getMinor(); minor >= 0; minor--) { + String majorMinor = major + "." + minor; + String fileSuffix = ""; + if (major == 7 && minor < 7) { + fileSuffix = "-" + majorMinor + ".0"; + } + priorVersions.add("{ref-bare}/" + majorMinor + "/release-highlights" + fileSuffix + ".html[" + majorMinor + "]"); + } + + this.out.println(String.join("\n| ", priorVersions)); + this.out.println(); + } + + final Map> groupedHighlights = entries.stream() + .map(ChangelogEntry::getHighlight) + .filter(Objects::nonNull) + .collect(Collectors.groupingBy(ChangelogEntry.Highlight::isNotable, Collectors.toList())); + + final List notableHighlights = groupedHighlights.getOrDefault(true, List.of()); + final List nonNotableHighlights = groupedHighlights.getOrDefault(false, List.of()); + + if (notableHighlights.isEmpty() == false) { + this.out.println("// tag::notable-highlights[]"); + + for (ChangelogEntry.Highlight highlight : notableHighlights) { + out.println("[discrete]"); + out.println("=== " + highlight.getTitle()); + out.println(highlight.getBody().trim()); + out.println(); + } + + this.out.println("// end::notable-highlights[]"); + } + + this.out.println(); + + for (ChangelogEntry.Highlight highlight : nonNotableHighlights) { + out.println("[discrete]"); + out.println("=== " + highlight.getTitle()); + out.println(highlight.getBody()); + out.println(); + } + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java new file mode 100644 index 0000000000000..d8aa3c7d937ab --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java @@ -0,0 +1,154 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; + +import java.io.Closeable; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.PrintStream; +import java.util.ArrayList; +import java.util.Collections; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; +import java.util.function.Predicate; +import java.util.stream.Collectors; + +/** + * Generates the release notes i.e. list of changes that have gone into this release. They are grouped by the + * type of change, then by team area. + */ +public class ReleaseNotesGenerator implements Closeable { + /** + * These mappings translate change types into the headings as they should appears in the release notes. + */ + private static final Map TYPE_LABELS = new HashMap<>(); + + static { + TYPE_LABELS.put("breaking", "Breaking changes"); + TYPE_LABELS.put("breaking-java", "Breaking Java changes"); + TYPE_LABELS.put("deprecation", "Deprecations"); + TYPE_LABELS.put("feature", "New features"); + TYPE_LABELS.put("enhancement", "Enhancements"); + TYPE_LABELS.put("bug", "Bug fixes"); + TYPE_LABELS.put("regression", "Regressions"); + TYPE_LABELS.put("upgrade", "Upgrades"); + } + + private final PrintStream out; + + public ReleaseNotesGenerator(File outputFile) throws FileNotFoundException { + this.out = new PrintStream(outputFile); + } + + @Override + public void close() throws IOException { + this.out.close(); + } + + public void generate(List changelogs) { + final Version elasticsearchVersion = VersionProperties.getElasticsearchVersion(); + + final Predicate includedInSameMinor = v -> v.getMajor() == elasticsearchVersion.getMajor() + && v.getMinor() == elasticsearchVersion.getMinor(); + + final Map> changelogsByVersion = changelogs.stream() + .collect( + Collectors.groupingBy( + entry -> entry.getVersions() + .stream() + .map(v -> Version.fromString(v.replaceFirst("^v", ""))) + .filter(includedInSameMinor) + .sorted() + .findFirst() + .get(), + Collectors.toList() + ) + ); + + final List changelogVersions = new ArrayList<>(changelogsByVersion.keySet()); + changelogVersions.sort(Version::compareTo); + Collections.reverse(changelogVersions); + + for (Version version : changelogVersions) { + generateForVersion(version, changelogsByVersion.get(version)); + } + } + + private void generateForVersion(Version version, List changelogs) { + Map> groupedChangelogs = changelogs.stream() + .collect( + Collectors.groupingBy( + // Breaking changes come first in the output + entry -> entry.getBreaking() == null ? entry.getType() : "breaking", + TreeMap::new, + Collectors.toList() + ) + ); + + generateHeader(version); + + groupedChangelogs.forEach((type, changelogsByType) -> { + generateGroupHeader(version, type); + + final TreeMap> changelogsByArea = changelogsByType.stream() + .collect(Collectors.groupingBy(ChangelogEntry::getArea, TreeMap::new, Collectors.toList())); + + changelogsByArea.forEach((area, perAreaChangelogs) -> { + out.println(area + "::"); + + // Generate the output lines first so that we can sort them + perAreaChangelogs.stream().map(log -> { + final StringBuilder sb = new StringBuilder( + "* " + log.getSummary() + " {es-pull}" + log.getPr() + "[#" + log.getPr() + "]" + ); + final List issues = log.getIssues(); + if (issues != null && issues.isEmpty() == false) { + sb.append(issues.size() == 1 ? " (issue: " : " (issues: "); + sb.append(issues.stream().map(i -> "{es-issue}" + i + "[#" + i + "]").collect(Collectors.joining(", "))); + sb.append(")"); + } + return sb.toString(); + }).sorted().forEach(out::println); + + out.println(); + }); + + out.println(); + }); + } + + private void generateHeader(Version version) { + String branch = version.getMajor() + "." + version.getMinor(); + + out.println("[[release-notes-" + version + "]]"); + out.println("== {es} version " + version); + + if (version.getLabels().contains("SNAPSHOT")) { + out.println(); + out.println("coming[" + version + "]"); + } + + out.println(); + out.println("Also see <>."); + out.println(); + } + + private void generateGroupHeader(Version version, String type) { + out.println("[[" + type + "-" + version + "]]"); + out.println("[discrete]"); + out.println("=== " + TYPE_LABELS.get(type)); + out.println(); + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesIndexUpdater.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesIndexUpdater.java new file mode 100644 index 0000000000000..1374d6d591ae3 --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesIndexUpdater.java @@ -0,0 +1,82 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; + +import java.io.File; +import java.io.IOException; +import java.io.PrintStream; +import java.nio.file.Files; +import java.util.List; +import java.util.stream.Collectors; + +/** + * This class ensures that the release notes index page has the appropriate anchor and include directive + * for the current repository version. It achieves this by parsing out the existing entries and writing + * out the file again. + */ +public class ReleaseNotesIndexUpdater { + + public static void update(File indexFile) throws IOException { + final Version version = VersionProperties.getElasticsearchVersion(); + final List indexLines = Files.readAllLines(indexFile.toPath()); + + final List existingVersions = indexLines.stream() + .filter(line -> line.startsWith("* < line.replace("* <>", "")) + .collect(Collectors.toList()); + + final List existingIncludes = indexLines.stream() + .filter(line -> line.startsWith("include::")) + .map(line -> line.replace("include::release-notes/", "").replace(".asciidoc[]", "")) + .collect(Collectors.toList()); + + final String versionString = VersionProperties.getElasticsearch(); + + if (existingVersions.contains(versionString) == false) { + int insertionIndex = existingVersions.size() - 1; + while (insertionIndex > 0 && Version.fromString(existingVersions.get(insertionIndex)).before(version)) { + insertionIndex -= 1; + } + existingVersions.add(insertionIndex, version.toString()); + } + + final String includeString = version.getMajor() + "." + version.getMinor(); + + if (existingIncludes.contains(includeString) == false) { + int insertionIndex = existingIncludes.size() - 1; + while (insertionIndex > 0 && Version.fromString(ensurePatchVersion(existingIncludes.get(insertionIndex))).before(version)) { + insertionIndex -= 1; + } + existingIncludes.add(insertionIndex, includeString); + } + + final PrintStream out = new PrintStream(indexFile); + + out.println("[[es-release-notes]]"); + out.println("= Release notes"); + out.println(); + out.println("[partintro]"); + out.println("--"); + out.println(); + out.println("This section summarizes the changes in each release."); + out.println(); + existingVersions.forEach(v -> out.println("* <>")); + out.println(); + out.println("--"); + out.println(); + existingIncludes.forEach(majorMinor -> out.println("include::release-notes/" + majorMinor + ".asciidoc[]")); + } + + private static String ensurePatchVersion(String version) { + return version.matches("^\\d+\\.\\d+\\.\\d+.*$") ? version : version + ".0"; + } +} diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java new file mode 100644 index 0000000000000..8bcd0d6e4a414 --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java @@ -0,0 +1,85 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.elasticsearch.gradle.Version; +import org.elasticsearch.gradle.VersionProperties; +import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; +import org.gradle.api.Plugin; +import org.gradle.api.Project; +import org.gradle.api.file.ProjectLayout; +import org.gradle.api.provider.Provider; +import org.gradle.api.tasks.util.PatternSet; + +import javax.inject.Inject; +import java.io.File; + +/** + * This plugin defines tasks related to releasing Elasticsearch. + */ +public class ReleaseToolsPlugin implements Plugin { + + private final ProjectLayout projectLayout; + + @Inject + public ReleaseToolsPlugin(ProjectLayout projectLayout) { + this.projectLayout = projectLayout; + } + + @Override + public void apply(Project project) { + final Provider validateChangelogs = project.getTasks() + .register("validateChangelogs", ValidateYamlAgainstSchemaTask.class, task -> { + task.setGroup("Documentation"); + task.setDescription("Validates that all the changelog YAML files are well-formed"); + + task.setInputFiles( + projectLayout.getProjectDirectory() + .dir("docs/changelog") + .getAsFileTree() + .matching(new PatternSet().include("**/*.yml", "**/*.yaml")) + ); + task.setJsonSchema(new File(project.getRootDir(), "buildSrc/src/main/resources/changelog-schema.json")); + task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); + }); + + project.getTasks().register("generateReleaseNotes", GenerateReleaseNotesTask.class).configure(action -> { + final Version version = VersionProperties.getElasticsearchVersion(); + + action.setGroup("Documentation"); + action.setDescription("Generates release notes from changelog files held in this checkout"); + + action.setChangelogs( + projectLayout.getProjectDirectory() + .dir("docs/changelog") + .getAsFileTree() + .matching(new PatternSet().include("**/*.yml", "**/*.yaml")) + .getFiles() + ); + + action.setReleaseNotesIndexFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes.asciidoc")); + + action.setReleaseNotesFile( + projectLayout.getProjectDirectory() + .file(String.format("docs/reference/release-notes/%d.%d.asciidoc", version.getMajor(), version.getMinor())) + ); + + action.setReleaseHighlightsFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes/highlights.asciidoc")); + + action.setBreakingChangesFile( + projectLayout.getProjectDirectory() + .file(String.format("docs/reference/migration/migrate_%d_%d.asciidoc", version.getMajor(), version.getMinor())) + ); + + action.dependsOn(validateChangelogs); + }); + + project.getTasks().named("check").configure(task -> task.dependsOn(validateChangelogs)); + } +} diff --git a/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.release-tools.properties b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.release-tools.properties new file mode 100644 index 0000000000000..e0140b25e4fb7 --- /dev/null +++ b/buildSrc/src/main/resources/META-INF/gradle-plugins/elasticsearch.release-tools.properties @@ -0,0 +1 @@ +implementation-class=org.elasticsearch.gradle.release.ReleaseToolsPlugin diff --git a/buildSrc/src/main/resources/changelog-schema.json b/buildSrc/src/main/resources/changelog-schema.json new file mode 100644 index 0000000000000..c4832401646b7 --- /dev/null +++ b/buildSrc/src/main/resources/changelog-schema.json @@ -0,0 +1,202 @@ +{ + "$schema": "http://json-schema.org/draft-07/schema#", + "$id": "https://github.com/elastic/elasticsearch/tree/master/docs/changelog", + "$ref": "#/definitions/Changelog", + "definitions": { + "Changelog": { + "type": "object", + "properties": { + "pr": { + "type": "integer", + "minimum": 1 + }, + "issues": { + "type": "array", + "items": { + "type": "integer" + } + }, + "area": { + "type": "string", + "enum": [ + "Aggregations", + "Allocation", + "Authorization", + "Cluster Coordination", + "Distributed", + "EQL", + "Engine", + "Engine changes", + "Features/Features", + "Features/ILM+SLM", + "Features/Indices APIs", + "Features/Ingest", + "Features/Monitoring", + "Geo", + "Infra/Core", + "Infra/Logging", + "Infra/Plugins", + "Infra/Scripting", + "Infra/Settings", + "Machine Learning", + "Packaging", + "Query Languages", + "Ranking", + "Rollup", + "Search", + "Security", + "SQL", + "Task Management" + ] + }, + "type": { + "type": "string", + "enum": [ + "breaking", + "breaking-java", + "deprecation", + "feature", + "enhancement", + "bug", + "regression", + "upgrade" + ] + }, + "summary": { + "type": "string", + "minLength": 1 + }, + "versions": { + "type": "array", + "items": { + "type": "string", + "pattern": "^v?\\d+\\.\\d+\\.\\d+$", + "minItems": 1 + } + }, + "highlight": { + "$ref": "#/definitions/Highlight" + }, + "breaking": { + "$ref": "#/definitions/Breaking" + }, + "deprecation": { + "$ref": "#/definitions/Deprecation" + } + }, + "required": [ + "pr", + "area", + "type", + "summary", + "versions" + ] + }, + "Highlight": { + "properties": { + "notable": { + "type": "boolean" + }, + "title": { + "type": "string", + "minLength": 1 + }, + "summary": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "title", + "summary" + ] + }, + "Breaking": { + "properties": { + "area": { + "$ref": "#/definitions/breakingArea" + }, + "title": { + "type": "string", + "minLength": 1 + }, + "details": { + "type": "string", + "minLength": 1 + }, + "impact": { + "type": "string", + "minLength": 1 + }, + "isNotable": { + "type": "boolean" + }, + "anchor": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "area", + "title", + "details", + "impact" + ] + }, + "Deprecation": { + "properties": { + "area": { + "$ref": "#/definitions/breakingArea" + }, + "title": { + "type": "string", + "minLength": 1 + }, + "body": { + "type": "string", + "minLength": 1 + }, + "anchor": { + "type": "string", + "minLength": 1 + } + }, + "required": [ + "area", + "title", + "body" + ] + }, + "breakingArea": { + "type": "string", + "enum": [ + "API", + "Aggregation", + "Allocation", + "Authentication", + "CCR", + "Cluster", + "Discovery", + "Engine", + "HTTP", + "Highlighters", + "Indices", + "Java", + "License Information", + "Logging", + "Machine learning", + "Mappings", + "Networking", + "Plugins", + "Script cache", + "Search Changes", + "Search", + "Security", + "Settings", + "Snapshot and Restore", + "Transform", + "Transport" + ] + } + } +} diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java b/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java index 55cc2b498e317..a3941633231b1 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java @@ -12,10 +12,15 @@ import org.junit.Rule; import org.junit.rules.ExpectedException; -import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; +import static java.util.Arrays.asList; +import static org.hamcrest.Matchers.contains; +import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.hasItems; + public class VersionTests extends GradleUnitTestCase { @Rule @@ -41,29 +46,30 @@ public void testRelaxedVersionParsing() { public void testCompareWithStringVersions() { assertTrue("1.10.20 is not interpreted as before 2.0.0", Version.fromString("1.10.20").before("2.0.0")); - assertTrue( + assertEquals( "7.0.0-alpha1 should be equal to 7.0.0-alpha1", - Version.fromString("7.0.0-alpha1").equals(Version.fromString("7.0.0-alpha1")) + Version.fromString("7.0.0-alpha1"), + Version.fromString("7.0.0-alpha1") ); - assertTrue( + assertEquals( "7.0.0-SNAPSHOT should be equal to 7.0.0-SNAPSHOT", - Version.fromString("7.0.0-SNAPSHOT").equals(Version.fromString("7.0.0-SNAPSHOT")) + Version.fromString("7.0.0-SNAPSHOT"), + Version.fromString("7.0.0-SNAPSHOT") ); } public void testCollections() { - assertTrue( - Arrays.asList( - Version.fromString("5.2.0"), - Version.fromString("5.2.1-SNAPSHOT"), - Version.fromString("6.0.0"), - Version.fromString("6.0.1"), - Version.fromString("6.1.0") - ).containsAll(Arrays.asList(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))) + List aList = asList( + Version.fromString("5.2.0"), + Version.fromString("5.2.1-SNAPSHOT"), + Version.fromString("6.0.0"), + Version.fromString("6.0.1"), + Version.fromString("6.1.0") ); - Set versions = new HashSet<>(); - versions.addAll( - Arrays.asList( + assertThat(aList, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); + + Set aSet = new HashSet<>( + asList( Version.fromString("5.2.0"), Version.fromString("5.2.1-SNAPSHOT"), Version.fromString("6.0.0"), @@ -71,9 +77,7 @@ public void testCollections() { Version.fromString("6.1.0") ) ); - Set subset = new HashSet<>(); - subset.addAll(Arrays.asList(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); - assertTrue(versions.containsAll(subset)); + assertThat(aSet, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); } public void testToString() { @@ -97,6 +101,20 @@ public void testExceptionSyntax() { Version.fromString("foo.bar.baz"); } + public void testLabels() { + Version v = Version.fromString("1.2.3"); + assertThat(v.getLabels(), empty()); + + v = Version.fromString("1.2.3-rc1"); + assertThat(v.getLabels(), contains("rc1")); + + v = Version.fromString("1.2.3-rc1-SNAPSHOT"); + assertThat(v.getLabels(), contains("rc1", "SNAPSHOT")); + + v = Version.fromString("1.2.3-SNAPSHOT"); + assertThat(v.getLabels(), contains("SNAPSHOT")); + } + private void assertOrder(Version smaller, Version bigger) { assertEquals(smaller + " should be smaller than " + bigger, -1, smaller.compareTo(bigger)); } From 507142df97df318336e6a7d281c7d4bc6c9ecfb0 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 31 Mar 2021 13:12:59 +0100 Subject: [PATCH 02/22] Revise generated changelog files --- docs/changelog/27600.yaml | 8 ++++ docs/changelog/33511.yaml | 36 ++++++++++++++ docs/changelog/37907.yaml | 8 ++++ docs/changelog/38413.yaml | 7 +++ docs/changelog/39328.yaml | 12 +++++ docs/changelog/39346.yaml | 8 ++++ docs/changelog/39450.yaml | 15 ++++++ docs/changelog/39593.yaml | 24 ++++++++++ docs/changelog/39747.yaml | 7 +++ docs/changelog/40033.yaml | 14 ++++++ docs/changelog/40379.yaml | 8 ++++ docs/changelog/40419.yaml | 21 +++++++++ docs/changelog/40496.yaml | 17 +++++++ docs/changelog/40878.yaml | 16 +++++++ docs/changelog/41007.yaml | 18 +++++++ docs/changelog/41011.yaml | 39 ++++++++++++++++ docs/changelog/41124.yaml | 9 ++++ docs/changelog/41347.yaml | 7 +++ docs/changelog/41492.yaml | 7 +++ docs/changelog/41502.yaml | 22 +++++++++ docs/changelog/41560.yaml | 17 +++++++ docs/changelog/41620.yaml | 8 ++++ docs/changelog/41640.yaml | 12 +++++ docs/changelog/41676.yaml | 12 +++++ docs/changelog/41808.yaml | 9 ++++ docs/changelog/41972.yaml | 8 ++++ docs/changelog/42090.yaml | 98 +++++++++++++++++++++++++++++++++++++++ docs/changelog/42112.yaml | 16 +++++++ docs/changelog/42155.yaml | 7 +++ docs/changelog/42174.yaml | 14 ++++++ docs/changelog/42179.yaml | 8 ++++ docs/changelog/42198.yaml | 13 ++++++ docs/changelog/42202.yaml | 12 +++++ docs/changelog/42253.yaml | 10 ++++ docs/changelog/42288.yaml | 8 ++++ docs/changelog/42333.yaml | 18 +++++++ docs/changelog/42359.yaml | 15 ++++++ docs/changelog/42381.yaml | 21 +++++++++ docs/changelog/42428.yaml | 23 +++++++++ docs/changelog/42471.yaml | 15 ++++++ docs/changelog/42489.yaml | 18 +++++++ docs/changelog/42538.yaml | 12 +++++ docs/changelog/42654.yaml | 17 +++++++ docs/changelog/42729.yaml | 16 +++++++ docs/changelog/42770.yaml | 13 ++++++ docs/changelog/42809.yaml | 18 +++++++ docs/changelog/42815.yaml | 16 +++++++ docs/changelog/42816.yaml | 14 ++++++ docs/changelog/42817.yaml | 14 ++++++ docs/changelog/43099.yaml | 7 +++ docs/changelog/43108.yaml | 14 ++++++ docs/changelog/43164.yaml | 7 +++ docs/changelog/43236.yaml | 14 ++++++ docs/changelog/43344.yaml | 7 +++ docs/changelog/43373.yaml | 22 +++++++++ docs/changelog/43382.yaml | 8 ++++ docs/changelog/43430.yaml | 7 +++ docs/changelog/43536.yaml | 7 +++ docs/changelog/43558.yaml | 8 ++++ docs/changelog/43559.yaml | 7 +++ docs/changelog/43686.yaml | 16 +++++++ docs/changelog/43781.yaml | 10 ++++ docs/changelog/44090.yaml | 23 +++++++++ docs/changelog/44133.yaml | 8 ++++ docs/changelog/44264.yaml | 29 ++++++++++++ docs/changelog/44642.yaml | 7 +++ docs/changelog/44752.yaml | 20 ++++++++ docs/changelog/44761.yaml | 24 ++++++++++ docs/changelog/44894.yaml | 17 +++++++ docs/changelog/44902.yaml | 8 ++++ docs/changelog/44905.yaml | 8 ++++ docs/changelog/44929.yaml | 25 ++++++++++ docs/changelog/44982.yaml | 15 ++++++ docs/changelog/45497.yaml | 9 ++++ docs/changelog/45586.yaml | 8 ++++ docs/changelog/45675.yaml | 12 +++++ docs/changelog/45735.yaml | 24 ++++++++++ docs/changelog/45878.yaml | 8 ++++ docs/changelog/45892.yaml | 17 +++++++ docs/changelog/45905.yaml | 17 +++++++ docs/changelog/45940.yaml | 17 +++++++ docs/changelog/45945.yaml | 21 +++++++++ docs/changelog/45947.yaml | 18 +++++++ docs/changelog/46055.yaml | 8 ++++ docs/changelog/46147.yaml | 22 +++++++++ docs/changelog/46327.yaml | 9 ++++ docs/changelog/46603.yaml | 8 ++++ docs/changelog/46702.yaml | 8 ++++ docs/changelog/46749.yaml | 7 +++ docs/changelog/46967.yaml | 9 ++++ docs/changelog/46983.yaml | 17 +++++++ docs/changelog/47105.yaml | 8 ++++ docs/changelog/47203.yaml | 17 +++++++ docs/changelog/47207.yaml | 17 +++++++ docs/changelog/47364.yaml | 20 ++++++++ docs/changelog/47650.yaml | 7 +++ docs/changelog/47651.yaml | 7 +++ docs/changelog/47717.yaml | 17 +++++++ docs/changelog/48170.yaml | 18 +++++++ docs/changelog/48443.yaml | 19 ++++++++ docs/changelog/48471.yaml | 19 ++++++++ docs/changelog/48632.yaml | 17 +++++++ docs/changelog/48725.yaml | 14 ++++++ docs/changelog/48781.yaml | 15 ++++++ docs/changelog/48927.yaml | 8 ++++ docs/changelog/48949.yaml | 7 +++ docs/changelog/49079.yaml | 7 +++ docs/changelog/49460.yaml | 17 +++++++ docs/changelog/49728.yaml | 8 ++++ docs/changelog/50067.yaml | 8 ++++ docs/changelog/50277.yaml | 9 ++++ docs/changelog/50359.yaml | 8 ++++ docs/changelog/50415.yaml | 7 +++ docs/changelog/50594.yaml | 24 ++++++++++ docs/changelog/50739.yaml | 21 +++++++++ docs/changelog/50844.yaml | 20 ++++++++ docs/changelog/50882.yaml | 20 ++++++++ docs/changelog/51189.yaml | 8 ++++ docs/changelog/51195.yaml | 17 +++++++ docs/changelog/51219.yaml | 16 +++++++ docs/changelog/51417.yaml | 8 ++++ docs/changelog/51421.yaml | 8 ++++ docs/changelog/51697.yaml | 20 ++++++++ docs/changelog/51704.yaml | 8 ++++ docs/changelog/51716.yaml | 18 +++++++ docs/changelog/52208.yaml | 9 ++++ docs/changelog/52257.yaml | 15 ++++++ docs/changelog/52280.yaml | 21 +++++++++ docs/changelog/52987.yaml | 7 +++ docs/changelog/53314.yaml | 20 ++++++++ docs/changelog/53715.yaml | 8 ++++ docs/changelog/53785.yaml | 8 ++++ docs/changelog/53845.yaml | 19 ++++++++ docs/changelog/54175.yaml | 18 +++++++ docs/changelog/54381.yaml | 18 +++++++ docs/changelog/54753.yaml | 8 ++++ docs/changelog/54904.yaml | 8 ++++ docs/changelog/54953.yaml | 8 ++++ docs/changelog/55078.yaml | 12 +++++ docs/changelog/55100.yaml | 14 ++++++ docs/changelog/55109.yaml | 8 ++++ docs/changelog/55181.yaml | 8 ++++ docs/changelog/55399.yaml | 8 ++++ docs/changelog/55489.yaml | 19 ++++++++ docs/changelog/55544.yaml | 7 +++ docs/changelog/55622.yaml | 15 ++++++ docs/changelog/55673.yaml | 19 ++++++++ docs/changelog/55736.yaml | 8 ++++ docs/changelog/56149.yaml | 8 ++++ docs/changelog/56211.yaml | 19 ++++++++ docs/changelog/57200.yaml | 7 +++ docs/changelog/57591.yaml | 18 +++++++ docs/changelog/57594.yaml | 7 +++ docs/changelog/58220.yaml | 8 ++++ docs/changelog/58387.yaml | 7 +++ docs/changelog/58732.yaml | 8 ++++ docs/changelog/58779.yaml | 8 ++++ docs/changelog/59262.yaml | 17 +++++++ docs/changelog/59265.yaml | 25 ++++++++++ docs/changelog/59336.yaml | 7 +++ docs/changelog/59349.yaml | 8 ++++ docs/changelog/59475.yaml | 7 +++ docs/changelog/59501.yaml | 9 ++++ docs/changelog/59507.yaml | 20 ++++++++ docs/changelog/59698.yaml | 16 +++++++ docs/changelog/59870.yaml | 9 ++++ docs/changelog/59949.yaml | 7 +++ docs/changelog/60044.yaml | 7 +++ docs/changelog/60158.yaml | 8 ++++ docs/changelog/60351.yaml | 8 ++++ docs/changelog/60505.yaml | 7 +++ docs/changelog/60873.yaml | 19 ++++++++ docs/changelog/61043.yaml | 15 ++++++ docs/changelog/61259.yaml | 8 ++++ docs/changelog/61427.yaml | 17 +++++++ docs/changelog/61428.yaml | 9 ++++ docs/changelog/61508.yaml | 7 +++ docs/changelog/61594.yaml | 7 +++ docs/changelog/61825.yaml | 7 +++ docs/changelog/62156.yaml | 7 +++ docs/changelog/62309.yaml | 17 +++++++ docs/changelog/62468.yaml | 7 +++ docs/changelog/62639.yaml | 8 ++++ docs/changelog/62646.yaml | 7 +++ docs/changelog/63038.yaml | 7 +++ docs/changelog/63384.yaml | 8 ++++ docs/changelog/63660.yaml | 8 ++++ docs/changelog/63692.yaml | 21 +++++++++ docs/changelog/64252.yaml | 12 +++++ docs/changelog/64327.yaml | 8 ++++ docs/changelog/64406.yaml | 8 ++++ docs/changelog/64423.yaml | 8 ++++ docs/changelog/64472.yaml | 21 +++++++++ docs/changelog/64481.yaml | 8 ++++ docs/changelog/64650.yaml | 8 ++++ docs/changelog/64708.yaml | 9 ++++ docs/changelog/64721.yaml | 9 ++++ docs/changelog/64732.yaml | 18 +++++++ docs/changelog/64794.yaml | 8 ++++ docs/changelog/64867.yaml | 20 ++++++++ docs/changelog/64868.yaml | 20 ++++++++ docs/changelog/64869.yaml | 8 ++++ docs/changelog/65255.yaml | 7 +++ docs/changelog/65259.yaml | 7 +++ docs/changelog/65500.yaml | 8 ++++ docs/changelog/65590.yaml | 9 ++++ docs/changelog/65753.yaml | 19 ++++++++ docs/changelog/66297.yaml | 8 ++++ docs/changelog/66671.yaml | 8 ++++ docs/changelog/67154.yaml | 7 +++ docs/changelog/67158.yaml | 8 ++++ docs/changelog/67216.yaml | 8 ++++ docs/changelog/67374.yaml | 9 ++++ docs/changelog/67409.yaml | 7 +++ docs/changelog/67552.yaml | 8 ++++ docs/changelog/67672.yaml | 7 +++ docs/changelog/67677.yaml | 9 ++++ docs/changelog/67923.yaml | 8 ++++ docs/changelog/68113.yaml | 8 ++++ docs/changelog/68157.yaml | 9 ++++ docs/changelog/68176.yaml | 8 ++++ docs/changelog/68214.yaml | 9 ++++ docs/changelog/68564.yaml | 18 +++++++ docs/changelog/68606.yaml | 7 +++ docs/changelog/68648.yaml | 8 ++++ docs/changelog/68754.yaml | 7 +++ docs/changelog/68808.yaml | 8 ++++ docs/changelog/68966.yaml | 7 +++ docs/changelog/69029.yaml | 9 ++++ docs/changelog/69131.yaml | 8 ++++ docs/changelog/69149.yaml | 20 ++++++++ docs/changelog/69512.yaml | 7 +++ docs/changelog/69606.yaml | 7 +++ docs/changelog/69710.yaml | 8 ++++ docs/changelog/69774.yaml | 8 ++++ docs/changelog/69901.yaml | 7 +++ docs/changelog/70209.yaml | 9 ++++ docs/changelog/70243.yaml | 7 +++ 238 files changed, 2994 insertions(+) create mode 100644 docs/changelog/27600.yaml create mode 100644 docs/changelog/33511.yaml create mode 100644 docs/changelog/37907.yaml create mode 100644 docs/changelog/38413.yaml create mode 100644 docs/changelog/39328.yaml create mode 100644 docs/changelog/39346.yaml create mode 100644 docs/changelog/39450.yaml create mode 100644 docs/changelog/39593.yaml create mode 100644 docs/changelog/39747.yaml create mode 100644 docs/changelog/40033.yaml create mode 100644 docs/changelog/40379.yaml create mode 100644 docs/changelog/40419.yaml create mode 100644 docs/changelog/40496.yaml create mode 100644 docs/changelog/40878.yaml create mode 100644 docs/changelog/41007.yaml create mode 100644 docs/changelog/41011.yaml create mode 100644 docs/changelog/41124.yaml create mode 100644 docs/changelog/41347.yaml create mode 100644 docs/changelog/41492.yaml create mode 100644 docs/changelog/41502.yaml create mode 100644 docs/changelog/41560.yaml create mode 100644 docs/changelog/41620.yaml create mode 100644 docs/changelog/41640.yaml create mode 100644 docs/changelog/41676.yaml create mode 100644 docs/changelog/41808.yaml create mode 100644 docs/changelog/41972.yaml create mode 100644 docs/changelog/42090.yaml create mode 100644 docs/changelog/42112.yaml create mode 100644 docs/changelog/42155.yaml create mode 100644 docs/changelog/42174.yaml create mode 100644 docs/changelog/42179.yaml create mode 100644 docs/changelog/42198.yaml create mode 100644 docs/changelog/42202.yaml create mode 100644 docs/changelog/42253.yaml create mode 100644 docs/changelog/42288.yaml create mode 100644 docs/changelog/42333.yaml create mode 100644 docs/changelog/42359.yaml create mode 100644 docs/changelog/42381.yaml create mode 100644 docs/changelog/42428.yaml create mode 100644 docs/changelog/42471.yaml create mode 100644 docs/changelog/42489.yaml create mode 100644 docs/changelog/42538.yaml create mode 100644 docs/changelog/42654.yaml create mode 100644 docs/changelog/42729.yaml create mode 100644 docs/changelog/42770.yaml create mode 100644 docs/changelog/42809.yaml create mode 100644 docs/changelog/42815.yaml create mode 100644 docs/changelog/42816.yaml create mode 100644 docs/changelog/42817.yaml create mode 100644 docs/changelog/43099.yaml create mode 100644 docs/changelog/43108.yaml create mode 100644 docs/changelog/43164.yaml create mode 100644 docs/changelog/43236.yaml create mode 100644 docs/changelog/43344.yaml create mode 100644 docs/changelog/43373.yaml create mode 100644 docs/changelog/43382.yaml create mode 100644 docs/changelog/43430.yaml create mode 100644 docs/changelog/43536.yaml create mode 100644 docs/changelog/43558.yaml create mode 100644 docs/changelog/43559.yaml create mode 100644 docs/changelog/43686.yaml create mode 100644 docs/changelog/43781.yaml create mode 100644 docs/changelog/44090.yaml create mode 100644 docs/changelog/44133.yaml create mode 100644 docs/changelog/44264.yaml create mode 100644 docs/changelog/44642.yaml create mode 100644 docs/changelog/44752.yaml create mode 100644 docs/changelog/44761.yaml create mode 100644 docs/changelog/44894.yaml create mode 100644 docs/changelog/44902.yaml create mode 100644 docs/changelog/44905.yaml create mode 100644 docs/changelog/44929.yaml create mode 100644 docs/changelog/44982.yaml create mode 100644 docs/changelog/45497.yaml create mode 100644 docs/changelog/45586.yaml create mode 100644 docs/changelog/45675.yaml create mode 100644 docs/changelog/45735.yaml create mode 100644 docs/changelog/45878.yaml create mode 100644 docs/changelog/45892.yaml create mode 100644 docs/changelog/45905.yaml create mode 100644 docs/changelog/45940.yaml create mode 100644 docs/changelog/45945.yaml create mode 100644 docs/changelog/45947.yaml create mode 100644 docs/changelog/46055.yaml create mode 100644 docs/changelog/46147.yaml create mode 100644 docs/changelog/46327.yaml create mode 100644 docs/changelog/46603.yaml create mode 100644 docs/changelog/46702.yaml create mode 100644 docs/changelog/46749.yaml create mode 100644 docs/changelog/46967.yaml create mode 100644 docs/changelog/46983.yaml create mode 100644 docs/changelog/47105.yaml create mode 100644 docs/changelog/47203.yaml create mode 100644 docs/changelog/47207.yaml create mode 100644 docs/changelog/47364.yaml create mode 100644 docs/changelog/47650.yaml create mode 100644 docs/changelog/47651.yaml create mode 100644 docs/changelog/47717.yaml create mode 100644 docs/changelog/48170.yaml create mode 100644 docs/changelog/48443.yaml create mode 100644 docs/changelog/48471.yaml create mode 100644 docs/changelog/48632.yaml create mode 100644 docs/changelog/48725.yaml create mode 100644 docs/changelog/48781.yaml create mode 100644 docs/changelog/48927.yaml create mode 100644 docs/changelog/48949.yaml create mode 100644 docs/changelog/49079.yaml create mode 100644 docs/changelog/49460.yaml create mode 100644 docs/changelog/49728.yaml create mode 100644 docs/changelog/50067.yaml create mode 100644 docs/changelog/50277.yaml create mode 100644 docs/changelog/50359.yaml create mode 100644 docs/changelog/50415.yaml create mode 100644 docs/changelog/50594.yaml create mode 100644 docs/changelog/50739.yaml create mode 100644 docs/changelog/50844.yaml create mode 100644 docs/changelog/50882.yaml create mode 100644 docs/changelog/51189.yaml create mode 100644 docs/changelog/51195.yaml create mode 100644 docs/changelog/51219.yaml create mode 100644 docs/changelog/51417.yaml create mode 100644 docs/changelog/51421.yaml create mode 100644 docs/changelog/51697.yaml create mode 100644 docs/changelog/51704.yaml create mode 100644 docs/changelog/51716.yaml create mode 100644 docs/changelog/52208.yaml create mode 100644 docs/changelog/52257.yaml create mode 100644 docs/changelog/52280.yaml create mode 100644 docs/changelog/52987.yaml create mode 100644 docs/changelog/53314.yaml create mode 100644 docs/changelog/53715.yaml create mode 100644 docs/changelog/53785.yaml create mode 100644 docs/changelog/53845.yaml create mode 100644 docs/changelog/54175.yaml create mode 100644 docs/changelog/54381.yaml create mode 100644 docs/changelog/54753.yaml create mode 100644 docs/changelog/54904.yaml create mode 100644 docs/changelog/54953.yaml create mode 100644 docs/changelog/55078.yaml create mode 100644 docs/changelog/55100.yaml create mode 100644 docs/changelog/55109.yaml create mode 100644 docs/changelog/55181.yaml create mode 100644 docs/changelog/55399.yaml create mode 100644 docs/changelog/55489.yaml create mode 100644 docs/changelog/55544.yaml create mode 100644 docs/changelog/55622.yaml create mode 100644 docs/changelog/55673.yaml create mode 100644 docs/changelog/55736.yaml create mode 100644 docs/changelog/56149.yaml create mode 100644 docs/changelog/56211.yaml create mode 100644 docs/changelog/57200.yaml create mode 100644 docs/changelog/57591.yaml create mode 100644 docs/changelog/57594.yaml create mode 100644 docs/changelog/58220.yaml create mode 100644 docs/changelog/58387.yaml create mode 100644 docs/changelog/58732.yaml create mode 100644 docs/changelog/58779.yaml create mode 100644 docs/changelog/59262.yaml create mode 100644 docs/changelog/59265.yaml create mode 100644 docs/changelog/59336.yaml create mode 100644 docs/changelog/59349.yaml create mode 100644 docs/changelog/59475.yaml create mode 100644 docs/changelog/59501.yaml create mode 100644 docs/changelog/59507.yaml create mode 100644 docs/changelog/59698.yaml create mode 100644 docs/changelog/59870.yaml create mode 100644 docs/changelog/59949.yaml create mode 100644 docs/changelog/60044.yaml create mode 100644 docs/changelog/60158.yaml create mode 100644 docs/changelog/60351.yaml create mode 100644 docs/changelog/60505.yaml create mode 100644 docs/changelog/60873.yaml create mode 100644 docs/changelog/61043.yaml create mode 100644 docs/changelog/61259.yaml create mode 100644 docs/changelog/61427.yaml create mode 100644 docs/changelog/61428.yaml create mode 100644 docs/changelog/61508.yaml create mode 100644 docs/changelog/61594.yaml create mode 100644 docs/changelog/61825.yaml create mode 100644 docs/changelog/62156.yaml create mode 100644 docs/changelog/62309.yaml create mode 100644 docs/changelog/62468.yaml create mode 100644 docs/changelog/62639.yaml create mode 100644 docs/changelog/62646.yaml create mode 100644 docs/changelog/63038.yaml create mode 100644 docs/changelog/63384.yaml create mode 100644 docs/changelog/63660.yaml create mode 100644 docs/changelog/63692.yaml create mode 100644 docs/changelog/64252.yaml create mode 100644 docs/changelog/64327.yaml create mode 100644 docs/changelog/64406.yaml create mode 100644 docs/changelog/64423.yaml create mode 100644 docs/changelog/64472.yaml create mode 100644 docs/changelog/64481.yaml create mode 100644 docs/changelog/64650.yaml create mode 100644 docs/changelog/64708.yaml create mode 100644 docs/changelog/64721.yaml create mode 100644 docs/changelog/64732.yaml create mode 100644 docs/changelog/64794.yaml create mode 100644 docs/changelog/64867.yaml create mode 100644 docs/changelog/64868.yaml create mode 100644 docs/changelog/64869.yaml create mode 100644 docs/changelog/65255.yaml create mode 100644 docs/changelog/65259.yaml create mode 100644 docs/changelog/65500.yaml create mode 100644 docs/changelog/65590.yaml create mode 100644 docs/changelog/65753.yaml create mode 100644 docs/changelog/66297.yaml create mode 100644 docs/changelog/66671.yaml create mode 100644 docs/changelog/67154.yaml create mode 100644 docs/changelog/67158.yaml create mode 100644 docs/changelog/67216.yaml create mode 100644 docs/changelog/67374.yaml create mode 100644 docs/changelog/67409.yaml create mode 100644 docs/changelog/67552.yaml create mode 100644 docs/changelog/67672.yaml create mode 100644 docs/changelog/67677.yaml create mode 100644 docs/changelog/67923.yaml create mode 100644 docs/changelog/68113.yaml create mode 100644 docs/changelog/68157.yaml create mode 100644 docs/changelog/68176.yaml create mode 100644 docs/changelog/68214.yaml create mode 100644 docs/changelog/68564.yaml create mode 100644 docs/changelog/68606.yaml create mode 100644 docs/changelog/68648.yaml create mode 100644 docs/changelog/68754.yaml create mode 100644 docs/changelog/68808.yaml create mode 100644 docs/changelog/68966.yaml create mode 100644 docs/changelog/69029.yaml create mode 100644 docs/changelog/69131.yaml create mode 100644 docs/changelog/69149.yaml create mode 100644 docs/changelog/69512.yaml create mode 100644 docs/changelog/69606.yaml create mode 100644 docs/changelog/69710.yaml create mode 100644 docs/changelog/69774.yaml create mode 100644 docs/changelog/69901.yaml create mode 100644 docs/changelog/70209.yaml create mode 100644 docs/changelog/70243.yaml diff --git a/docs/changelog/27600.yaml b/docs/changelog/27600.yaml new file mode 100644 index 0000000000000..3a1439645142b --- /dev/null +++ b/docs/changelog/27600.yaml @@ -0,0 +1,8 @@ +pr: 27600 +issues: + - 27583 +area: Infra/Settings +type: enhancement +summary: Remove setting `index.optimize_auto_generated_id` +versions: + - v8.0.0 diff --git a/docs/changelog/33511.yaml b/docs/changelog/33511.yaml new file mode 100644 index 0000000000000..bade2fa61c39c --- /dev/null +++ b/docs/changelog/33511.yaml @@ -0,0 +1,36 @@ +pr: 33511 +issues: [] +area: Search +type: breaking, enhancement +summary: Make Fuzziness reject illegal values earlier +versions: + - v8.0.0 +breaking: + notable: false + title: Make Fuzziness reject illegal values earlier + anchor: make_fuzziness_reject_illegal_values_earlier + body: >- + The current java implementation of Fuzziness leaves a lot of room + forinitializing it with illegal values that either cause errors later when + thequeries reach the shards where they are executed or values that are + silentlyignored in favour of defaults. We should instead tighten the java + implementationof the class so that we only accept supported values. + Currently those arenumeric values representing the edit distances 0, 1 and + 2, optionally also asfloat or string, and the "AUTO" fuzziness, which can + come in a cusomizablevariant that allows specifying two value that define + the positions in a termwhere the AUTO option increases the allowed edit + distance. + + This change removes several redundant ways of object construction and + adds inputvalidation to the remaining ones. Java users should either + use one of thepredefined constants or use the static factory methods + `fromEdits(int)` or`fromString(String)` to create instances of the + class, while other ctors arehidden. This allows for instance control, + e.g. returning one of the constantswhen creating instances from an + integer value. + + Previously the class would accept any positive integer value and any + floatvalue, while in effect the maximum allowed edit distance was + capped at 2 inpractice. These values while throw an error now, as will + any other String valueother than "AUTO" that where previously accepted + but led to numeric exceptionswhen the query was executed. diff --git a/docs/changelog/37907.yaml b/docs/changelog/37907.yaml new file mode 100644 index 0000000000000..b1dd580baadd5 --- /dev/null +++ b/docs/changelog/37907.yaml @@ -0,0 +1,8 @@ +pr: 37907 +issues: + - 37897 +area: Search +type: bug +summary: Handle total hits equal to `track_total_hits` +versions: + - v8.0.0 diff --git a/docs/changelog/38413.yaml b/docs/changelog/38413.yaml new file mode 100644 index 0000000000000..53eef5ad04cf7 --- /dev/null +++ b/docs/changelog/38413.yaml @@ -0,0 +1,7 @@ +pr: 38413 +issues: [] +area: Infra/REST API +type: enhancement +summary: Introduce stability description to the REST API specification +versions: + - v8.0.0 diff --git a/docs/changelog/39328.yaml b/docs/changelog/39328.yaml new file mode 100644 index 0000000000000..04d8002aeaf63 --- /dev/null +++ b/docs/changelog/39328.yaml @@ -0,0 +1,12 @@ +pr: 39328 +issues: [] +area: Aggregations +type: breaking +summary: Remove `MovingAverage` pipeline aggregation +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `MovingAverage` pipeline aggregation + anchor: remove_movingaverage_pipeline_aggregation + body: This was deprecated in 6.4.0 and for the entirety of 7.0. Removed in 8.0 :) diff --git a/docs/changelog/39346.yaml b/docs/changelog/39346.yaml new file mode 100644 index 0000000000000..9ae9014a7d49c --- /dev/null +++ b/docs/changelog/39346.yaml @@ -0,0 +1,8 @@ +pr: 39346 +issues: + - 39073 +area: Snapshot/Restore +type: enhancement +summary: Unify blob store compress setting +versions: + - v8.0.0 diff --git a/docs/changelog/39450.yaml b/docs/changelog/39450.yaml new file mode 100644 index 0000000000000..30f17b77038a0 --- /dev/null +++ b/docs/changelog/39450.yaml @@ -0,0 +1,15 @@ +pr: 39450 +issues: [] +area: Aggregations +type: breaking +summary: Remove deprecated `_time` and `_term` sort orders +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated `_time` and `_term` sort orders + anchor: remove_deprecated_time_and_term_sort_orders + body: >- + Deprecated in 6.0, time to go :) + + This isn't really a bugfix so I feel like we missed the boat on 7.0? Just target 8.0? diff --git a/docs/changelog/39593.yaml b/docs/changelog/39593.yaml new file mode 100644 index 0000000000000..47cb19e8affac --- /dev/null +++ b/docs/changelog/39593.yaml @@ -0,0 +1,24 @@ +pr: 39593 +issues: + - 39163 +area: Features/ILM+SLM +type: breaking, enhancement +summary: Add lower bound on `poll_interval` +versions: + - v8.0.0 +breaking: + notable: false + title: Add lower bound on `poll_interval` + anchor: add_lower_bound_on_poll_interval_ + body: >- + #39163 + + Add lower bound on poll_interval + + [source] + + ----$ curl -H "Content-Type: application/json" -X PUT -d '{ "persistent": { "indices.lifecycle.poll_interval": "1ms", "logger.org.elasticsearch.xpack.indexlifecycle": "TRACE" }}' localhost:9200/_cluster/settings + + {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"failed to parse value [1ms] for setting [indices.lifecycle.poll_interval], must be >= [1s]"}],"type":"illegal_argument_exception","reason":"failed to parse value [1ms] for setting [indices.lifecycle.poll_interval], must be >= [1s]"},"status":400} + + ---- diff --git a/docs/changelog/39747.yaml b/docs/changelog/39747.yaml new file mode 100644 index 0000000000000..21cba1a4845ff --- /dev/null +++ b/docs/changelog/39747.yaml @@ -0,0 +1,7 @@ +pr: 39747 +issues: [] +area: Highlighting +type: bug +summary: Bug fix for `AnnotatedTextHighlighter` - port of 39525 +versions: + - v8.0.0 diff --git a/docs/changelog/40033.yaml b/docs/changelog/40033.yaml new file mode 100644 index 0000000000000..8b795e9fd0630 --- /dev/null +++ b/docs/changelog/40033.yaml @@ -0,0 +1,14 @@ +pr: 40033 +issues: [] +area: Snapshot/Restore +type: breaking, bug +summary: Blob Store compress default to true +versions: + - v8.0.0 +breaking: + notable: false + title: Blob Store compress default to true + anchor: blob_store_compress_default_to_true + body: Changed default of compress setting from false to true for blob + storerepositories. This aligns the code with documentation and also + seemslike the better default. diff --git a/docs/changelog/40379.yaml b/docs/changelog/40379.yaml new file mode 100644 index 0000000000000..65168315e58b4 --- /dev/null +++ b/docs/changelog/40379.yaml @@ -0,0 +1,8 @@ +pr: 40379 +issues: + - 40335 +area: Features/CAT APIs, Recovery +type: bug +summary: Fix cat recovery display of bytes fields +versions: + - v8.0.0 diff --git a/docs/changelog/40419.yaml b/docs/changelog/40419.yaml new file mode 100644 index 0000000000000..89c3eb9d0b646 --- /dev/null +++ b/docs/changelog/40419.yaml @@ -0,0 +1,21 @@ +pr: 40419 +issues: + - 37863 +area: Search +type: breaking +summary: Make remote cluster resolution stricter +versions: + - v8.0.0 +breaking: + notable: false + title: Make remote cluster resolution stricter + anchor: make_remote_cluster_resolution_stricter + body: >- + Remote cluster resolution is currently lenient, to support localindices that + may contain `:` in their name. From 8.0 on, there can nolonger be indices in + the cluster that contain `:` in their name, hencewe can make remote cluster + resolution stricter. Instead of treatingas local any index expression + containing a `:` whenever there is no correspondingmatching remote cluster + registered, we now throw a`NoSuchRemoteClusterException`. + + Closes #37863 diff --git a/docs/changelog/40496.yaml b/docs/changelog/40496.yaml new file mode 100644 index 0000000000000..21559bc0eedf7 --- /dev/null +++ b/docs/changelog/40496.yaml @@ -0,0 +1,17 @@ +pr: 40496 +issues: [] +area: Security +type: breaking, enhancement +summary: Remove obsolete security settings +versions: + - v8.0.0 +breaking: + notable: false + title: Remove obsolete security settings + anchor: remove_obsolete_security_settings + body: >- + Removes the deprecated `accept_default_password` setting.This setting become + redundant when default passwords were removedfrom 6.0, but the setting was + kept for BWC. + + Removes native role store cache settings.These have been unused since 5.2 but were kept for BWC. diff --git a/docs/changelog/40878.yaml b/docs/changelog/40878.yaml new file mode 100644 index 0000000000000..999b2b5d5d390 --- /dev/null +++ b/docs/changelog/40878.yaml @@ -0,0 +1,16 @@ +pr: 40878 +issues: [] +area: Infra/Circuit Breakers +type: breaking, enhancement +summary: Fixed synchronizing inflight breaker with internal variable +versions: + - v8.0.0 +breaking: + notable: false + title: Fixed synchronizing inflight breaker with internal variable + anchor: fixed_synchronizing_inflight_breaker_with_internal_variable + body: Tested http://localhost:9200/_nodes/stats/breaker and found out that the in + flight requests are divided with underscores.This is wrong some versions + already.This is a replacement of pull request + https://github.com/elastic/elasticsearch/pull/40755 and corrects the printed + value in elasticsearch. diff --git a/docs/changelog/41007.yaml b/docs/changelog/41007.yaml new file mode 100644 index 0000000000000..5e92e91f78972 --- /dev/null +++ b/docs/changelog/41007.yaml @@ -0,0 +1,18 @@ +pr: 41007 +issues: + - 40303 +area: Reindex +type: breaking, feature +summary: Reindex from Remote encoding +versions: + - v8.0.0 +breaking: + notable: false + title: Reindex from Remote encoding + anchor: reindex_from_remote_encoding + body: >- + Removed the leniency when encoding remote reindex search requests thatwas + introduced in 7.x. All index-names are now encoded before being sentto the + remote host. + + Follow-up to #40303 diff --git a/docs/changelog/41011.yaml b/docs/changelog/41011.yaml new file mode 100644 index 0000000000000..6afb5a4a2c1af --- /dev/null +++ b/docs/changelog/41011.yaml @@ -0,0 +1,39 @@ +pr: 41011 +issues: + - 39841 +area: Search +type: breaking +summary: Parse empty first line in msearch request body as action metadata +versions: + - v8.0.0 +breaking: + notable: false + title: Parse empty first line in msearch request body as action metadata + anchor: parse_empty_first_line_in_msearch_request_body_as_action_metadata + body: >- + It looks like when parsing the msearch request body, we allow for the first + line to be empty, yet that causes some different treatment for the first + line that ends up requiring the action metadata line, while all other lines + don't as they can be just empty. + + With this change we properly accept the following which we would otherwise reject due to the first line being empty: + + [source] + + ---- + + { "query": {"match_all": {}}} + + { "query": {"match_all": {}}}---- + + but we stop accepting the following (note the empty line before the first action metadata line: + + [source] + + ---- + + {}{ "query": {"match_all": {}}} + + { "query": {"match_all": {}}}---- + + Relates to #39841 diff --git a/docs/changelog/41124.yaml b/docs/changelog/41124.yaml new file mode 100644 index 0000000000000..9d0971dc38b6e --- /dev/null +++ b/docs/changelog/41124.yaml @@ -0,0 +1,9 @@ +pr: 41124 +issues: + - 41090 + - 41091 +area: Machine Learning +type: bug +summary: Checking if p-tasks metadata is null before updating state +versions: + - v8.0.0 diff --git a/docs/changelog/41347.yaml b/docs/changelog/41347.yaml new file mode 100644 index 0000000000000..2151e0af0bc14 --- /dev/null +++ b/docs/changelog/41347.yaml @@ -0,0 +1,7 @@ +pr: 41347 +issues: [] +area: Search +type: enhancement +summary: Make 0 as invalid value for `min_children` in `has_child` query +versions: + - v8.0.0 diff --git a/docs/changelog/41492.yaml b/docs/changelog/41492.yaml new file mode 100644 index 0000000000000..2a6735c979eb9 --- /dev/null +++ b/docs/changelog/41492.yaml @@ -0,0 +1,7 @@ +pr: 41492 +issues: [] +area: Infra/REST API +type: bug +summary: "Fix: added missing skip" +versions: + - v8.0.0 diff --git a/docs/changelog/41502.yaml b/docs/changelog/41502.yaml new file mode 100644 index 0000000000000..71f0eac7093ca --- /dev/null +++ b/docs/changelog/41502.yaml @@ -0,0 +1,22 @@ +pr: 41502 +issues: + - 39845 + - 35928 +area: Rollup +type: breaking, enhancement +summary: "`RollupStart` endpoint should return OK if job already started" +versions: + - v8.0.0 +breaking: + notable: false + title: "`RollupStart` endpoint should return OK if job already started" + anchor: _rollupstart_endpoint_should_return_ok_if_job_already_started + body: >- + If a job is started or indexing, RollupStart should always return a success + (200 OK) response since the job is, in fact, started + + This also removes some no-longer-needed serialization version checking on stop job (only needed for 6.x and 7.x) + + I'm not sure if this should be backported to 7.x. It's technically a breaking change, but also one that is unlikely to be noticed. It would only break someone if they were relying on the second invocation of the API to throw the exception so they could do something else. Thoughts? I also don't think this is critical, so if this is 8.0+ only that seems fine too. + + Closes https://github.com/elastic/elasticsearch/issues/39845 and https://github.com/elastic/elasticsearch/issues/35928 diff --git a/docs/changelog/41560.yaml b/docs/changelog/41560.yaml new file mode 100644 index 0000000000000..025437fb96f52 --- /dev/null +++ b/docs/changelog/41560.yaml @@ -0,0 +1,17 @@ +pr: 41560 +issues: + - 41164 +area: Analysis +type: breaking +summary: Cleanup versioned deprecations in analysis +versions: + - v8.0.0 +breaking: + notable: false + title: Cleanup versioned deprecations in analysis + anchor: cleanup_versioned_deprecations_in_analysis + body: >- + This commit removes versioned logic in analyzer creation that is nolonger + relevant for 8.0. + + relates #41164 diff --git a/docs/changelog/41620.yaml b/docs/changelog/41620.yaml new file mode 100644 index 0000000000000..2822330d84d80 --- /dev/null +++ b/docs/changelog/41620.yaml @@ -0,0 +1,8 @@ +pr: 41620 +issues: + - 41478 +area: Packaging +type: bug +summary: Suppress illegal access in plugin install +versions: + - v8.0.0 diff --git a/docs/changelog/41640.yaml b/docs/changelog/41640.yaml new file mode 100644 index 0000000000000..fa6b2d6514fa4 --- /dev/null +++ b/docs/changelog/41640.yaml @@ -0,0 +1,12 @@ +pr: 41640 +issues: [] +area: Search +type: breaking +summary: Removes typed endpoint from search and related APIs +versions: + - v8.0.0 +breaking: + notable: false + title: Removes typed endpoint from search and related APIs + anchor: removes_typed_endpoint_from_search_and_related_apis + body: Please supply some text here diff --git a/docs/changelog/41676.yaml b/docs/changelog/41676.yaml new file mode 100644 index 0000000000000..d233a57e7566c --- /dev/null +++ b/docs/changelog/41676.yaml @@ -0,0 +1,12 @@ +pr: 41676 +issues: [] +area: Mapping +type: breaking +summary: Removes typed URLs from mapping APIs +versions: + - v8.0.0 +breaking: + notable: false + title: Removes typed URLs from mapping APIs + anchor: removes_typed_urls_from_mapping_apis + body: Please supply some text here diff --git a/docs/changelog/41808.yaml b/docs/changelog/41808.yaml new file mode 100644 index 0000000000000..5ef442feecd62 --- /dev/null +++ b/docs/changelog/41808.yaml @@ -0,0 +1,9 @@ +pr: 41808 +issues: + - 41385 + - 38646 +area: TLS +type: enhancement +summary: Update TLS ciphers and protocols for JDK 11 +versions: + - v8.0.0 diff --git a/docs/changelog/41972.yaml b/docs/changelog/41972.yaml new file mode 100644 index 0000000000000..8d47164dc43f5 --- /dev/null +++ b/docs/changelog/41972.yaml @@ -0,0 +1,8 @@ +pr: 41972 +issues: + - 41970 +area: Aggregations +type: bug +summary: Throw exception if legacy interval cannot be parsed in `DateIntervalWrapper` +versions: + - v8.0.0 diff --git a/docs/changelog/42090.yaml b/docs/changelog/42090.yaml new file mode 100644 index 0000000000000..508ef6c125c05 --- /dev/null +++ b/docs/changelog/42090.yaml @@ -0,0 +1,98 @@ +pr: 42090 +issues: + - 41210 +area: Snapshot/Restore +type: breaking, enhancement +summary: Get snapshots support for multiple repositories +versions: + - v8.0.0 +breaking: + notable: false + title: Get snapshots support for multiple repositories + anchor: get_snapshots_support_for_multiple_repositories + body: >- + ## DescriptionThis commit adds multiple repositories support to get + snapshots request.If some repository throws an exception this method does + not fail fast instead, it returns results for all repositories.This PR is + opened in favour of https://github.com/elastic/elasticsearch/pull/41799, + because we decided to change the response format in a non-BwC manner. It + makes sense to read discussion of the aforementioned PR.This is the + continuation of work done here + https://github.com/elastic/elasticsearch/pull/15151. + + ### _snapshot APINow the following requests are supported:[source] + + ----GET /_snapshot/[_all | * | repo* | repo1,repo2]/[_all | * | snap* | snap1,snap2]----This commit breaks BwC of response format for this request, that's why this PR is not backported to 7.x. For the response format see examples sections. + + ### _cat/snapshots APICat snapshot API also supports multiple repositories now.[source] + + ----GET /_cat/snapshots/[_all | * | repo* | repo1,repo2]----In the table returned new column named "repository" is added. If some repo fails with an exception, this method just reports that some repos have failed. See examples section.[source] + + ----GET /_cat/snapshots----is also supported and will return all snapshots for all repositories.Interestingly enough, the previous implementation also was registering `/_cat/snapshots` filter but a request to this endpoint always resulted in[source] + + ----{ "error": { "root_cause": [ { "type": "action_request_validation_exception", "reason": "Validation Failed: 1: repository is missing;" } ], "type": "action_request_validation_exception", "reason": "Validation Failed: 1: repository is missing;" }, "status": 400}---- + + ## ImplementationTechnically, `TransportGetSnapshotsAction` calls `TransportGetRepositoriesAction` which resolves repo names and wildcards in request to concrete repository names. After that, we submit tasks in parallel for all returned repositories and are using the already implemented algorithm to get matching snapshots in the repositories.In terms of the transport level protocol, 2 classes are changed:* `GetSnapshotsRequest` now accepts the list of repository names (including wildcards) instead of single repo name.* `GetSnapshotsResponse` is changed in non-BwC manner. + + In terms of REST protocol, 2 classes are changed:* `SnapshotRequestsConverters.getSnapshots` now can understand the list of repository names in `GetSnapshotRequest` and adds it as comma separated list to the request path.* `RestGetSnapshotsAction` can now parse the comma-separated list of the repo names.* `GetSnapshotsResponse` XContent serialization is completely changed. + + `RestSnapshotAction` which is responsible for handling cat API for the snapshots is extended with repository field as well. + + ## Testing* `SharedClusterSnapshotRestoreIT.testGetSnapshotsMultipleRepos` tests that multiple repositories and wildcard work fine on transport level.* `SnapshotRequestConvertersTests.getSnapshots` tests that high-level REST client correctly sends the request when multiple repositories are used in the request.* `SnapshotIT.testGetSnapshots` tests getting 2 snapshots from 2 different repositories using high-level REST client.* Some BwC tests, because we need compatibility between 7.latest and 8 (TBD) + + ## DocumentationSeems that it makes sense to make adjustments to the following documentation pages:* cat-snapshots* modules-snapshots + + Both of them should talk about the ability to specify multiple repositories when querying the snapshots (TBD). + + Since it's breaking change also breaking changes doc should be extended (TBD). + + ## Examples### Working with `GetSnapshotsResponse`Consider you have response.First of all, you can check if there are any failures `response.isFailed()`.If you were using wildcard/regex for repository names, you can use `response.getRepositories` to get the set of repositories.If you know particular repository name, you can just do `response.getSnapshots(repoName)` and it will return the list of `SnapshotInfo` for the repository or it throws `ElasticsearchException`. So all methods that previously called `response.getSnapshots()` can now achieve the same behaviour by just passing the `repoName`.Finally, you can get a map of successful and failed responses using `getSuccessfulResponses` and `getFailedResponses`. + + ### _snapshot APIConsider you have 2 repositories:[source] + + ----PUT _snapshot/repo1PUT _snapshot/repo2---- + + And you have one snapshot in each repository:[source] + + ----PUT _snapshot/repo1/snap1PUT _snapshot/repo2/snap2---- + + Now the following commands[source] + + ----GET _snapshot/[* | _all | repo*]/[* | _all | snap*]---- + + will give you the same output[source] + + ----{ "responses": [ { "repository": "repo2", "snapshots": [ { "snapshot": "snap2", "uuid": "XgGZx_QjRc6J5YkbbDWsdQ", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:02:02.695Z", "start_time_in_millis": 1557507722695, "end_time": "2019-05-10T17:02:02.729Z", "end_time_in_millis": 1557507722729, "duration_in_millis": 34, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] }, { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] } ]}----Responses are currently not sorted by repository name. However, SnapshotInfos are still sorted by startDate and then by snapshotId. + + The following request[source] + + ----GET _snapshot/[* | _all | repo*]/snap1----results in[source] + + ----{ "responses": [ { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] }, { "repository": "repo2", "error": { "root_cause": [ { "type": "snapshot_missing_exception", "reason": "[repo2:snap1] is missing" } ], "type": "snapshot_missing_exception", "reason": "[repo2:snap1] is missing" } } ]}----because snap1 exists in repo1, but does not exist in repo2.This is an example of partial failure.Note that HTTP status code is 200 OK, despite partial failure.Even with full failure status code will be 200 OK.Currently, successful repositories are always reported on top.If you specify `ignore_unavailable` flag:[source] + + ----GET _snapshot/[* | _all | repo*]/snap1?ignore_unavailable=true----And get the following response:[source] + + ----{ "responses": [ { "repository": "repo2", "snapshots": [] }, { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] } ]}----If you specify missing repository in the request[source] + + ----GET _snapshot/repo1,repo2,repo3/snap1----You get top-level error:[source] + + ----{ "error": { "root_cause": [ { "type": "repository_missing_exception", "reason": "[repo3] missing" } ], "type": "repository_missing_exception", "reason": "[repo3] missing" }, "status": 404}---- + + ### _cat/snapshot APIConsider you have 2 repositories:[source] + + ----PUT _snapshot/repo1PUT _snapshot/repo2---- + + And you have one snapshot in each repository:[source] + + ----PUT _snapshot/repo1/snap1PUT _snapshot/repo2/snap2---- + + Now you can get all the snapshots using any of this API calls:[source] + + ----GET _cat/snapshotGET _cat/snapshot/_allGET _cat/snapshot/*GET _cat/snapshot/repo*GET _cat/snapshot/repo1,repo2----The response will contain the repository name:[source] + + ----snap2 repo2 SUCCESS 1557507722 17:02:02 1557507722 17:02:02 34ms 0 0 0 0snap1 repo1 SUCCESS 1557507717 17:01:57 1557507717 17:01:57 41ms 0 0 0 0----Currently snapshots are not sorted by repo name.If there is an unexpected error for at least one of the repositories you will get the followingresponse:[source] + + ----{ "error": { "root_cause": [ { "type": "exception", "reason": "Repositories [repo1,repo2] failed to retrieve snapshots" } ], "type": "exception", "reason": "Repositories [repo1,repo2] failed to retrieve snapshots" }, "status": 500}---- + + + Closes https://github.com/elastic/elasticsearch/issues/41210 diff --git a/docs/changelog/42112.yaml b/docs/changelog/42112.yaml new file mode 100644 index 0000000000000..89aee7eb24718 --- /dev/null +++ b/docs/changelog/42112.yaml @@ -0,0 +1,16 @@ +pr: 42112 +issues: [] +area: Search +type: breaking-java +summary: Removes types from `SearchRequest` and `QueryShardContext` +versions: + - v8.0.0 +breaking: + notable: false + title: Removes types from `SearchRequest` and `QueryShardContext` + anchor: removes_types_from_searchrequest_and_queryshardcontext_ + body: >- + This change will remove the notion of types completely from the Search API + internals. + + For classes that are serialised (such as `SearchRequest`, `IdsQuery`, `ShardLocalSearchRequest`) we need to check for the wire version and deal with the types serialisation if the other node is `<8.0.0` diff --git a/docs/changelog/42155.yaml b/docs/changelog/42155.yaml new file mode 100644 index 0000000000000..211b1aa21cd99 --- /dev/null +++ b/docs/changelog/42155.yaml @@ -0,0 +1,7 @@ +pr: 42155 +issues: [] +area: TLS +type: enhancement +summary: Add `ChaCha20` TLS ciphers on Java 12+ +versions: + - v8.0.0 diff --git a/docs/changelog/42174.yaml b/docs/changelog/42174.yaml new file mode 100644 index 0000000000000..e31ee98e99b0e --- /dev/null +++ b/docs/changelog/42174.yaml @@ -0,0 +1,14 @@ +pr: 42174 +issues: [] +area: Security +type: breaking +summary: Remove the migrate tool +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the migrate tool + anchor: remove_the_migrate_tool + body: This commit removes the deprecated migrate tool which was used tomigrate + users from the file realm to native realm when the native realmwas first + created. diff --git a/docs/changelog/42179.yaml b/docs/changelog/42179.yaml new file mode 100644 index 0000000000000..9aeb61b340235 --- /dev/null +++ b/docs/changelog/42179.yaml @@ -0,0 +1,8 @@ +pr: 42179 +issues: + - 42154 +area: Aggregations +type: bug +summary: Fix `TopHitsAggregationBuilder` adding duplicate `_score` sort clauses +versions: + - v8.0.0 diff --git a/docs/changelog/42198.yaml b/docs/changelog/42198.yaml new file mode 100644 index 0000000000000..758d559e60e8c --- /dev/null +++ b/docs/changelog/42198.yaml @@ -0,0 +1,13 @@ +pr: 42198 +issues: + - 41059 +area: Search +type: breaking +summary: Removes type from `TermVectors` APIs +versions: + - v8.0.0 +breaking: + notable: false + title: Removes type from `TermVectors` APIs + anchor: removes_type_from_termvectors_apis + body: Relates to https://github.com/elastic/elasticsearch/issues/41059 diff --git a/docs/changelog/42202.yaml b/docs/changelog/42202.yaml new file mode 100644 index 0000000000000..167742590debc --- /dev/null +++ b/docs/changelog/42202.yaml @@ -0,0 +1,12 @@ +pr: 42202 +issues: [] +area: Infra/Core +type: breaking-java +summary: Remove transport client from xpack +versions: + - v8.0.0 +breaking: + notable: false + title: Remove transport client from xpack + anchor: remove_transport_client_from_xpack + body: his commit removes support for the transport client from xpack. diff --git a/docs/changelog/42253.yaml b/docs/changelog/42253.yaml new file mode 100644 index 0000000000000..63a297707550c --- /dev/null +++ b/docs/changelog/42253.yaml @@ -0,0 +1,10 @@ +pr: 42253 +issues: + - 42240 + - 42242 + - 42251 +area: Unknown +type: UNKNOWN +summary: Add 7.1.1 and 6.8.1 versions +versions: + - v8.0.0 diff --git a/docs/changelog/42288.yaml b/docs/changelog/42288.yaml new file mode 100644 index 0000000000000..9a411e86774e9 --- /dev/null +++ b/docs/changelog/42288.yaml @@ -0,0 +1,8 @@ +pr: 42288 +issues: + - 889 +area: Transform +type: UNKNOWN +summary: Documentation for Data Frame Analytics high-level REST client +versions: + - v8.0.0 diff --git a/docs/changelog/42333.yaml b/docs/changelog/42333.yaml new file mode 100644 index 0000000000000..c4af3870cd20a --- /dev/null +++ b/docs/changelog/42333.yaml @@ -0,0 +1,18 @@ +pr: 42333 +issues: + - 41926 + - 41267 +area: Mapping +type: breaking +summary: Remove support for chained multi-fields. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for chained multi-fields. + anchor: remove_support_for_chained_multi_fields_ + body: >- + Follow-up to #41926, where we deprecated support for multi-fields + withinmulti-fields. + + Addresses #41267. diff --git a/docs/changelog/42359.yaml b/docs/changelog/42359.yaml new file mode 100644 index 0000000000000..b95e2e42e61d1 --- /dev/null +++ b/docs/changelog/42359.yaml @@ -0,0 +1,15 @@ +pr: 42359 +issues: + - 42213 +area: Snapshot/Restore +type: breaking-java +summary: Remove deprecated Repository methods +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated Repository methods + anchor: remove_deprecated_repository_methods + body: "We deprecated `restoreShard` and `snapshotShard` in #42213This change + removes the deprecated methods and their usage and addsa note in the + migration docs." diff --git a/docs/changelog/42381.yaml b/docs/changelog/42381.yaml new file mode 100644 index 0000000000000..ff553b14aef4f --- /dev/null +++ b/docs/changelog/42381.yaml @@ -0,0 +1,21 @@ +pr: 42381 +issues: + - 33413 + - 38556 +area: Search +type: breaking +summary: Remove deprecated `search.remote` settings +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated `search.remote` settings + anchor: remove_deprecated_search_remote_settings + body: >- + We deprecated these settings awhile ago, in favor of cluster.remote. In 7.x + we were gentle and provided automatic upgrade of these settings to the new + settings. Now it is time for them to go. This commit removes the deprecated + search.remote settings. + + Relates #33413 + Relates #38556 diff --git a/docs/changelog/42428.yaml b/docs/changelog/42428.yaml new file mode 100644 index 0000000000000..30932ae280c54 --- /dev/null +++ b/docs/changelog/42428.yaml @@ -0,0 +1,23 @@ +pr: 42428 +issues: + - 42426 +area: Infra/Core +type: breaking +summary: Remove `node.max_local_storage_nodes` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `node.max_local_storage_nodes` + anchor: remove_node_max_local_storage_nodes_ + body: >- + This setting, which prior to Elasticsearch 5 was enabled by default and + caused all kinds of confusion, has [since been disabled by + default](https://github.com/elastic/elasticsearch/pull/19964) and is not + recommended for production use. The prefered way going forward is for users + to explicitly specify separate data folders for each started node to ensure + that each node is consistently assigned to the same data path. + + A follow-up will move the default data path from `${data.paths}/nodes/0` to `${data.paths}` + + Relates to #42426 diff --git a/docs/changelog/42471.yaml b/docs/changelog/42471.yaml new file mode 100644 index 0000000000000..e813b5352ec7a --- /dev/null +++ b/docs/changelog/42471.yaml @@ -0,0 +1,15 @@ +pr: 42471 +issues: [] +area: Client +type: breaking-java +summary: Remove `SecurityClient` from x-pack +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `SecurityClient` from x-pack + anchor: remove_securityclient_from_x_pack + body: This commit removes the SecurityClient class from x-pack. This clientclass + is a relic of the transport client, which is in the process ofbeing removed. + Some tests were changed to use the high level restclient and others use a + client directly without the security clientwrapping it. diff --git a/docs/changelog/42489.yaml b/docs/changelog/42489.yaml new file mode 100644 index 0000000000000..75374baa0b30f --- /dev/null +++ b/docs/changelog/42489.yaml @@ -0,0 +1,18 @@ +pr: 42489 +issues: [] +area: Infra/Core +type: breaking +summary: Remove "nodes/0" folder prefix from data path +versions: + - v8.0.0 +breaking: + notable: false + title: Remove "nodes/0" folder prefix from data path + anchor: remove_nodes_0_folder_prefix_from_data_path + body: >- + With the removal of `node.max_local_storage_nodes`, there is no need anymore + to keep the data in subfolders indexed by a node ordinal. This PR makes it + so that ES 8.0 will store data directly in `$DATA_DIR` instead of + `$DATA_DIR/nodes/$nodeOrdinal`. + + Upon startup, Elasticsearch will check to see if there is data in the old location, and automatically move it to the new location. This automatic migration only works if `$nodeOrdinal` is 0, i.e., multiple node instances have not previously run on the same data path, which required for `node.max_local_storage_nodes` to explicitly be configured. diff --git a/docs/changelog/42538.yaml b/docs/changelog/42538.yaml new file mode 100644 index 0000000000000..a3e753d415ee5 --- /dev/null +++ b/docs/changelog/42538.yaml @@ -0,0 +1,12 @@ +pr: 42538 +issues: [] +area: Infra/Core +type: breaking-java +summary: Remove the transport client +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the transport client + anchor: remove_the_transport_client + body: This commit removes the transport client and all remaining uses in the code. diff --git a/docs/changelog/42654.yaml b/docs/changelog/42654.yaml new file mode 100644 index 0000000000000..177db37b74c17 --- /dev/null +++ b/docs/changelog/42654.yaml @@ -0,0 +1,17 @@ +pr: 42654 +issues: + - 37096 +area: Search +type: breaking +summary: Remove `CommonTermsQuery` and `cutoff_frequency` param +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `CommonTermsQuery` and `cutoff_frequency` param + anchor: remove_commontermsquery_and_cutoff_frequency_param + body: >- + Remove `common` query and `cutoff_frequency` parameter of`match` and + `multi_match` queries. Both have already beendeprecated in 7.x. + + Closes: #37096 diff --git a/docs/changelog/42729.yaml b/docs/changelog/42729.yaml new file mode 100644 index 0000000000000..948aa1bab9e2b --- /dev/null +++ b/docs/changelog/42729.yaml @@ -0,0 +1,16 @@ +pr: 42729 +issues: [] +area: Infra/Core +type: breaking-java +summary: Remove `XPackClient` from x-pack +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `XPackClient` from x-pack + anchor: remove_xpackclient_from_x_pack + body: This commit removes the XPackClient class from x-pack. This class is + arelic of the TransportClient and simply a wrapper around it. Calls + arereplaced with direct usage of a client. Additionally, theXPackRestHandler + class has been removed as it only served to providethe XPackClient to + implementing rest handlers. diff --git a/docs/changelog/42770.yaml b/docs/changelog/42770.yaml new file mode 100644 index 0000000000000..10f6f8fbaf7ce --- /dev/null +++ b/docs/changelog/42770.yaml @@ -0,0 +1,13 @@ +pr: 42770 +issues: [] +area: Features/Monitoring +type: breaking-java +summary: Remove `MonitoringClient` from x-pack +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `MonitoringClient` from x-pack + anchor: remove_monitoringclient_from_x_pack + body: This commit removes the monitoring client from x-pack. This class is + arelic of the TransportClient and was only used in a test. diff --git a/docs/changelog/42809.yaml b/docs/changelog/42809.yaml new file mode 100644 index 0000000000000..2b9628c491cad --- /dev/null +++ b/docs/changelog/42809.yaml @@ -0,0 +1,18 @@ +pr: 42809 +issues: + - 27098 +area: Search +type: breaking +summary: "Remove deprecated sort options: `nested_path` and `nested_filter`" +versions: + - v8.0.0 +breaking: + notable: false + title: "Remove deprecated sort options: `nested_path` and `nested_filter`" + anchor: remove_deprecated_sort_options_nested_path_and_nested_filter_ + body: >- + This commit removes the nested_path and nested_filter options deprecated in + 6x.This change also checks that the sort field has a [nested] option if it + is under a nestedobject and throws an exception if it's not the case. + + Closes #27098 diff --git a/docs/changelog/42815.yaml b/docs/changelog/42815.yaml new file mode 100644 index 0000000000000..60cb34a8d2bdf --- /dev/null +++ b/docs/changelog/42815.yaml @@ -0,0 +1,16 @@ +pr: 42815 +issues: [] +area: Features/Watcher +type: breaking-java +summary: Remove `WatcherClient` from x-pack +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `WatcherClient` from x-pack + anchor: remove_watcherclient_from_x_pack + body: This commit removes the WatcherClient and WatcherRestHandler from + thecodebase. The WatcherClient was a convenience wrapper around thetransport + client, which is being removed so the client no longer servesa purpose. The + WatcherRestHandler is no longer needed as its primarypurpose was to provide + a WatcherClient to the implementing handlers. diff --git a/docs/changelog/42816.yaml b/docs/changelog/42816.yaml new file mode 100644 index 0000000000000..4da6e6f286b0f --- /dev/null +++ b/docs/changelog/42816.yaml @@ -0,0 +1,14 @@ +pr: 42816 +issues: [] +area: CCR +type: breaking-java +summary: Remove the `CcrClient` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the `CcrClient` + anchor: remove_the_ccrclient_ + body: This commit removes the CcrClient class, which is a wrapper around + thetransport client. The transport client is being removed so the clientis + no longer needed. diff --git a/docs/changelog/42817.yaml b/docs/changelog/42817.yaml new file mode 100644 index 0000000000000..df11c69337f19 --- /dev/null +++ b/docs/changelog/42817.yaml @@ -0,0 +1,14 @@ +pr: 42817 +issues: [] +area: Features/ILM+SLM +type: breaking-java +summary: Remove the ILMClient +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the ILMClient + anchor: remove_the_ilmclient + body: This commit removes the ILMClient class, which is a wrapper around + thetransport client. This class is not used in the codebase and thetransport + client is being removed. diff --git a/docs/changelog/43099.yaml b/docs/changelog/43099.yaml new file mode 100644 index 0000000000000..d3d1e6bf3943c --- /dev/null +++ b/docs/changelog/43099.yaml @@ -0,0 +1,7 @@ +pr: 43099 +issues: [] +area: Transform +type: bug +summary: "`[DataFrame]` Fix compile error in `DataFrameTransformProgressIT`" +versions: + - v8.0.0 diff --git a/docs/changelog/43108.yaml b/docs/changelog/43108.yaml new file mode 100644 index 0000000000000..80a1fac1bea7f --- /dev/null +++ b/docs/changelog/43108.yaml @@ -0,0 +1,14 @@ +pr: 43108 +issues: [] +area: Machine Learning +type: breaking-java +summary: Remove the `MachineLearningClient` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the `MachineLearningClient` + anchor: remove_the_machinelearningclient_ + body: The transport client has been removed and this follow up change removesthe + MachineLearningClient as we no longer need this wrapper class sincewe have a + user facing MachineLearningClient within the rest high levelclient. diff --git a/docs/changelog/43164.yaml b/docs/changelog/43164.yaml new file mode 100644 index 0000000000000..e6aa9c99baaa0 --- /dev/null +++ b/docs/changelog/43164.yaml @@ -0,0 +1,7 @@ +pr: 43164 +issues: [] +area: Infra/Core +type: enhancement +summary: Remove indices exists action +versions: + - v8.0.0 diff --git a/docs/changelog/43236.yaml b/docs/changelog/43236.yaml new file mode 100644 index 0000000000000..23265d0c17b8b --- /dev/null +++ b/docs/changelog/43236.yaml @@ -0,0 +1,14 @@ +pr: 43236 +issues: [] +area: TLS +type: breaking +summary: Remove the client transport profile filter +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the client transport profile filter + anchor: remove_the_client_transport_profile_filter + body: Now that the transport client has been removed, the client + transportprofile filter can be removed from security. This filter prevented + nodeactions from being executed using a transport client. diff --git a/docs/changelog/43344.yaml b/docs/changelog/43344.yaml new file mode 100644 index 0000000000000..99ec8eef8af10 --- /dev/null +++ b/docs/changelog/43344.yaml @@ -0,0 +1,7 @@ +pr: 43344 +issues: [] +area: Infra/Core +type: enhancement +summary: Remove types exists action +versions: + - v8.0.0 diff --git a/docs/changelog/43373.yaml b/docs/changelog/43373.yaml new file mode 100644 index 0000000000000..8d4e3d30df298 --- /dev/null +++ b/docs/changelog/43373.yaml @@ -0,0 +1,22 @@ +pr: 43373 +issues: + - 41894 + - 24344 +area: Reindex +type: breaking, enhancement +summary: Reindex remove outer level size +versions: + - v8.0.0 +breaking: + notable: false + title: Reindex remove outer level size + anchor: reindex_remove_outer_level_size + body: >- + This commit finalizes the work done to rename `size` to `max_docs` inreindex + and update/delete by query. `size` is no longer supported in URLor outer + level body for the 3 APIs (though `size` in update/delete-by-querywill and + has always been interpreted as `scroll_size`, it is not to be reliedupon). + + Continuation of #41894 + + Closes #24344 diff --git a/docs/changelog/43382.yaml b/docs/changelog/43382.yaml new file mode 100644 index 0000000000000..d6065ccab7f1a --- /dev/null +++ b/docs/changelog/43382.yaml @@ -0,0 +1,8 @@ +pr: 43382 +issues: + - 42612 +area: Reindex +type: enhancement +summary: Make reindexing managed by a persistent task +versions: + - v8.0.0 diff --git a/docs/changelog/43430.yaml b/docs/changelog/43430.yaml new file mode 100644 index 0000000000000..a01b9484b3579 --- /dev/null +++ b/docs/changelog/43430.yaml @@ -0,0 +1,7 @@ +pr: 43430 +issues: [] +area: Infra/Core +type: enhancement +summary: Remove aliases exist action +versions: + - v8.0.0 diff --git a/docs/changelog/43536.yaml b/docs/changelog/43536.yaml new file mode 100644 index 0000000000000..04d97c0a38655 --- /dev/null +++ b/docs/changelog/43536.yaml @@ -0,0 +1,7 @@ +pr: 43536 +issues: [] +area: Analysis +type: enhancement +summary: "[Docs] Move mentions of updateable synonyms flag" +versions: + - v8.0.0 diff --git a/docs/changelog/43558.yaml b/docs/changelog/43558.yaml new file mode 100644 index 0000000000000..563a67a636487 --- /dev/null +++ b/docs/changelog/43558.yaml @@ -0,0 +1,8 @@ +pr: 43558 +issues: + - 43547 +area: Snapshot/Restore +type: bug +summary: Fix GET /_snapshot/_all/_all if there are no repos +versions: + - v8.0.0 diff --git a/docs/changelog/43559.yaml b/docs/changelog/43559.yaml new file mode 100644 index 0000000000000..67e2f0ffab8c9 --- /dev/null +++ b/docs/changelog/43559.yaml @@ -0,0 +1,7 @@ +pr: 43559 +issues: [] +area: Analysis +type: enhancement +summary: Moving `reload_analyzers` endpoint to xpack +versions: + - v8.0.0 diff --git a/docs/changelog/43686.yaml b/docs/changelog/43686.yaml new file mode 100644 index 0000000000000..ab385d62b49d6 --- /dev/null +++ b/docs/changelog/43686.yaml @@ -0,0 +1,16 @@ +pr: 43686 +issues: + - 41560 + - 43684 +area: Analysis +type: breaking +summary: Remove preconfigured `delimited_payload_filter` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove preconfigured `delimited_payload_filter` + anchor: remove_preconfigured_delimited_payload_filter_ + body: "#41560 removed the `delimited_payload_filter` as part of a generalcleanup + of pre-version 7 restrictions, but missed removing thepreconfigured version + due to #43684." diff --git a/docs/changelog/43781.yaml b/docs/changelog/43781.yaml new file mode 100644 index 0000000000000..c55c5805a180e --- /dev/null +++ b/docs/changelog/43781.yaml @@ -0,0 +1,10 @@ +pr: 43781 +issues: + - 42409 + - 39169 +area: Features/Watcher +type: UNKNOWN +summary: "`SmokeTestWatcherWithSecurityIT:` Retry if failures searching + .watcher-history" +versions: + - v8.0.0 diff --git a/docs/changelog/44090.yaml b/docs/changelog/44090.yaml new file mode 100644 index 0000000000000..38cdd0b2255ee --- /dev/null +++ b/docs/changelog/44090.yaml @@ -0,0 +1,23 @@ +pr: 44090 +issues: + - 40353 +area: Authentication +type: breaking +summary: Do not set a NameID format in Policy by default +versions: + - v8.0.0 +breaking: + notable: false + title: Do not set a NameID format in Policy by default + anchor: do_not_set_a_nameid_format_in_policy_by_default + body: >- + This commit changes the behavior of our SAML realm to not set aFormat + element in the NameIDPolicy of a SAML Authenticationrequest if one has not + been explicitly configured by the userwith `nameid_format`. We select to not + include a format, ratherthan setting it + to`urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified` which wouldhave + the same effect, in order to maximize interoperability withIdP + implementations. `AllowCreate` is not removed as this has adefault value + (false) in the specification. + + Relates: #40353 diff --git a/docs/changelog/44133.yaml b/docs/changelog/44133.yaml new file mode 100644 index 0000000000000..8e3cdc721819d --- /dev/null +++ b/docs/changelog/44133.yaml @@ -0,0 +1,8 @@ +pr: 44133 +issues: + - 44132 +area: Machine Learning +type: bug +summary: Relax the test assertion so that the test always passes +versions: + - v8.0.0 diff --git a/docs/changelog/44264.yaml b/docs/changelog/44264.yaml new file mode 100644 index 0000000000000..c3c76d93b3726 --- /dev/null +++ b/docs/changelog/44264.yaml @@ -0,0 +1,29 @@ +pr: 44264 +issues: + - 41731 + - 41731 + - 21830 + - 44230 +area: Infra/Resiliency +type: breaking, bug +summary: Fail node containing ancient closed index +versions: + - v8.0.0 +breaking: + notable: false + title: Fail node containing ancient closed index + anchor: fail_node_containing_ancient_closed_index + body: >- + Today we fail the node at startup if it contains an index that is too old to + becompatible with the current version, unless that index is closed. If the + indexis closed then the node will start up and this puts us into a bad + state: theindex cannot be opened and must be reindexed using an earlier + version, but weoffer no way to get that index into a node running an earlier + version so thatit can be reindexed. Downgrading the node in-place is + decidedly unsupported andcannot be expected to work since the node already + started up and upgraded therest of its metadata. Since #41731 we actively + reject downgrades to versions ≥v7.2.0 too. + + This commit prevents the node from starting in the presence of any too-oldindices (closed or not). In particular, it does not write any upgraded metadatain this situation, increasing the chances an in-place downgrade might besuccessful. We still actively reject the downgrade using #41731, because wewrote the node metadata file before checking the index metadata, but at leastthere is a way to override this check. + + Relates #21830, #44230 diff --git a/docs/changelog/44642.yaml b/docs/changelog/44642.yaml new file mode 100644 index 0000000000000..ec4ee7fcad44a --- /dev/null +++ b/docs/changelog/44642.yaml @@ -0,0 +1,7 @@ +pr: 44642 +issues: [] +area: Infra/Logging +type: UNKNOWN +summary: Fix stats in slow logs to be a escaped JSON +versions: + - v8.0.0 diff --git a/docs/changelog/44752.yaml b/docs/changelog/44752.yaml new file mode 100644 index 0000000000000..1fbac7e3d0420 --- /dev/null +++ b/docs/changelog/44752.yaml @@ -0,0 +1,20 @@ +pr: 44752 +issues: + - 44616 +area: Machine Learning +type: breaking, deprecation +summary: Remove the ability to update datafeed's job_id. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the ability to update datafeed's job_id. + anchor: remove_the_ability_to_update_datafeed_s_job_id_ + body: >- + This PR is a followup to + https://github.com/elastic/elasticsearch/pull/44691. It disables the + possibility to update job_id on a datafeed.DatafeedUpdate.jobId field can be + set in the _update request as long as it is the same as the current value of + DatafeedConfig.jobId. + + Closes https://github.com/elastic/elasticsearch/issues/44616 diff --git a/docs/changelog/44761.yaml b/docs/changelog/44761.yaml new file mode 100644 index 0000000000000..1c781e38bb41d --- /dev/null +++ b/docs/changelog/44761.yaml @@ -0,0 +1,24 @@ +pr: 44761 +issues: + - 43102 +area: Engine +type: breaking, bug +summary: Force Merge should reject requests with `only_expunge_deletes` and + `max_num_segments` set +versions: + - v8.0.0 +breaking: + notable: false + title: Force Merge should reject requests with `only_expunge_deletes` and + `max_num_segments` set + anchor: force_merge_should_reject_requests_with_only_expunge_deletes_and_max_num_segments_set + body: >- + This pull request changes the `ForceMergeRequest.validate()` method so that + it does not accept the parameters `only_expunge_deletes` and + `max_num_segments` to be set at the same time. + + The motivation is that `InternalEngine.forceMerge()` just ignores the max. number of segments parameter when the only expunge parameter is set to true, leaving the wrong impression to the user that max. number of segments has been applied. This PR also changes `InternalEngine.forceMerge()` so that it now throws an exception when both parameters are set, and modifies tests where needed. + + Because it changes the behavior of the REST API I marked this as `>breaking`. Once this is merged I'll open a follow up PR to add deprecation logging in 7.x. + + Closes #43102 diff --git a/docs/changelog/44894.yaml b/docs/changelog/44894.yaml new file mode 100644 index 0000000000000..8158d764bfe8b --- /dev/null +++ b/docs/changelog/44894.yaml @@ -0,0 +1,17 @@ +pr: 44894 +issues: + - 44889 +area: Infra/Core +type: breaking +summary: Limit processors by available processors +versions: + - v8.0.0 +breaking: + notable: false + title: Limit processors by available processors + anchor: limit_processors_by_available_processors + body: >- + This commit limits the processors setting to be more than the number of + available processors. + + Relates #44889 diff --git a/docs/changelog/44902.yaml b/docs/changelog/44902.yaml new file mode 100644 index 0000000000000..0345267421e4d --- /dev/null +++ b/docs/changelog/44902.yaml @@ -0,0 +1,8 @@ +pr: 44902 +issues: + - 37504 +area: Infra/REST API +type: bug +summary: "`RestController` should not consume request content" +versions: + - v8.0.0 diff --git a/docs/changelog/44905.yaml b/docs/changelog/44905.yaml new file mode 100644 index 0000000000000..1cd69ffc12d29 --- /dev/null +++ b/docs/changelog/44905.yaml @@ -0,0 +1,8 @@ +pr: 44905 +issues: + - 29857 +area: Machine Learning +type: enhancement +summary: Change version in serialization code in `TimingStats.java` to 7.4.0 +versions: + - v8.0.0 diff --git a/docs/changelog/44929.yaml b/docs/changelog/44929.yaml new file mode 100644 index 0000000000000..94ecbc6a3020f --- /dev/null +++ b/docs/changelog/44929.yaml @@ -0,0 +1,25 @@ +pr: 44929 +issues: + - 31020 + - 42538 + - 44667 +area: Network +type: breaking +summary: Remove client feature tracking +versions: + - v8.0.0 +breaking: + notable: false + title: Remove client feature tracking + anchor: remove_client_feature_tracking + body: >- + This commit removes the infrastructure for client feature tracking. We + introduced this functionality to support clients that do not necessarily + understand all the features that the server might support, for example, + customs in the cluster state provided by plugins that a client might not + have. This can arise in situations such as rolling upgrades from the OSS + distribution to the default distribution. With the removal of the transport + client, this infrastructure is no longer needed. This commit removes client + feature tracking from the server in 8.0.0. + + Relates #31020Relates #42538Relates #44667 diff --git a/docs/changelog/44982.yaml b/docs/changelog/44982.yaml new file mode 100644 index 0000000000000..29f209c9a7b78 --- /dev/null +++ b/docs/changelog/44982.yaml @@ -0,0 +1,15 @@ +pr: 44982 +issues: + - 44917 + - 44725 +area: Features/ILM+SLM, Features/Java High Level REST Client +type: breaking-java +summary: Rename HLRC 'indexlifecycle' components to 'ilm' +versions: + - v8.0.0 +breaking: + notable: false + title: Rename HLRC 'indexlifecycle' components to 'ilm' + anchor: rename_hlrc_indexlifecycle_components_to_ilm_ + body: "Related to #44917 and #44725, this commit renames the HLRC componentsfor + indexlifecycle to ilm." diff --git a/docs/changelog/45497.yaml b/docs/changelog/45497.yaml new file mode 100644 index 0000000000000..adde5002e7062 --- /dev/null +++ b/docs/changelog/45497.yaml @@ -0,0 +1,9 @@ +pr: 45497 +issues: + - 42612 + - 43187 +area: Reindex +type: enhancement +summary: Reindex search resiliency +versions: + - v8.0.0 diff --git a/docs/changelog/45586.yaml b/docs/changelog/45586.yaml new file mode 100644 index 0000000000000..09abdcd273dbe --- /dev/null +++ b/docs/changelog/45586.yaml @@ -0,0 +1,8 @@ +pr: 45586 +issues: + - 43260 +area: Infra/Core +type: bug +summary: "CLI tools: write errors to stderr instead of stdout" +versions: + - v8.0.0 diff --git a/docs/changelog/45675.yaml b/docs/changelog/45675.yaml new file mode 100644 index 0000000000000..f220899c2f13d --- /dev/null +++ b/docs/changelog/45675.yaml @@ -0,0 +1,12 @@ +pr: 45675 +issues: [] +area: Mapping +type: breaking +summary: Remove support for string in unmapped_type. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for string in unmapped_type. + anchor: remove_support_for_string_in_unmapped_type_ + body: This deprecated option was added in 0d8e399 and can now be removed. diff --git a/docs/changelog/45735.yaml b/docs/changelog/45735.yaml new file mode 100644 index 0000000000000..394daf9b8a54d --- /dev/null +++ b/docs/changelog/45735.yaml @@ -0,0 +1,24 @@ +pr: 45735 +issues: + - 43453 +area: Search +type: breaking, enhancement +summary: Decouple shard allocation awareness from search and get requests +versions: + - v8.0.0 +breaking: + notable: false + title: Decouple shard allocation awareness from search and get requests + anchor: decouple_shard_allocation_awareness_from_search_and_get_requests + body: >- + With this commit, Elasticsearch will no longer prefer using shards in the + same location(with the same awareness attribute values) to process `_search` + and `_get` requests.Instead, adaptive replica selection (the default since + 7.0) should route requests more efficientlyusing the service time of prior + inter-node communications. Clusters with big latencies betweennodes should + switch to cross cluster replication to isolate nodes within the same + zone.Note that this change only targets 8.0 since it is considered as + breaking. However a follow uppr should add an option to activate this + behavior in 7.x in order to allow users to opt-in early. + + Closes #43453 diff --git a/docs/changelog/45878.yaml b/docs/changelog/45878.yaml new file mode 100644 index 0000000000000..d98729c9b4de0 --- /dev/null +++ b/docs/changelog/45878.yaml @@ -0,0 +1,8 @@ +pr: 45878 +issues: + - 19069 +area: Infra/Core +type: UNKNOWN +summary: Remove `ExceptionHelper.detailedMessage` +versions: + - v8.0.0 diff --git a/docs/changelog/45892.yaml b/docs/changelog/45892.yaml new file mode 100644 index 0000000000000..0ab96397605a2 --- /dev/null +++ b/docs/changelog/45892.yaml @@ -0,0 +1,17 @@ +pr: 45892 +issues: [] +area: TLS +type: breaking, enhancement +summary: Reject misconfigured/ambiguous SSL server config +versions: + - v8.0.0 +breaking: + notable: false + title: Reject misconfigured/ambiguous SSL server config + anchor: reject_misconfigured_ambiguous_ssl_server_config + body: >- + This commit makes it an error to start a node where either of theserver + contexts (xpack.security.transport.ssl andxpack.security.http.ssl) meet + either of these conditions: + + 1. The server lacks a certificate/key pair (i.e. neither ssl.keystore.path nor ssl.certificate are configured)2. The server has some ssl configuration, but ssl.enabled is not specified. This new validation does not care whether ssl.enabled is true or false (though other validation might), it simply makes it an error to configure server SSL without being explicit about whether to enable that configuration. diff --git a/docs/changelog/45905.yaml b/docs/changelog/45905.yaml new file mode 100644 index 0000000000000..ca7801b780a9e --- /dev/null +++ b/docs/changelog/45905.yaml @@ -0,0 +1,17 @@ +pr: 45905 +issues: + - 45855 +area: Infra/Core +type: breaking +summary: Remove processors setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove processors setting + anchor: remove_processors_setting + body: >- + The processors setting was deprecated in version 7.4.0 of Elasticsearch for + removal in Elasticsearch 8.0.0. This commit removes the processors setting. + + Relates #45855 diff --git a/docs/changelog/45940.yaml b/docs/changelog/45940.yaml new file mode 100644 index 0000000000000..4ba7de89356a7 --- /dev/null +++ b/docs/changelog/45940.yaml @@ -0,0 +1,17 @@ +pr: 45940 +issues: + - 45938 +area: Infra/Core +type: breaking +summary: Remove the pidfile setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the pidfile setting + anchor: remove_the_pidfile_setting + body: >- + The pidfile setting was deprecated in version 7.4.0 of Elasticsearch for + removal in Elasticsearch 8.0.0. This commit removes the pidfile setting. + + Relates #45938 diff --git a/docs/changelog/45945.yaml b/docs/changelog/45945.yaml new file mode 100644 index 0000000000000..eec78a297e08b --- /dev/null +++ b/docs/changelog/45945.yaml @@ -0,0 +1,21 @@ +pr: 45945 +issues: [] +area: Infra/REST API +type: breaking-java, enhancement +summary: Copy http headers to `ThreadContext` strictly +versions: + - v8.0.0 +breaking: + notable: false + title: Copy http headers to `ThreadContext` strictly + anchor: copy_http_headers_to_threadcontext_strictly + body: >- + Previous behavior while copying HTTP headers to the ThreadContext,would + allow multiple HTTP headers with the same name, handling onlythe first + occurrence and disregarding the rest of the values. Thiscan be confusing + when dealing with multiple Headers as it is notobvious which value is read + and which ones are silently dropped. + + According to RFC-7230, a client must not send multiple header fieldswith the same field name in a HTTP message, unless the entire fieldvalue for this header is defined as a comma separated list or thisspecific header is a well-known exception. + + This commits changes the behavior in order to be more compliant tothe aforementioned RFC by requiring the classes that implementActionPlugin to declare if a header can be multi-valued or not whenregistering this header to be copied over to the ThreadContext inActionPlugin#getRestHeaders.If the header is allowed to be multivalued, then all such headersare read from the HTTP request and their values get concatenated ina comma-separated string.If the header is not allowed to be multivalued, and the HTTPrequest contains multiple such Headers with different values, therequest is rejected with a 400 status. diff --git a/docs/changelog/45947.yaml b/docs/changelog/45947.yaml new file mode 100644 index 0000000000000..e3be789b2131a --- /dev/null +++ b/docs/changelog/45947.yaml @@ -0,0 +1,18 @@ +pr: 45947 +issues: + - 45905 + - 45940 +area: Infra/Settings +type: breaking +summary: Forbid settings without a namespace +versions: + - v8.0.0 +breaking: + notable: false + title: Forbid settings without a namespace + anchor: forbid_settings_without_a_namespace + body: >- + This commit forbids settings that are not in any namespace, all setting + names must now contain a dot. + + Relates #45905 Relates #45940 diff --git a/docs/changelog/46055.yaml b/docs/changelog/46055.yaml new file mode 100644 index 0000000000000..cdca853d0b971 --- /dev/null +++ b/docs/changelog/46055.yaml @@ -0,0 +1,8 @@ +pr: 46055 +issues: + - 42612 +area: Reindex +type: enhancement +summary: Reindex restart from checkpoint +versions: + - v8.0.0 diff --git a/docs/changelog/46147.yaml b/docs/changelog/46147.yaml new file mode 100644 index 0000000000000..8979f0b03be25 --- /dev/null +++ b/docs/changelog/46147.yaml @@ -0,0 +1,22 @@ +pr: 46147 +issues: + - 45947 +area: Infra/Settings, Snapshot/Restore +type: breaking +summary: Remove insecure settings +versions: + - v8.0.0 +breaking: + notable: false + title: Remove insecure settings + anchor: remove_insecure_settings + body: >- + This commit removes the oxymoron of insecure secure settings from the code + base. In particular, we remove the ability to set the access_key and + secret_key for S3 repositories inside the repository definition (in the + cluster state). Instead, these settings now must be in the keystore. Thus, + it also removes some leniency where these settings could be placed in the + elasticsearch.yml, would not be rejected there, but would not be consumed + for any purpose. + + Relates #45947 diff --git a/docs/changelog/46327.yaml b/docs/changelog/46327.yaml new file mode 100644 index 0000000000000..ec6adb73a1e9d --- /dev/null +++ b/docs/changelog/46327.yaml @@ -0,0 +1,9 @@ +pr: 46327 +issues: + - 46257 + - 46324 +area: Aggregations +type: UNKNOWN +summary: Remove `Adjacency_matrix` setting +versions: + - v8.0.0 diff --git a/docs/changelog/46603.yaml b/docs/changelog/46603.yaml new file mode 100644 index 0000000000000..1703012d5df5b --- /dev/null +++ b/docs/changelog/46603.yaml @@ -0,0 +1,8 @@ +pr: 46603 +issues: + - 41830 +area: Infra/Settings +type: enhancement +summary: Fixed inconsistent Setting.exist() +versions: + - v8.0.0 diff --git a/docs/changelog/46702.yaml b/docs/changelog/46702.yaml new file mode 100644 index 0000000000000..d0c0a394ac344 --- /dev/null +++ b/docs/changelog/46702.yaml @@ -0,0 +1,8 @@ +pr: 46702 +issues: + - 46119 +area: Infra/Logging +type: UNKNOWN +summary: Refactor `ESLogMessage` to not define fields upfront +versions: + - v8.0.0 diff --git a/docs/changelog/46749.yaml b/docs/changelog/46749.yaml new file mode 100644 index 0000000000000..63f4d5caadb23 --- /dev/null +++ b/docs/changelog/46749.yaml @@ -0,0 +1,7 @@ +pr: 46749 +issues: [] +area: Transform +type: UNKNOWN +summary: Muting tests for PR https://github.com/elastic/elasticsearch/pull/46414 +versions: + - v8.0.0 diff --git a/docs/changelog/46967.yaml b/docs/changelog/46967.yaml new file mode 100644 index 0000000000000..265ad5ce38d82 --- /dev/null +++ b/docs/changelog/46967.yaml @@ -0,0 +1,9 @@ +pr: 46967 +issues: + - 46763 + - 42612 +area: Reindex +type: enhancement +summary: Reindex v2 rethrottle sliced fix +versions: + - v8.0.0 diff --git a/docs/changelog/46983.yaml b/docs/changelog/46983.yaml new file mode 100644 index 0000000000000..0479b54b7695e --- /dev/null +++ b/docs/changelog/46983.yaml @@ -0,0 +1,17 @@ +pr: 46983 +issues: + - 41059 +area: CRUD +type: breaking-java +summary: Remove types from `BulkRequest` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove types from `BulkRequest` + anchor: remove_types_from_bulkrequest_ + body: >- + This commit removes types entirely from BulkRequest, both as a + globalparameter and as individual entries on update/index/delete lines. + + Relates to #41059 diff --git a/docs/changelog/47105.yaml b/docs/changelog/47105.yaml new file mode 100644 index 0000000000000..53e989f60c0f0 --- /dev/null +++ b/docs/changelog/47105.yaml @@ -0,0 +1,8 @@ +pr: 47105 +issues: + - 46119 +area: Infra/Logging +type: UNKNOWN +summary: Make Elasticsearch JSON logs ECS compliant +versions: + - v8.0.0 diff --git a/docs/changelog/47203.yaml b/docs/changelog/47203.yaml new file mode 100644 index 0000000000000..000ff89799fa3 --- /dev/null +++ b/docs/changelog/47203.yaml @@ -0,0 +1,17 @@ +pr: 47203 +issues: + - 41059 +area: Engine +type: breaking +summary: Remove per-type indexing stats +versions: + - v8.0.0 +breaking: + notable: false + title: Remove per-type indexing stats + anchor: remove_per_type_indexing_stats + body: >- + With only a single type, the per-type filters for indexing stats are no + longer useful. + + Relates to #41059 diff --git a/docs/changelog/47207.yaml b/docs/changelog/47207.yaml new file mode 100644 index 0000000000000..443ce812d4e3a --- /dev/null +++ b/docs/changelog/47207.yaml @@ -0,0 +1,17 @@ +pr: 47207 +issues: + - 41059 +area: Search +type: breaking +summary: Remove `type` query +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `type` query + anchor: remove_type_query + body: >- + Running `type` queries in 7x already emits deprecation warnings. We can + remove italtogether in 8x. + + Part of #41059 diff --git a/docs/changelog/47364.yaml b/docs/changelog/47364.yaml new file mode 100644 index 0000000000000..fce06b4f3380d --- /dev/null +++ b/docs/changelog/47364.yaml @@ -0,0 +1,20 @@ +pr: 47364 +issues: + - 41059 +area: Mapping +type: breaking-java +summary: Remove type filter from `GetMappings` API +versions: + - v8.0.0 +breaking: + notable: false + title: Remove type filter from `GetMappings` API + anchor: remove_type_filter_from_getmappings_api + body: >- + This commit removes the types filter from the GetMappings API, which is no + longeruseful seeing as we can only have a single mapping type per index. It + also changesthe structure of GetMappingsResponse and GetIndexResponse to + remove the extranesting of mappings below the no-longer-relevant type name, + and removes the typesmethods from the equivalent request classes. + + Relates to #41059 diff --git a/docs/changelog/47650.yaml b/docs/changelog/47650.yaml new file mode 100644 index 0000000000000..0e7148fbf699a --- /dev/null +++ b/docs/changelog/47650.yaml @@ -0,0 +1,7 @@ +pr: 47650 +issues: [] +area: Packaging +type: UNKNOWN +summary: Update docker-compose.yml to fix bootstrap check error +versions: + - v8.0.0 diff --git a/docs/changelog/47651.yaml b/docs/changelog/47651.yaml new file mode 100644 index 0000000000000..dafa226374284 --- /dev/null +++ b/docs/changelog/47651.yaml @@ -0,0 +1,7 @@ +pr: 47651 +issues: [] +area: Packaging +type: UNKNOWN +summary: Update `docker.asciidoc` +versions: + - v8.0.0 diff --git a/docs/changelog/47717.yaml b/docs/changelog/47717.yaml new file mode 100644 index 0000000000000..e6c941fa84624 --- /dev/null +++ b/docs/changelog/47717.yaml @@ -0,0 +1,17 @@ +pr: 47717 +issues: + - 46079 + - 47443 +area: Allocation +type: breaking +summary: Remove `include_relocations` setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `include_relocations` setting + anchor: remove_include_relocations_setting + body: "Setting `cluster.routing.allocation.disk.include_relocations` to `false` + is abad idea since it will lead to the kinds of overshoot that were + otherwise fixedin #46079. This setting was deprecated in #47443. This commit + removes it." diff --git a/docs/changelog/48170.yaml b/docs/changelog/48170.yaml new file mode 100644 index 0000000000000..bbfad094da869 --- /dev/null +++ b/docs/changelog/48170.yaml @@ -0,0 +1,18 @@ +pr: 48170 +issues: + - 35958 +area: Infra/REST API +type: breaking +summary: Remove deprecated endpoints containing _xpack. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated endpoints containing _xpack. + anchor: remove_deprecated_endpoints_containing_xpack_ + body: >- + The endpoints with `_xpack` in their path were deprecated in 7.x and can now + beremoved. This commit removes deprecated endpoints for the following APIs:* + deprecation* graph* license* monitoring* rollup* SQL* watcher + + Relates to #35958. diff --git a/docs/changelog/48443.yaml b/docs/changelog/48443.yaml new file mode 100644 index 0000000000000..fccd73dfc8f8e --- /dev/null +++ b/docs/changelog/48443.yaml @@ -0,0 +1,19 @@ +pr: 48443 +issues: [] +area: Infra/Transport API, CRUD +type: breaking-java +summary: Remove `Client.prepareIndex(index,` type, id) method +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `Client.prepareIndex(index,` type, id) method + anchor: remove_client_prepareindex_index_type_id_method + body: As types are no longer used in index requests, we can remove the type + parameterfrom prepareIndex methods in the Client interface. However, just + changing the signatureof `prepareIndex(index, type, id)` to + `prepareIndex(index, id)` risks confusion when upgrading with the previous + (now removed) `prepareIndex(index, type)` method - just changing the + dependency version of java code would end up silently changing the semantics + of the method call. Instead we should just remove this method entirely, and + replace it by calling `prepareIndex(index).setId(id)` diff --git a/docs/changelog/48471.yaml b/docs/changelog/48471.yaml new file mode 100644 index 0000000000000..fe10293544aa3 --- /dev/null +++ b/docs/changelog/48471.yaml @@ -0,0 +1,19 @@ +pr: 48471 +issues: [] +area: Features/Indices APIs, Features/Java High Level REST Client +type: breaking-java +summary: Remove deprecated include-type methods from HLRC indices client +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated include-type methods from HLRC indices client + anchor: remove_deprecated_include_type_methods_from_hlrc_indices_client + body: >- + We have a number of deprecated methods on the high-level Rest client's + `IndicesClient` that take server-side object classes and allow users to + passthe `include_type_name` parameter. These all have equivalent methods + thatuse HLRC classes instead, the only difference being the lack of the + typesparameter. + + This commit removes these deprecated methods. diff --git a/docs/changelog/48632.yaml b/docs/changelog/48632.yaml new file mode 100644 index 0000000000000..b476dd93822b5 --- /dev/null +++ b/docs/changelog/48632.yaml @@ -0,0 +1,17 @@ +pr: 48632 +issues: + - 41059 +area: Features/Indices APIs, Mapping +type: breaking +summary: Remove `include_type_name` parameter from REST layer +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `include_type_name` parameter from REST layer + anchor: remove_include_type_name_parameter_from_rest_layer + body: >- + This commit removes support for the `include_type_name` parameter from + allREST actions that receive or return mapping configurations. + + Relates to #41059 diff --git a/docs/changelog/48725.yaml b/docs/changelog/48725.yaml new file mode 100644 index 0000000000000..dcd94770dfb87 --- /dev/null +++ b/docs/changelog/48725.yaml @@ -0,0 +1,14 @@ +pr: 48725 +issues: + - 48604 +area: Search +type: breaking +summary: Remove deprecated vector functions. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated vector functions. + anchor: remove_deprecated_vector_functions_ + body: "Follow up to #48604. This PR removes the deprecated vector function + signaturesof the form `cosineSimilarity(query, doc['field'])`." diff --git a/docs/changelog/48781.yaml b/docs/changelog/48781.yaml new file mode 100644 index 0000000000000..394448821ac18 --- /dev/null +++ b/docs/changelog/48781.yaml @@ -0,0 +1,15 @@ +pr: 48781 +issues: + - 48368 +area: Search +type: breaking +summary: Remove support for sparse vectors. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for sparse vectors. + anchor: remove_support_for_sparse_vectors_ + body: "Follow up to #48368. This PR removes support for `sparse_vector` on + newindices. On 7.x indices a `sparse_vector` can still be defined, but it is + notpossible to index or search on it." diff --git a/docs/changelog/48927.yaml b/docs/changelog/48927.yaml new file mode 100644 index 0000000000000..f0285f771f9ab --- /dev/null +++ b/docs/changelog/48927.yaml @@ -0,0 +1,8 @@ +pr: 48927 +issues: + - 40366 +area: Infra/Core +type: UNKNOWN +summary: "[#40366] Silence some lint warnings in server project" +versions: + - v8.0.0 diff --git a/docs/changelog/48949.yaml b/docs/changelog/48949.yaml new file mode 100644 index 0000000000000..586587358d510 --- /dev/null +++ b/docs/changelog/48949.yaml @@ -0,0 +1,7 @@ +pr: 48949 +issues: [] +area: Features/ILM+SLM +type: UNKNOWN +summary: Add ILM package info documentation +versions: + - v8.0.0 diff --git a/docs/changelog/49079.yaml b/docs/changelog/49079.yaml new file mode 100644 index 0000000000000..38a675ca69400 --- /dev/null +++ b/docs/changelog/49079.yaml @@ -0,0 +1,7 @@ +pr: 49079 +issues: [] +area: Packaging +type: UNKNOWN +summary: Migrate some of the Docker tests from old repository +versions: + - v8.0.0 diff --git a/docs/changelog/49460.yaml b/docs/changelog/49460.yaml new file mode 100644 index 0000000000000..f5db89b06ca2f --- /dev/null +++ b/docs/changelog/49460.yaml @@ -0,0 +1,17 @@ +pr: 49460 +issues: + - 21009 +area: Features/Indices APIs, Features/Java High Level REST Client +type: breaking +summary: Remove the 'template' field in index templates. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the 'template' field in index templates. + anchor: remove_the_template_field_in_index_templates_ + body: >- + The `template` field was deprecated in 6.0 in favor of `index_patterns`, and + cannow be removed. + + Relates to #21009. diff --git a/docs/changelog/49728.yaml b/docs/changelog/49728.yaml new file mode 100644 index 0000000000000..e7b95073609b0 --- /dev/null +++ b/docs/changelog/49728.yaml @@ -0,0 +1,8 @@ +pr: 49728 +issues: + - 40366 +area: Infra/Core +type: UNKNOWN +summary: Silence lint warnings in server project - part 2 +versions: + - v8.0.0 diff --git a/docs/changelog/50067.yaml b/docs/changelog/50067.yaml new file mode 100644 index 0000000000000..ea695be84c442 --- /dev/null +++ b/docs/changelog/50067.yaml @@ -0,0 +1,8 @@ +pr: 50067 +issues: + - 49474 +area: License +type: enhancement +summary: Support "accept_enterprise" param in get license +versions: + - v8.0.0 diff --git a/docs/changelog/50277.yaml b/docs/changelog/50277.yaml new file mode 100644 index 0000000000000..3481b56b39cd7 --- /dev/null +++ b/docs/changelog/50277.yaml @@ -0,0 +1,9 @@ +pr: 50277 +issues: + - 49926 + - 46166 +area: Packaging +type: UNKNOWN +summary: Make the Docker build more re-usable in Cloud +versions: + - v8.0.0 diff --git a/docs/changelog/50359.yaml b/docs/changelog/50359.yaml new file mode 100644 index 0000000000000..0a15ad8fcc70c --- /dev/null +++ b/docs/changelog/50359.yaml @@ -0,0 +1,8 @@ +pr: 50359 +issues: + - 50248 +area: Task Management, Mapping +type: bug +summary: Fixes to task result index mapping +versions: + - v8.0.0 diff --git a/docs/changelog/50415.yaml b/docs/changelog/50415.yaml new file mode 100644 index 0000000000000..2ebc4f253ec5c --- /dev/null +++ b/docs/changelog/50415.yaml @@ -0,0 +1,7 @@ +pr: 50415 +issues: [] +area: Engine +type: enhancement +summary: Always use soft-deletes in `InternalEngine` +versions: + - v8.0.0 diff --git a/docs/changelog/50594.yaml b/docs/changelog/50594.yaml new file mode 100644 index 0000000000000..faf11bf933893 --- /dev/null +++ b/docs/changelog/50594.yaml @@ -0,0 +1,24 @@ +pr: 50594 +issues: + - 50499 + - 50088 +area: Infra/Core +type: breaking +summary: Remove the 'local' parameter of /_cat/nodes +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the 'local' parameter of /_cat/nodes + anchor: remove_the_local_parameter_of_cat_nodes + body: >- + The cat nodes API performs a `ClusterStateAction` then a + `NodesInfoAction`.Today it accepts the `?local` parameter and passes this to + the`ClusterStateAction` but this parameter has no effect on the + `NodesInfoAction`.This is surprising, because `GET _cat/nodes?local` looks + like it might be acompletely local call but in fact it still depends on + every node in thecluster. + + This parameter was deprecated in 7.x in #50499 and this commit removes it. + + Relates #50088 diff --git a/docs/changelog/50739.yaml b/docs/changelog/50739.yaml new file mode 100644 index 0000000000000..0480d37bb8e0a --- /dev/null +++ b/docs/changelog/50739.yaml @@ -0,0 +1,21 @@ +pr: 50739 +issues: + - 41059 +area: CRUD, Mapping +type: breaking-java +summary: Remove type parameter from CIR.mapping(type, object...) +versions: + - v8.0.0 +breaking: + notable: false + title: Remove type parameter from CIR.mapping(type, object...) + anchor: remove_type_parameter_from_cir_mapping_type_object_ + body: >- + This commit removes the `type` parameter from + `CreateIndexRequest.mapping(type, object...)`,and the associated delegating + method on `CreateIndexRequestBuilder`. To make migrationsimpler, the + method on `CreateIndexRequest` is renamed to `mappingFromSimplifiedDef`, + andon `CreateIndexRequestBuilder` to `setMapping`; this should help the + compiler catch all necessary changes on upgrades. + + Relates to #41059 diff --git a/docs/changelog/50844.yaml b/docs/changelog/50844.yaml new file mode 100644 index 0000000000000..fefda932e2072 --- /dev/null +++ b/docs/changelog/50844.yaml @@ -0,0 +1,20 @@ +pr: 50844 +issues: + - 41059 +area: Mapping +type: breaking-java +summary: Remove type parameter from `PutMappingRequest.buildFromSimplifiedDef()` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove type parameter from `PutMappingRequest.buildFromSimplifiedDef()` + anchor: remove_type_parameter_from_putmappingrequest_buildfromsimplifieddef_ + body: >- + Mappings built by this method should all be wrapped with `_doc`, so there's + no needto pass the type any more. This also renames the method to + `simpleMapping`, in linewith `CreateIndexRequest`, to help migration by + causing compilation errors; and changesthe signature to take a `String...` + rather than an `Object...`. + + Relates to #41059 diff --git a/docs/changelog/50882.yaml b/docs/changelog/50882.yaml new file mode 100644 index 0000000000000..c0e705335f398 --- /dev/null +++ b/docs/changelog/50882.yaml @@ -0,0 +1,20 @@ +pr: 50882 +issues: + - 50835 + - 50776 +area: Distributed +type: breaking, breaking-java +summary: Goodbye and thank you synced flush! +versions: + - v8.0.0 +breaking: + notable: false + title: Goodbye and thank you synced flush! + anchor: goodbye_and_thank_you_synced_flush_ + body: >- + Synced flush was a brilliant idea. It supports instant recoveries with a + quite small implementation. However, with the presence of sequence numbers + and retention leases, it is no longer needed. This change removes it from + 8.0. + + Depends on #50835Relates #50776 diff --git a/docs/changelog/51189.yaml b/docs/changelog/51189.yaml new file mode 100644 index 0000000000000..ccba715ccc895 --- /dev/null +++ b/docs/changelog/51189.yaml @@ -0,0 +1,8 @@ +pr: 51189 +issues: + - 50775 +area: Recovery +type: enhancement +summary: Use Lucene index in peer recovery and resync +versions: + - v8.0.0 diff --git a/docs/changelog/51195.yaml b/docs/changelog/51195.yaml new file mode 100644 index 0000000000000..9f799fee092a1 --- /dev/null +++ b/docs/changelog/51195.yaml @@ -0,0 +1,17 @@ +pr: 51195 +issues: + - 37614 +area: Authentication +type: breaking +summary: Make order setting mandatory for Realm config +versions: + - v8.0.0 +breaking: + notable: false + title: Make order setting mandatory for Realm config + anchor: make_order_setting_mandatory_for_realm_config + body: >- + The order parameter must be explicitly specified for each realm.This is a + breaking change and will start take effect in 8.0 + + Resolves: #37614 diff --git a/docs/changelog/51219.yaml b/docs/changelog/51219.yaml new file mode 100644 index 0000000000000..e1817487b1fc2 --- /dev/null +++ b/docs/changelog/51219.yaml @@ -0,0 +1,16 @@ +pr: 51219 +issues: [] +area: Mapping +type: breaking-java +summary: Remove unused parameter from `MetadataFieldMapper.TypeParser#getDefault()` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove unused parameter from `MetadataFieldMapper.TypeParser#getDefault()` + anchor: remove_unused_parameter_from_metadatafieldmapper_typeparser_getdefault_ + body: This addresses a very old TODO comment in + `MetadataFieldMapper.TypeParser`; passingin a previously constructed field + mapper here was a hack in order to provide access toprebuilt analyzers for + the `AllFieldType`; this has now been removed, so we can removethe parameter + from this method signature. diff --git a/docs/changelog/51417.yaml b/docs/changelog/51417.yaml new file mode 100644 index 0000000000000..f0e41bed5adce --- /dev/null +++ b/docs/changelog/51417.yaml @@ -0,0 +1,8 @@ +pr: 51417 +issues: + - 50775 +area: Engine +type: enhancement +summary: Remove translog retention policy +versions: + - v8.0.0 diff --git a/docs/changelog/51421.yaml b/docs/changelog/51421.yaml new file mode 100644 index 0000000000000..0d062a2f3efad --- /dev/null +++ b/docs/changelog/51421.yaml @@ -0,0 +1,8 @@ +pr: 51421 +issues: + - 49581 +area: EQL +type: UNKNOWN +summary: Merge EQL dev branch to master +versions: + - v8.0.0 diff --git a/docs/changelog/51697.yaml b/docs/changelog/51697.yaml new file mode 100644 index 0000000000000..e2f2359b7f2e4 --- /dev/null +++ b/docs/changelog/51697.yaml @@ -0,0 +1,20 @@ +pr: 51697 +issues: + - 50775 +area: Engine +type: breaking +summary: Remove translog retention settings +versions: + - v8.0.0 +breaking: + notable: false + title: Remove translog retention settings + anchor: remove_translog_retention_settings + body: >- + The translog retention settings `index.translog.retention.size` and + `index.translog.retention.age` were effectively + [ignored](https://github.com/elastic/elasticsearch/pull/45868) in 7.4, + [deprecated](https://github.com/elastic/elasticsearch/pull/51588) in 7.7, + and now removed in 8.0 in favor of soft-deletes. + + Closes #50775 diff --git a/docs/changelog/51704.yaml b/docs/changelog/51704.yaml new file mode 100644 index 0000000000000..7450395c9b623 --- /dev/null +++ b/docs/changelog/51704.yaml @@ -0,0 +1,8 @@ +pr: 51704 +issues: + - 51703 +area: Docs Infrastructure +type: UNKNOWN +summary: Remove docs related to index time boosting +versions: + - v8.0.0 diff --git a/docs/changelog/51716.yaml b/docs/changelog/51716.yaml new file mode 100644 index 0000000000000..771e8a34e9e04 --- /dev/null +++ b/docs/changelog/51716.yaml @@ -0,0 +1,18 @@ +pr: 51716 +issues: + - 51480 +area: Packaging +type: breaking +summary: Remove SysV init support +versions: + - v8.0.0 +breaking: + notable: false + title: Remove SysV init support + anchor: remove_sysv_init_support + body: >- + With the removal of support for older OSes, we no longer have anysupported + systems which use SysV init. This commit removes support forthat legacy init + system. + + relates #51480 diff --git a/docs/changelog/52208.yaml b/docs/changelog/52208.yaml new file mode 100644 index 0000000000000..3cc7871395a16 --- /dev/null +++ b/docs/changelog/52208.yaml @@ -0,0 +1,9 @@ +pr: 52208 +issues: + - 50536 + - 47345 +area: Features/Stats +type: enhancement +summary: Add Bulk stats track the bulk per shard +versions: + - v8.0.0 diff --git a/docs/changelog/52257.yaml b/docs/changelog/52257.yaml new file mode 100644 index 0000000000000..0ae662bfaeaf3 --- /dev/null +++ b/docs/changelog/52257.yaml @@ -0,0 +1,15 @@ +pr: 52257 +issues: + - 51871 +area: Aggregations +type: breaking +summary: "Percentiles aggregation: disallow specifying same percentile values twice" +versions: + - v8.0.0 +breaking: + notable: false + title: "Percentiles aggregation: disallow specifying same percentile values twice" + anchor: percentiles_aggregation_disallow_specifying_same_percentile_values_twice + body: |- + disallows specifying same percentile values twice and throws an exception. + Note: As this is a breaking change, it goes only into 8.0Related: #51871 diff --git a/docs/changelog/52280.yaml b/docs/changelog/52280.yaml new file mode 100644 index 0000000000000..9f33b30c6b456 --- /dev/null +++ b/docs/changelog/52280.yaml @@ -0,0 +1,21 @@ +pr: 52280 +issues: [] +area: Infra/Core +type: breaking +summary: Remove `fixed_auto_queue_size` threadpool type +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `fixed_auto_queue_size` threadpool type + anchor: remove_fixed_auto_queue_size_threadpool_type + body: >- + The `fixed_auto_queue_size` thread pool holds a fixed size of threads to + handle the requests with a bounded queue for pending requests that have no + threads to service them. It's similar to the `fixed` threadpool, however, + the `queue_size` automatically adjusts according to calculations based + on[Little's Law](https://en.wikipedia.org/wiki/Little%27s_law). This dynamic + adjustment was, by default, disabled for the two `fixed_auto_queue_size` + thread pools (`search` and `search_throttled`). + + As this feature was marked as experimental, and we are unaware of any users explicitly configuring this, we intent to deprecate it in ES 7 and remove it in ES 8. diff --git a/docs/changelog/52987.yaml b/docs/changelog/52987.yaml new file mode 100644 index 0000000000000..e373a2d1208a2 --- /dev/null +++ b/docs/changelog/52987.yaml @@ -0,0 +1,7 @@ +pr: 52987 +issues: [] +area: Unknown +type: UNKNOWN +summary: Fix Javadoc comments in `QueryBuilders` +versions: + - v8.0.0 diff --git a/docs/changelog/53314.yaml b/docs/changelog/53314.yaml new file mode 100644 index 0000000000000..02da5dfc851f5 --- /dev/null +++ b/docs/changelog/53314.yaml @@ -0,0 +1,20 @@ +pr: 53314 +issues: + - 53049 +area: Infra/Core +type: breaking +summary: Remove the listener thread pool +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the listener thread pool + anchor: remove_the_listener_thread_pool + body: >- + This commit completes the work to remove the listener thread pool, having + removed all uses of it in the server codebase, and deprecated it in 7.x. + With this commit, we also remove the infrastructgure to deprecate a fixed + thread pool, which was added as part of this work, since it is easy to bring + back if needed. + + Closes #53049 diff --git a/docs/changelog/53715.yaml b/docs/changelog/53715.yaml new file mode 100644 index 0000000000000..bbd82cad67dcd --- /dev/null +++ b/docs/changelog/53715.yaml @@ -0,0 +1,8 @@ +pr: 53715 +issues: + - 46702 +area: Infra/Logging +type: bug +summary: Fix NPE when logging null values in JSON +versions: + - v8.0.0 diff --git a/docs/changelog/53785.yaml b/docs/changelog/53785.yaml new file mode 100644 index 0000000000000..078ac9bff0af5 --- /dev/null +++ b/docs/changelog/53785.yaml @@ -0,0 +1,8 @@ +pr: 53785 +issues: + - 53751 +area: Cluster Coordination +type: bug +summary: Apply cluster states in system context +versions: + - v8.0.0 diff --git a/docs/changelog/53845.yaml b/docs/changelog/53845.yaml new file mode 100644 index 0000000000000..3476377f83ca1 --- /dev/null +++ b/docs/changelog/53845.yaml @@ -0,0 +1,19 @@ +pr: 53845 +issues: + - 51806 +area: Cluster Coordination +type: breaking +summary: Remove support for delaying state recovery pending master +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for delaying state recovery pending master + anchor: remove_support_for_delaying_state_recovery_pending_master + body: >- + The following settings are deprecated:* `gateway.expected_nodes`* + `gateway.expected_master_nodes`* `gateway.recover_after_nodes`* + `gateway.recover_after_master_nodes`This pull request removed these + settings. + + Closes #51806 diff --git a/docs/changelog/54175.yaml b/docs/changelog/54175.yaml new file mode 100644 index 0000000000000..7435ecc5a0598 --- /dev/null +++ b/docs/changelog/54175.yaml @@ -0,0 +1,18 @@ +pr: 54175 +issues: + - 53924 +area: Infra/Core, Distributed +type: breaking +summary: Remove the `cluster.remote.connect` setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the `cluster.remote.connect` setting + anchor: remove_the_cluster_remote_connect_setting + body: >- + In Elasticsearch 7.7.0, the setting cluster.remote.connect was deprecated. + In this commit, we remote the setting permanently in favor of setting + node.remote_cluster_client. + + Relates #53924 diff --git a/docs/changelog/54381.yaml b/docs/changelog/54381.yaml new file mode 100644 index 0000000000000..9a17051a3968e --- /dev/null +++ b/docs/changelog/54381.yaml @@ -0,0 +1,18 @@ +pr: 54381 +issues: + - 54374 +area: Infra/Core +type: breaking +summary: Remove the node local storage setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the node local storage setting + anchor: remove_the_node_local_storage_setting + body: >- + In 7.8.0 the node.local_storage setting was deprecated in favor of requiring + all nodes to have a form of persistent storage. This commit removes the + node.local_storage setting. + + Relates #54374 diff --git a/docs/changelog/54753.yaml b/docs/changelog/54753.yaml new file mode 100644 index 0000000000000..c8175231873cb --- /dev/null +++ b/docs/changelog/54753.yaml @@ -0,0 +1,8 @@ +pr: 54753 +issues: + - 54744 +area: Aggregations +type: bug +summary: Fix `t_test` usage stats +versions: + - v8.0.0 diff --git a/docs/changelog/54904.yaml b/docs/changelog/54904.yaml new file mode 100644 index 0000000000000..a5c8ecca9778c --- /dev/null +++ b/docs/changelog/54904.yaml @@ -0,0 +1,8 @@ +pr: 54904 +issues: + - 54825 +area: Features/ILM+SLM +type: UNKNOWN +summary: Fix `IndexLifecycleExplainResponse` serialization version checks +versions: + - v8.0.0 diff --git a/docs/changelog/54953.yaml b/docs/changelog/54953.yaml new file mode 100644 index 0000000000000..808ca86da9ddd --- /dev/null +++ b/docs/changelog/54953.yaml @@ -0,0 +1,8 @@ +pr: 54953 +issues: + - 54897 +area: Search +type: bug +summary: Check for negative "from" values in search request body +versions: + - v8.0.0 diff --git a/docs/changelog/55078.yaml b/docs/changelog/55078.yaml new file mode 100644 index 0000000000000..c3b8826dad24a --- /dev/null +++ b/docs/changelog/55078.yaml @@ -0,0 +1,12 @@ +pr: 55078 +issues: [] +area: Search +type: breaking +summary: Remove the object format for indices_boost. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the object format for indices_boost. + anchor: remove_the_object_format_for_indices_boost_ + body: This format has been deprecated since version 5.2. diff --git a/docs/changelog/55100.yaml b/docs/changelog/55100.yaml new file mode 100644 index 0000000000000..edb83449ba75c --- /dev/null +++ b/docs/changelog/55100.yaml @@ -0,0 +1,14 @@ +pr: 55100 +issues: + - 55099 +area: Features/Indices APIs +type: breaking, deprecation +summary: Remove local parameter for get field mapping request +versions: + - v8.0.0 +breaking: + notable: false + title: Remove local parameter for get field mapping request + anchor: remove_local_parameter_for_get_field_mapping_request + body: The local parameter of get field mapping request is [marked as deprecated + in 7.x](#55099).This PR removes it for the next major. diff --git a/docs/changelog/55109.yaml b/docs/changelog/55109.yaml new file mode 100644 index 0000000000000..9a051bafa9dd4 --- /dev/null +++ b/docs/changelog/55109.yaml @@ -0,0 +1,8 @@ +pr: 55109 +issues: + - 52640 +area: Infra/REST API +type: UNKNOWN +summary: Remove deprecated endpoints of hot threads API +versions: + - v8.0.0 diff --git a/docs/changelog/55181.yaml b/docs/changelog/55181.yaml new file mode 100644 index 0000000000000..cdb66ae1dd612 --- /dev/null +++ b/docs/changelog/55181.yaml @@ -0,0 +1,8 @@ +pr: 55181 +issues: + - 54847 +area: Aggregations +type: bug +summary: Fix BWC issues for x_pack/usage +versions: + - v8.0.0 diff --git a/docs/changelog/55399.yaml b/docs/changelog/55399.yaml new file mode 100644 index 0000000000000..6739eb5390032 --- /dev/null +++ b/docs/changelog/55399.yaml @@ -0,0 +1,8 @@ +pr: 55399 +issues: + - 55378 +area: Search +type: bug +summary: Fix `VectorsFeatureSetUsage` serialization in BWC mode +versions: + - v8.0.0 diff --git a/docs/changelog/55489.yaml b/docs/changelog/55489.yaml new file mode 100644 index 0000000000000..403c1a82fae35 --- /dev/null +++ b/docs/changelog/55489.yaml @@ -0,0 +1,19 @@ +pr: 55489 +issues: + - 55411 + - 53101 +area: Features/Indices APIs +type: breaking +summary: Change prefer_v2_templates parameter to default to true +versions: + - v8.0.0 +breaking: + notable: false + title: Change prefer_v2_templates parameter to default to true + anchor: change_prefer_v2_templates_parameter_to_default_to_true + body: >- + As a followup to #55411, this commit changes the default for the + `?prefer_v2_templates` querystringparameter to be `true`. This means that V2 + templates will take precedence by default in 8.0+ + + Relates to #53101 diff --git a/docs/changelog/55544.yaml b/docs/changelog/55544.yaml new file mode 100644 index 0000000000000..97ec8aa767279 --- /dev/null +++ b/docs/changelog/55544.yaml @@ -0,0 +1,7 @@ +pr: 55544 +issues: [] +area: Security +type: enhancement +summary: Change default hashing algorithm for FIPS 140 +versions: + - v8.0.0 diff --git a/docs/changelog/55622.yaml b/docs/changelog/55622.yaml new file mode 100644 index 0000000000000..19ca158893774 --- /dev/null +++ b/docs/changelog/55622.yaml @@ -0,0 +1,15 @@ +pr: 55622 +issues: [] +area: Search +type: breaking +summary: Remove `use_field_mapping` format option for docvalue fields. +versions: + - v8.0.0 +breaking: + notable: false + title: Remove `use_field_mapping` format option for docvalue fields. + anchor: remove_use_field_mapping_format_option_for_docvalue_fields_ + body: In 7.0, we began formatting `docvalue_fields` by default using each + field'smapping definition. To ease the transition from 6.x, we added the + formatoption `use_field_mapping`. This parameter was deprecated in 7.0, and + we canremove it in 8.0. diff --git a/docs/changelog/55673.yaml b/docs/changelog/55673.yaml new file mode 100644 index 0000000000000..e419969f7fec9 --- /dev/null +++ b/docs/changelog/55673.yaml @@ -0,0 +1,19 @@ +pr: 55673 +issues: + - 50836 + - 47990 +area: Cluster Coordination +type: breaking +summary: Remove node filters for voting config exclusions +versions: + - v8.0.0 +breaking: + notable: false + title: Remove node filters for voting config exclusions + anchor: remove_node_filters_for_voting_config_exclusions + body: >- + The use of node filters for excluding nodes from the voting configuration + wasdeprecated in #50836; this commit removes support for node filters in + this API. + + Closes #47990 diff --git a/docs/changelog/55736.yaml b/docs/changelog/55736.yaml new file mode 100644 index 0000000000000..e199e52ab5eb8 --- /dev/null +++ b/docs/changelog/55736.yaml @@ -0,0 +1,8 @@ +pr: 55736 +issues: + - 54478 +area: Features/CAT APIs +type: UNKNOWN +summary: _cat/threadpool remove "size" and add "time" params +versions: + - v8.0.0 diff --git a/docs/changelog/56149.yaml b/docs/changelog/56149.yaml new file mode 100644 index 0000000000000..e663610b52295 --- /dev/null +++ b/docs/changelog/56149.yaml @@ -0,0 +1,8 @@ +pr: 56149 +issues: + - 52103 +area: Infra/Scripting +type: enhancement +summary: Update `DeprecationMap` to `DynamicMap` +versions: + - v8.0.0 diff --git a/docs/changelog/56211.yaml b/docs/changelog/56211.yaml new file mode 100644 index 0000000000000..04b581652592e --- /dev/null +++ b/docs/changelog/56211.yaml @@ -0,0 +1,19 @@ +pr: 56211 +issues: + - 54745 +area: Infra/Plugins +type: breaking +summary: Remove deprecated basic license feature enablement settings from 8.0 +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated basic license feature enablement settings from 8.0 + anchor: remove_deprecated_basic_license_feature_enablement_settings_from_8_0 + body: >- + In 7.8.0, we deprecated the settings for disabling basic license feature + APIs. This PR removes those settings altogether for 8.0. This is a breaking + change: if these options appear in `elasticsearch.yml`, they will no longer + be recognized. + + Meta issue: #54745 diff --git a/docs/changelog/57200.yaml b/docs/changelog/57200.yaml new file mode 100644 index 0000000000000..c4ad5e335e33a --- /dev/null +++ b/docs/changelog/57200.yaml @@ -0,0 +1,7 @@ +pr: 57200 +issues: [] +area: Search +type: UNKNOWN +summary: Remove deprecated `SimpleQueryStringBuilder` parameters +versions: + - v8.0.0 diff --git a/docs/changelog/57591.yaml b/docs/changelog/57591.yaml new file mode 100644 index 0000000000000..e999ed1935cc5 --- /dev/null +++ b/docs/changelog/57591.yaml @@ -0,0 +1,18 @@ +pr: 57591 +issues: + - 56171 +area: Infra/Logging +type: breaking +summary: Remove slowlog level +versions: + - v8.0.0 +breaking: + notable: false + title: Remove slowlog level + anchor: remove_slowlog_level + body: Setting a slow log level requires an unnecessary conditional logic in + `SearchSlowLog` and `IndexingSlowLog`The behaviour of setting a level on a + slow logger can be achieved with correct slow log threshold settings. This + PR is removing slow log and modifies tests to achieve the same behaviour + with changing threshold.relates + https://github.com/elastic/elasticsearch/issues/56171 diff --git a/docs/changelog/57594.yaml b/docs/changelog/57594.yaml new file mode 100644 index 0000000000000..e267512cfff0b --- /dev/null +++ b/docs/changelog/57594.yaml @@ -0,0 +1,7 @@ +pr: 57594 +issues: [] +area: SQL +type: enhancement +summary: Use java String methods for LTRIM/RTRIM +versions: + - v8.0.0 diff --git a/docs/changelog/58220.yaml b/docs/changelog/58220.yaml new file mode 100644 index 0000000000000..11e5d923a3f88 --- /dev/null +++ b/docs/changelog/58220.yaml @@ -0,0 +1,8 @@ +pr: 58220 +issues: + - 58217 +area: License +type: enhancement +summary: Add deprecated `accept_enterprise` param to /_xpack +versions: + - v8.0.0 diff --git a/docs/changelog/58387.yaml b/docs/changelog/58387.yaml new file mode 100644 index 0000000000000..88abfc185c579 --- /dev/null +++ b/docs/changelog/58387.yaml @@ -0,0 +1,7 @@ +pr: 58387 +issues: [] +area: Features/Data streams +type: UNKNOWN +summary: "Adjust version after backporting #57675" +versions: + - v8.0.0 diff --git a/docs/changelog/58732.yaml b/docs/changelog/58732.yaml new file mode 100644 index 0000000000000..0725b96304ce9 --- /dev/null +++ b/docs/changelog/58732.yaml @@ -0,0 +1,8 @@ +pr: 58732 +issues: + - 58682 +area: Machine Learning +type: bug +summary: Remove erroneous licence +versions: + - v8.0.0 diff --git a/docs/changelog/58779.yaml b/docs/changelog/58779.yaml new file mode 100644 index 0000000000000..9508cb941f01d --- /dev/null +++ b/docs/changelog/58779.yaml @@ -0,0 +1,8 @@ +pr: 58779 +issues: + - 58521 +area: Mapping +type: bug +summary: Remove assertions that mappings have one top-level key. +versions: + - v8.0.0 diff --git a/docs/changelog/59262.yaml b/docs/changelog/59262.yaml new file mode 100644 index 0000000000000..74984d6946a60 --- /dev/null +++ b/docs/changelog/59262.yaml @@ -0,0 +1,17 @@ +pr: 59262 +issues: + - 50152 +area: Infra/Scripting +type: breaking +summary: Remove general cache settings +versions: + - v8.0.0 +breaking: + notable: false + title: Remove general cache settings + anchor: remove_general_cache_settings + body: >- + Removed settings: * `script.cache.max_size` * `script.cache.expire` * + `script.max_compilations_rate` + + Refs: #50152 diff --git a/docs/changelog/59265.yaml b/docs/changelog/59265.yaml new file mode 100644 index 0000000000000..734f331e51d6b --- /dev/null +++ b/docs/changelog/59265.yaml @@ -0,0 +1,25 @@ +pr: 59265 +issues: + - 59262 + - 50152 +area: Infra/Scripting +type: breaking +summary: Move `script_cache` into _nodes/stats +versions: + - v8.0.0 +breaking: + notable: false + title: Move `script_cache` into _nodes/stats + anchor: move_script_cache_into_nodes_stats + body: >- + Pending: #59262 + + Updated `_nodes/stats`: * Remove `script_cache` * Update `script` in `_node/stats` to include stats per context: + + [source] + + ---- "script": { "compilations": 1, "cache_evictions": 0, "compilation_limit_triggered": 0, "contexts":[ { "context": "aggregation_selector", "compilations": 0, "cache_evictions": 0, "compilation_limit_triggered": 0 }, + + ---- + + Refs: #50152 diff --git a/docs/changelog/59336.yaml b/docs/changelog/59336.yaml new file mode 100644 index 0000000000000..ed385d6715a9c --- /dev/null +++ b/docs/changelog/59336.yaml @@ -0,0 +1,7 @@ +pr: 59336 +issues: [] +area: Unknown +type: UNKNOWN +summary: "Re-enable bwc from #59265" +versions: + - v8.0.0 diff --git a/docs/changelog/59349.yaml b/docs/changelog/59349.yaml new file mode 100644 index 0000000000000..03e1a71615d65 --- /dev/null +++ b/docs/changelog/59349.yaml @@ -0,0 +1,8 @@ +pr: 59349 +issues: + - 44505 +area: Rollup +type: enhancement +summary: Adds support for `date_nanos` in Rollup Metric and `DateHistogram` Configs +versions: + - v8.0.0 diff --git a/docs/changelog/59475.yaml b/docs/changelog/59475.yaml new file mode 100644 index 0000000000000..abbb828d95520 --- /dev/null +++ b/docs/changelog/59475.yaml @@ -0,0 +1,7 @@ +pr: 59475 +issues: [] +area: Aggregations +type: bug +summary: Fix `DoubleBounds` null serialization +versions: + - v8.0.0 diff --git a/docs/changelog/59501.yaml b/docs/changelog/59501.yaml new file mode 100644 index 0000000000000..58c7185db5b2a --- /dev/null +++ b/docs/changelog/59501.yaml @@ -0,0 +1,9 @@ +pr: 59501 +issues: + - 59386 + - 54441 +area: Geo +type: bug +summary: Preprocess polygon rings before processing it for decomposition. +versions: + - v8.0.0 diff --git a/docs/changelog/59507.yaml b/docs/changelog/59507.yaml new file mode 100644 index 0000000000000..df70308b5762b --- /dev/null +++ b/docs/changelog/59507.yaml @@ -0,0 +1,20 @@ +pr: 59507 +issues: + - 59391 +area: Infra/Scripting +type: breaking +summary: Consolidate script parsing from object +versions: + - v8.0.0 +breaking: + notable: false + title: Consolidate script parsing from object + anchor: consolidate_script_parsing_from_object + body: >- + The update by query action parses a script from an object (map or string). + We will need to do the same for runtime fields as they are parsed as part of + mappings (#59391). + + This commit moves the existing parsing of a script from an object from RestUpdateByQueryAction to the Script class. It also adds tests and adjusts some error messages that are incorrect. Also, options were not parsed before and they are now. And unsupported fields are no longer silently ignored. + + I plan on backporting this change to 7.x without the handling for unsupported fields, as that is a breaking change. diff --git a/docs/changelog/59698.yaml b/docs/changelog/59698.yaml new file mode 100644 index 0000000000000..628fc6d495801 --- /dev/null +++ b/docs/changelog/59698.yaml @@ -0,0 +1,16 @@ +pr: 59698 +issues: + - 48366 +area: Recovery +type: breaking +summary: Remove dangling index auto import functionality +versions: + - v8.0.0 +breaking: + notable: false + title: Remove dangling index auto import functionality + anchor: remove_dangling_index_auto_import_functionality + body: > + Closes #48366. Remove all traces of automatically importing dangling + indices. This change will not be backported, though this functionality is + deprecated as of 7.9.0. diff --git a/docs/changelog/59870.yaml b/docs/changelog/59870.yaml new file mode 100644 index 0000000000000..5e93e23f72bb6 --- /dev/null +++ b/docs/changelog/59870.yaml @@ -0,0 +1,9 @@ +pr: 59870 +issues: + - 48170 + - 35958 +area: Machine Learning +type: deprecation +summary: Remove deprecated `_xpack` endpoints +versions: + - v8.0.0 diff --git a/docs/changelog/59949.yaml b/docs/changelog/59949.yaml new file mode 100644 index 0000000000000..244d74eb2b23d --- /dev/null +++ b/docs/changelog/59949.yaml @@ -0,0 +1,7 @@ +pr: 59949 +issues: [] +area: Infra/Core +type: UNKNOWN +summary: Remove unused deprecate method in `FormatNames` +versions: + - v8.0.0 diff --git a/docs/changelog/60044.yaml b/docs/changelog/60044.yaml new file mode 100644 index 0000000000000..07068fdb2bbd5 --- /dev/null +++ b/docs/changelog/60044.yaml @@ -0,0 +1,7 @@ +pr: 60044 +issues: [] +area: Infra/Core +type: UNKNOWN +summary: Remove camel case named formats +versions: + - v8.0.0 diff --git a/docs/changelog/60158.yaml b/docs/changelog/60158.yaml new file mode 100644 index 0000000000000..df4f89c7e2ddd --- /dev/null +++ b/docs/changelog/60158.yaml @@ -0,0 +1,8 @@ +pr: 60158 +issues: + - 60001 +area: Infra/Scripting +type: UNKNOWN +summary: Expose all doc field str const accesses +versions: + - v8.0.0 diff --git a/docs/changelog/60351.yaml b/docs/changelog/60351.yaml new file mode 100644 index 0000000000000..ff1440201604f --- /dev/null +++ b/docs/changelog/60351.yaml @@ -0,0 +1,8 @@ +pr: 60351 +issues: + - 59683 +area: Search +type: bug +summary: Improve error msg for CCS request on node without remote cluster role +versions: + - v8.0.0 diff --git a/docs/changelog/60505.yaml b/docs/changelog/60505.yaml new file mode 100644 index 0000000000000..f83f0a7ba744a --- /dev/null +++ b/docs/changelog/60505.yaml @@ -0,0 +1,7 @@ +pr: 60505 +issues: [] +area: Recovery, Snapshot/Restore +type: enhancement +summary: Add recovery state tracking for Searchable Snapshots +versions: + - v8.0.0 diff --git a/docs/changelog/60873.yaml b/docs/changelog/60873.yaml new file mode 100644 index 0000000000000..8cb802fd2db8f --- /dev/null +++ b/docs/changelog/60873.yaml @@ -0,0 +1,19 @@ +pr: 60873 +issues: + - 60872 +area: Cluster Coordination +type: breaking, enhancement +summary: Remove join timeout +versions: + - v8.0.0 +breaking: + notable: false + title: Remove join timeout + anchor: remove_join_timeout + body: >- + There is no point in timing out a join attempt any more. Timing out + andretrying with the same master is pointless, and an in-flight joinattempt + to one master no longer blocks attempts to join other masters.This commit + removes this unnecessary setting. + + Relates #60872 in which this setting was deprecated. diff --git a/docs/changelog/61043.yaml b/docs/changelog/61043.yaml new file mode 100644 index 0000000000000..499777e59f418 --- /dev/null +++ b/docs/changelog/61043.yaml @@ -0,0 +1,15 @@ +pr: 61043 +issues: [] +area: Infra/REST API +type: breaking, enhancement +summary: Remove content type required setting +versions: + - v8.0.0 +breaking: + notable: false + title: Remove content type required setting + anchor: remove_content_type_required_setting + body: This change removes the HTTP content type required setting, which + wasdeprecated in 6.0 and only existed for users upgrading from 5.x so + thatthey did not need to remove the setting immediately. The setting has + noeffect on behavior. diff --git a/docs/changelog/61259.yaml b/docs/changelog/61259.yaml new file mode 100644 index 0000000000000..684f847a5090a --- /dev/null +++ b/docs/changelog/61259.yaml @@ -0,0 +1,8 @@ +pr: 61259 +issues: + - 60889 +area: Features/Java High Level REST Client, Infra/Logging +type: UNKNOWN +summary: Avoid `StackOverflowError` due to regex alternate paths +versions: + - v8.0.0 diff --git a/docs/changelog/61427.yaml b/docs/changelog/61427.yaml new file mode 100644 index 0000000000000..b3757681505d2 --- /dev/null +++ b/docs/changelog/61427.yaml @@ -0,0 +1,17 @@ +pr: 61427 +issues: [] +area: Infra/REST API, SQL +type: breaking +summary: Allow parsing Content-Type and Accept headers with version +versions: + - v8.0.0 +breaking: + notable: false + title: Allow parsing Content-Type and Accept headers with version + anchor: allow_parsing_content_type_and_accept_headers_with_version + body: >- + Content-Type and Accept headers expect a versioned form of media typeslike + application/vnd.elasticsearch+json;compatible-with=7when previously it was + simple application/json or (cbor, yaml..) - it is stillsupported + + next step after https://github.com/elastic/elasticsearch/pull/61987relates https://github.com/elastic/elasticsearch/pull/60516 diff --git a/docs/changelog/61428.yaml b/docs/changelog/61428.yaml new file mode 100644 index 0000000000000..ad9c16ca6bdbf --- /dev/null +++ b/docs/changelog/61428.yaml @@ -0,0 +1,9 @@ +pr: 61428 +issues: + - 59764 + - 59779 +area: EQL +type: UNKNOWN +summary: Replace `SearchHit` in response with Event +versions: + - v8.0.0 diff --git a/docs/changelog/61508.yaml b/docs/changelog/61508.yaml new file mode 100644 index 0000000000000..53a9043ae7f5d --- /dev/null +++ b/docs/changelog/61508.yaml @@ -0,0 +1,7 @@ +pr: 61508 +issues: [] +area: Infra/Scripting +type: bug +summary: Fixes casting in constant folding +versions: + - v8.0.0 diff --git a/docs/changelog/61594.yaml b/docs/changelog/61594.yaml new file mode 100644 index 0000000000000..4f523a60f5960 --- /dev/null +++ b/docs/changelog/61594.yaml @@ -0,0 +1,7 @@ +pr: 61594 +issues: [] +area: Infra/Scripting +type: bug +summary: Several minor Painless fixes +versions: + - v8.0.0 diff --git a/docs/changelog/61825.yaml b/docs/changelog/61825.yaml new file mode 100644 index 0000000000000..10c921219b4a1 --- /dev/null +++ b/docs/changelog/61825.yaml @@ -0,0 +1,7 @@ +pr: 61825 +issues: [] +area: Infra/Scripting +type: bug +summary: Change compound assignment structure to support String concatenation +versions: + - v8.0.0 diff --git a/docs/changelog/62156.yaml b/docs/changelog/62156.yaml new file mode 100644 index 0000000000000..eead4d3acf54f --- /dev/null +++ b/docs/changelog/62156.yaml @@ -0,0 +1,7 @@ +pr: 62156 +issues: [] +area: Infra/Logging +type: UNKNOWN +summary: Populate data stream fields when `xOpaqueId` not provided +versions: + - v8.0.0 diff --git a/docs/changelog/62309.yaml b/docs/changelog/62309.yaml new file mode 100644 index 0000000000000..18da3f70e5ab8 --- /dev/null +++ b/docs/changelog/62309.yaml @@ -0,0 +1,17 @@ +pr: 62309 +issues: + - 62297 +area: Snapshot/Restore +type: breaking +summary: Remove Repository Stats API +versions: + - v8.0.0 +breaking: + notable: false + title: Remove Repository Stats API + anchor: remove_repository_stats_api + body: >- + Now the Repository Stats API is deprecated in 7.10.0 (#62297) we can remove + it in 8.0.0. + + I'm labeling this as `>breaking` to respect the development process but we're talking about an experimental API that was never released(behind a feature flag). diff --git a/docs/changelog/62468.yaml b/docs/changelog/62468.yaml new file mode 100644 index 0000000000000..ddf1cabd3df97 --- /dev/null +++ b/docs/changelog/62468.yaml @@ -0,0 +1,7 @@ +pr: 62468 +issues: [] +area: Infra/REST API +type: UNKNOWN +summary: Adds quotes to timestamp values in runtime_fields/40_date YAML test +versions: + - v8.0.0 diff --git a/docs/changelog/62639.yaml b/docs/changelog/62639.yaml new file mode 100644 index 0000000000000..13aee779a9b83 --- /dev/null +++ b/docs/changelog/62639.yaml @@ -0,0 +1,8 @@ +pr: 62639 +issues: + - 62623 +area: Mapping +type: deprecation +summary: Remove mapping boost parameter entirely +versions: + - v8.0.0 diff --git a/docs/changelog/62646.yaml b/docs/changelog/62646.yaml new file mode 100644 index 0000000000000..1f9c46055090c --- /dev/null +++ b/docs/changelog/62646.yaml @@ -0,0 +1,7 @@ +pr: 62646 +issues: [] +area: Mapping +type: enhancement +summary: Sparse vector to throw exception consistently +versions: + - v8.0.0 diff --git a/docs/changelog/63038.yaml b/docs/changelog/63038.yaml new file mode 100644 index 0000000000000..365affec62754 --- /dev/null +++ b/docs/changelog/63038.yaml @@ -0,0 +1,7 @@ +pr: 63038 +issues: [] +area: Features/ILM+SLM +type: UNKNOWN +summary: Move SLM history to data stream +versions: + - v8.0.0 diff --git a/docs/changelog/63384.yaml b/docs/changelog/63384.yaml new file mode 100644 index 0000000000000..a38146b68fc07 --- /dev/null +++ b/docs/changelog/63384.yaml @@ -0,0 +1,8 @@ +pr: 63384 +issues: + - 60707 +area: Infra/Core +type: UNKNOWN +summary: Removes `week_year` date format +versions: + - v8.0.0 diff --git a/docs/changelog/63660.yaml b/docs/changelog/63660.yaml new file mode 100644 index 0000000000000..29464f827c8b9 --- /dev/null +++ b/docs/changelog/63660.yaml @@ -0,0 +1,8 @@ +pr: 63660 +issues: + - 63545 +area: Infra/REST API +type: UNKNOWN +summary: "Wraps values containing : in `runtime_fields` test in quotes" +versions: + - v8.0.0 diff --git a/docs/changelog/63692.yaml b/docs/changelog/63692.yaml new file mode 100644 index 0000000000000..ffd2df5796614 --- /dev/null +++ b/docs/changelog/63692.yaml @@ -0,0 +1,21 @@ +pr: 63692 +issues: + - 63680 +area: Search +type: breaking, bug +summary: Fix range query on date fields for number inputs +versions: + - v8.0.0 +breaking: + notable: false + title: Fix range query on date fields for number inputs + anchor: fix_range_query_on_date_fields_for_number_inputs + body: >- + Currently, if you write a date range query with numeric 'to' or 'from' + bounds,they can be interpreted as years if no format is provided. We + use"strict_date_optional_time||epoch_millis" in this case that can interpret + inputslike 1000 as the year 1000 for example. We should change this to + alwaysinterpret and parse numbers in this case with the second option + "epoch_millis"if no other formatter was provided. + + Closes #63680 diff --git a/docs/changelog/64252.yaml b/docs/changelog/64252.yaml new file mode 100644 index 0000000000000..1f55e85435cd8 --- /dev/null +++ b/docs/changelog/64252.yaml @@ -0,0 +1,12 @@ +pr: 64252 +issues: [] +area: Features/Watcher +type: breaking, enhancement +summary: Move watcher history to data stream +versions: + - v8.0.0 +breaking: + notable: false + title: Move watcher history to data stream + anchor: move_watcher_history_to_data_stream + body: This change moves watcher history to data stream. diff --git a/docs/changelog/64327.yaml b/docs/changelog/64327.yaml new file mode 100644 index 0000000000000..67ef3c51e5a6a --- /dev/null +++ b/docs/changelog/64327.yaml @@ -0,0 +1,8 @@ +pr: 64327 +issues: + - 868 +area: Machine Learning +type: bug +summary: Handle null value of `FieldCapabilitiesResponse` +versions: + - v8.0.0 diff --git a/docs/changelog/64406.yaml b/docs/changelog/64406.yaml new file mode 100644 index 0000000000000..796dd65ff48f5 --- /dev/null +++ b/docs/changelog/64406.yaml @@ -0,0 +1,8 @@ +pr: 64406 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Introduce per REST endpoint media types +versions: + - v8.0.0 diff --git a/docs/changelog/64423.yaml b/docs/changelog/64423.yaml new file mode 100644 index 0000000000000..72748dac59694 --- /dev/null +++ b/docs/changelog/64423.yaml @@ -0,0 +1,8 @@ +pr: 64423 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Allow registering compatible handlers +versions: + - v8.0.0 diff --git a/docs/changelog/64472.yaml b/docs/changelog/64472.yaml new file mode 100644 index 0000000000000..63aa29df5bbfa --- /dev/null +++ b/docs/changelog/64472.yaml @@ -0,0 +1,21 @@ +pr: 64472 +issues: + - 63843 +area: Infra/Logging, Audit +type: breaking +summary: Compress audit logs +versions: + - v8.0.0 +breaking: + notable: false + title: Compress audit logs + anchor: compress_audit_logs + body: >- + audit logs should be compressed when rolling over due to size + basedtriggering policy breaching 1GB.Files are not being deleted. + + closes #63843 + + + + - Have you signed the [contributor license agreement](https://www.elastic.co/contributor-agreement)?- Have you followed the [contributor guidelines](https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md)?- If submitting code, have you built your formula locally prior to submission with `gradle check`?- If submitting code, is your pull request against master? Unless there is a good reason otherwise, we prefer pull requests against master and will backport as needed.- If submitting code, have you checked that your submission is for an [OS and architecture that we support](https://www.elastic.co/support/matrix#show_os)?- If you are submitting this code for a class then read our [policy](https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md#contributing-as-part-of-a-class) for that. diff --git a/docs/changelog/64481.yaml b/docs/changelog/64481.yaml new file mode 100644 index 0000000000000..eda678367bd62 --- /dev/null +++ b/docs/changelog/64481.yaml @@ -0,0 +1,8 @@ +pr: 64481 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Introduce Compatible Version plugin +versions: + - v8.0.0 diff --git a/docs/changelog/64650.yaml b/docs/changelog/64650.yaml new file mode 100644 index 0000000000000..c25103dabbfdd --- /dev/null +++ b/docs/changelog/64650.yaml @@ -0,0 +1,8 @@ +pr: 64650 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Do not allow spaces within `MediaType's` parameters +versions: + - v8.0.0 diff --git a/docs/changelog/64708.yaml b/docs/changelog/64708.yaml new file mode 100644 index 0000000000000..daeff9b68b9a6 --- /dev/null +++ b/docs/changelog/64708.yaml @@ -0,0 +1,9 @@ +pr: 64708 +issues: + - 64689 + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Handle incorrect header values +versions: + - v8.0.0 diff --git a/docs/changelog/64721.yaml b/docs/changelog/64721.yaml new file mode 100644 index 0000000000000..c8f726400df6a --- /dev/null +++ b/docs/changelog/64721.yaml @@ -0,0 +1,9 @@ +pr: 64721 +issues: + - 64689 + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Ignore media ranges when parsing +versions: + - v8.0.0 diff --git a/docs/changelog/64732.yaml b/docs/changelog/64732.yaml new file mode 100644 index 0000000000000..1e5acaad2db47 --- /dev/null +++ b/docs/changelog/64732.yaml @@ -0,0 +1,18 @@ +pr: 64732 +issues: + - 21337 +area: Features/Indices APIs +type: breaking +summary: Remove deprecated `_upgrade` API +versions: + - v8.0.0 +breaking: + notable: false + title: Remove deprecated `_upgrade` API + anchor: remove_deprecated_upgrade_api + body: >- + The `_upgrade` API has been superseded by the `_reindex` API and was + deprecated in 7.11.0. This commit removes it completely for the 8.0.0 + release. + + Resolves #21337 diff --git a/docs/changelog/64794.yaml b/docs/changelog/64794.yaml new file mode 100644 index 0000000000000..2213a3153f7df --- /dev/null +++ b/docs/changelog/64794.yaml @@ -0,0 +1,8 @@ +pr: 64794 +issues: + - 62198 +area: Features/CAT APIs +type: deprecation +summary: Adjust deprecation version after backport +versions: + - v8.0.0 diff --git a/docs/changelog/64867.yaml b/docs/changelog/64867.yaml new file mode 100644 index 0000000000000..319351f3be88d --- /dev/null +++ b/docs/changelog/64867.yaml @@ -0,0 +1,20 @@ +pr: 64867 +issues: [] +area: Features/CAT APIs +type: breaking +summary: Remove the deprecated local parameter for _cat/shards +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the deprecated local parameter for _cat/shards + anchor: remove_the_deprecated_local_parameter_for_cat_shards + body: >- + The cat shards API performs a `ClusterStateAction` and then an + `IndicesStatsAction`. Today it accepts the `?local` parameter and passes + this to the `ClusterStateAction` but this parameter has no effect on the + `IndicesStatsAction`. This can be surprising because `GET _cat/shards?local` + looks like it might be a completely local call but in fact it still depends + on every node in the cluster. + + The `local` parameter was deprecated in 7.x and this commit removes it for 8.x. diff --git a/docs/changelog/64868.yaml b/docs/changelog/64868.yaml new file mode 100644 index 0000000000000..debb75e6cff86 --- /dev/null +++ b/docs/changelog/64868.yaml @@ -0,0 +1,20 @@ +pr: 64868 +issues: [] +area: Features/CAT APIs +type: breaking +summary: Remove the deprecated local parameter for _cat/indices +versions: + - v8.0.0 +breaking: + notable: false + title: Remove the deprecated local parameter for _cat/indices + anchor: remove_the_deprecated_local_parameter_for_cat_indices + body: >- + The cat indices API performs several actions including an + `IndicesStatsAction`. Today it accepts the `?local` parameter and passes it + to the actions that support it but this parameter has no effect on the + `IndicesStatsAction`. This can be surprising because `GET + _cat/indices?local` looks like it might be a completely local call but in + fact it still depends on every node in the cluster. + + The `local` parameter was deprecated in 7.x and this commit removes it for 8.x. diff --git a/docs/changelog/64869.yaml b/docs/changelog/64869.yaml new file mode 100644 index 0000000000000..2ce02574aaf9b --- /dev/null +++ b/docs/changelog/64869.yaml @@ -0,0 +1,8 @@ +pr: 64869 +issues: + - 58646 +area: EQL +type: UNKNOWN +summary: Add option for returning results from the tail of the stream +versions: + - v8.0.0 diff --git a/docs/changelog/65255.yaml b/docs/changelog/65255.yaml new file mode 100644 index 0000000000000..60ca48ebfd0cd --- /dev/null +++ b/docs/changelog/65255.yaml @@ -0,0 +1,7 @@ +pr: 65255 +issues: [] +area: Infra/REST API, SQL +type: UNKNOWN +summary: Adding back a validation of incorrect response header +versions: + - v8.0.0 diff --git a/docs/changelog/65259.yaml b/docs/changelog/65259.yaml new file mode 100644 index 0000000000000..1646a57d87367 --- /dev/null +++ b/docs/changelog/65259.yaml @@ -0,0 +1,7 @@ +pr: 65259 +issues: [] +area: Analysis +type: UNKNOWN +summary: "Phonetic: Remove class that is part of commons-codec" +versions: + - v8.0.0 diff --git a/docs/changelog/65500.yaml b/docs/changelog/65500.yaml new file mode 100644 index 0000000000000..2d5b892e20a40 --- /dev/null +++ b/docs/changelog/65500.yaml @@ -0,0 +1,8 @@ +pr: 65500 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Support response content-type with versioned media type +versions: + - v8.0.0 diff --git a/docs/changelog/65590.yaml b/docs/changelog/65590.yaml new file mode 100644 index 0000000000000..8353cff3febf6 --- /dev/null +++ b/docs/changelog/65590.yaml @@ -0,0 +1,9 @@ +pr: 65590 +issues: + - 61884 + - 61884 +area: Security +type: deprecation +summary: Remove support of creating CA on the fly when generating certificates +versions: + - v8.0.0 diff --git a/docs/changelog/65753.yaml b/docs/changelog/65753.yaml new file mode 100644 index 0000000000000..c51074c31bdb2 --- /dev/null +++ b/docs/changelog/65753.yaml @@ -0,0 +1,19 @@ +pr: 65753 +issues: + - 65601 + - 65249 +area: Network +type: breaking +summary: Remove escape hatch permitting incompatible builds +versions: + - v8.0.0 +breaking: + notable: false + title: Remove escape hatch permitting incompatible builds + anchor: remove_escape_hatch_permitting_incompatible_builds + body: >- + Today in `7.x` there is a deprecated system property that bypasses thecheck + that prevents nodes of incompatible builds from communicating.This commit + removes the system property in `master` so that the check isalways enforced. + + Relates #65601, #65249 diff --git a/docs/changelog/66297.yaml b/docs/changelog/66297.yaml new file mode 100644 index 0000000000000..58d76e410caf7 --- /dev/null +++ b/docs/changelog/66297.yaml @@ -0,0 +1,8 @@ +pr: 66297 +issues: + - 65725 +area: Infra/Core +type: bug +summary: Add searchable snapshot cache folder to `NodeEnvironment` +versions: + - v8.0.0 diff --git a/docs/changelog/66671.yaml b/docs/changelog/66671.yaml new file mode 100644 index 0000000000000..ca1bc537797c2 --- /dev/null +++ b/docs/changelog/66671.yaml @@ -0,0 +1,8 @@ +pr: 66671 +issues: + - 66317 +area: Security +type: deprecation +summary: Remove the id field from the `InvalidateApiKey` API +versions: + - v8.0.0 diff --git a/docs/changelog/67154.yaml b/docs/changelog/67154.yaml new file mode 100644 index 0000000000000..a52b0384429c8 --- /dev/null +++ b/docs/changelog/67154.yaml @@ -0,0 +1,7 @@ +pr: 67154 +issues: [] +area: Features/Watcher +type: enhancement +summary: Remove watcher history clean up from monitoring +versions: + - v8.0.0 diff --git a/docs/changelog/67158.yaml b/docs/changelog/67158.yaml new file mode 100644 index 0000000000000..368d7e73b5947 --- /dev/null +++ b/docs/changelog/67158.yaml @@ -0,0 +1,8 @@ +pr: 67158 +issues: + - 66419 +area: Distributed +type: bug +summary: Introduce ?wait_for_active_shards=index-setting +versions: + - v8.0.0 diff --git a/docs/changelog/67216.yaml b/docs/changelog/67216.yaml new file mode 100644 index 0000000000000..ccd725571edef --- /dev/null +++ b/docs/changelog/67216.yaml @@ -0,0 +1,8 @@ +pr: 67216 +issues: + - 56713 +area: SQL +type: enhancement +summary: Improve alias resolution in sub-queries +versions: + - v8.0.0 diff --git a/docs/changelog/67374.yaml b/docs/changelog/67374.yaml new file mode 100644 index 0000000000000..a667d33794d21 --- /dev/null +++ b/docs/changelog/67374.yaml @@ -0,0 +1,9 @@ +pr: 67374 +issues: + - 67246 + - 67158 +area: Distributed +type: bug +summary: Respect `CloseIndexRequest#waitForActiveShards` in HLRC +versions: + - v8.0.0 diff --git a/docs/changelog/67409.yaml b/docs/changelog/67409.yaml new file mode 100644 index 0000000000000..5790349df3838 --- /dev/null +++ b/docs/changelog/67409.yaml @@ -0,0 +1,7 @@ +pr: 67409 +issues: [] +area: Infra/Core +type: bug +summary: Precompute `ParsedMediaType` for `XContentType` +versions: + - v8.0.0 diff --git a/docs/changelog/67552.yaml b/docs/changelog/67552.yaml new file mode 100644 index 0000000000000..8cd8018c02488 --- /dev/null +++ b/docs/changelog/67552.yaml @@ -0,0 +1,8 @@ +pr: 67552 +issues: + - 67545 +area: Infra/REST API +type: UNKNOWN +summary: Make `ParsedMediaType` truly immutable +versions: + - v8.0.0 diff --git a/docs/changelog/67672.yaml b/docs/changelog/67672.yaml new file mode 100644 index 0000000000000..7f1273f537b12 --- /dev/null +++ b/docs/changelog/67672.yaml @@ -0,0 +1,7 @@ +pr: 67672 +issues: [] +area: EQL, SQL +type: UNKNOWN +summary: Refactor function resolution strategy +versions: + - v8.0.0 diff --git a/docs/changelog/67677.yaml b/docs/changelog/67677.yaml new file mode 100644 index 0000000000000..11fabc272d2f5 --- /dev/null +++ b/docs/changelog/67677.yaml @@ -0,0 +1,9 @@ +pr: 67677 +issues: + - 66986 +area: Infra/Scripting +type: UNKNOWN +summary: Make scripted search templates work with new `mediaType` from + `XContentType.JSON` +versions: + - v8.0.0 diff --git a/docs/changelog/67923.yaml b/docs/changelog/67923.yaml new file mode 100644 index 0000000000000..5988cf53081b0 --- /dev/null +++ b/docs/changelog/67923.yaml @@ -0,0 +1,8 @@ +pr: 67923 +issues: + - 51816 +area: Infra/Core +type: UNKNOWN +summary: "`SecurityRestFilter` to delegate `compatibleWith` method" +versions: + - v8.0.0 diff --git a/docs/changelog/68113.yaml b/docs/changelog/68113.yaml new file mode 100644 index 0000000000000..e61bf6d967494 --- /dev/null +++ b/docs/changelog/68113.yaml @@ -0,0 +1,8 @@ +pr: 68113 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Make `XContentParser` aware of compatible API version +versions: + - v8.0.0 diff --git a/docs/changelog/68157.yaml b/docs/changelog/68157.yaml new file mode 100644 index 0000000000000..a7bb817a15f0d --- /dev/null +++ b/docs/changelog/68157.yaml @@ -0,0 +1,9 @@ +pr: 68157 +issues: + - 68101 + - 68101 +area: Infra/Scripting +type: UNKNOWN +summary: "[DOCS] Fixing Painless tests" +versions: + - v8.0.0 diff --git a/docs/changelog/68176.yaml b/docs/changelog/68176.yaml new file mode 100644 index 0000000000000..7a2b26f26ff1c --- /dev/null +++ b/docs/changelog/68176.yaml @@ -0,0 +1,8 @@ +pr: 68176 +issues: + - 68172 +area: EQL +type: enhancement +summary: Introduce case insensitive variant in~ +versions: + - v8.0.0 diff --git a/docs/changelog/68214.yaml b/docs/changelog/68214.yaml new file mode 100644 index 0000000000000..e9e4497cec1f1 --- /dev/null +++ b/docs/changelog/68214.yaml @@ -0,0 +1,9 @@ +pr: 68214 +issues: + - 68198 + - 67666 +area: SQL +type: UNKNOWN +summary: Update supported version for `date_nanos` +versions: + - v8.0.0 diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml new file mode 100644 index 0000000000000..48fb52c73b0ed --- /dev/null +++ b/docs/changelog/68564.yaml @@ -0,0 +1,18 @@ +pr: 68564 +issues: + - 41059 + - 68311 +area: Search +type: breaking +summary: Remove support for `_type` in searches +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for `_type` in searches + anchor: remove_support_for_type_in_searches + body: >- + Types are no longer allowed in requests in 8.0, so we can remove support + forusing the `_type` field within a search request. + + Relates to #41059.Closes #68311. diff --git a/docs/changelog/68606.yaml b/docs/changelog/68606.yaml new file mode 100644 index 0000000000000..0de02e2d6ea03 --- /dev/null +++ b/docs/changelog/68606.yaml @@ -0,0 +1,7 @@ +pr: 68606 +issues: [] +area: SQL +type: UNKNOWN +summary: Add text formatting support for multivalue +versions: + - v8.0.0 diff --git a/docs/changelog/68648.yaml b/docs/changelog/68648.yaml new file mode 100644 index 0000000000000..f7da9a38591a3 --- /dev/null +++ b/docs/changelog/68648.yaml @@ -0,0 +1,8 @@ +pr: 68648 +issues: + - 68100 +area: Infra/REST API +type: UNKNOWN +summary: Refactor usage of compatible version +versions: + - v8.0.0 diff --git a/docs/changelog/68754.yaml b/docs/changelog/68754.yaml new file mode 100644 index 0000000000000..62bb5f87045cc --- /dev/null +++ b/docs/changelog/68754.yaml @@ -0,0 +1,7 @@ +pr: 68754 +issues: [] +area: EQL, SQL +type: UNKNOWN +summary: Improve exact match detection in `StringPattern` +versions: + - v8.0.0 diff --git a/docs/changelog/68808.yaml b/docs/changelog/68808.yaml new file mode 100644 index 0000000000000..e73165d8b0593 --- /dev/null +++ b/docs/changelog/68808.yaml @@ -0,0 +1,8 @@ +pr: 68808 +issues: [] +area: Infra/REST API +type: UNKNOWN +summary: Refactor `ObjectParser` and `CompatibleObjectParser` to support REST + Compatible API +versions: + - v8.0.0 diff --git a/docs/changelog/68966.yaml b/docs/changelog/68966.yaml new file mode 100644 index 0000000000000..7ec1fdbb76631 --- /dev/null +++ b/docs/changelog/68966.yaml @@ -0,0 +1,7 @@ +pr: 68966 +issues: [] +area: SQL +type: UNKNOWN +summary: Add xDBC and CLI support. QA CSV specs +versions: + - v8.0.0 diff --git a/docs/changelog/69029.yaml b/docs/changelog/69029.yaml new file mode 100644 index 0000000000000..aac93fed490a9 --- /dev/null +++ b/docs/changelog/69029.yaml @@ -0,0 +1,9 @@ +pr: 69029 +issues: + - 69016 + - 67325 +area: Highlighting +type: UNKNOWN +summary: Update versions after backport of `max_analyzed_offset` +versions: + - v8.0.0 diff --git a/docs/changelog/69131.yaml b/docs/changelog/69131.yaml new file mode 100644 index 0000000000000..8076720c6da23 --- /dev/null +++ b/docs/changelog/69131.yaml @@ -0,0 +1,8 @@ +pr: 69131 +issues: + - 54160 +area: Infra/REST API +type: UNKNOWN +summary: "[REST Compatible API] Typed endpoints for Index and Get APIs" +versions: + - v8.0.0 diff --git a/docs/changelog/69149.yaml b/docs/changelog/69149.yaml new file mode 100644 index 0000000000000..b60964d0c5a66 --- /dev/null +++ b/docs/changelog/69149.yaml @@ -0,0 +1,20 @@ +pr: 69149 +issues: + - 55820 +area: Packaging +type: breaking +summary: Remove support for `JAVA_HOME` +versions: + - v8.0.0 +breaking: + notable: false + title: Remove support for `JAVA_HOME` + anchor: remove_support_for_java_home_ + body: >- + This commit removes support for JAVA_HOME. As we previously deprecated usage + of JAVA_HOME to override the path for the JDK, this commit follows up by + removing support for JAVA_HOME. Note that we do not treat JAVA_HOME being + set as a failure, as it is perfectly reasonable for a user to have JAVA_HOME + configured at the system level. + + Closes #55820 diff --git a/docs/changelog/69512.yaml b/docs/changelog/69512.yaml new file mode 100644 index 0000000000000..008ed8bf5afa3 --- /dev/null +++ b/docs/changelog/69512.yaml @@ -0,0 +1,7 @@ +pr: 69512 +issues: [] +area: SQL +type: enhancement +summary: Export array values through result sets +versions: + - v8.0.0 diff --git a/docs/changelog/69606.yaml b/docs/changelog/69606.yaml new file mode 100644 index 0000000000000..b80e4374d67a1 --- /dev/null +++ b/docs/changelog/69606.yaml @@ -0,0 +1,7 @@ +pr: 69606 +issues: [] +area: Infra/REST API +type: UNKNOWN +summary: "[Rest Compatible Api] update and delete by query using size field" +versions: + - v8.0.0 diff --git a/docs/changelog/69710.yaml b/docs/changelog/69710.yaml new file mode 100644 index 0000000000000..651532373697a --- /dev/null +++ b/docs/changelog/69710.yaml @@ -0,0 +1,8 @@ +pr: 69710 +issues: + - 69377 +area: Unknown +type: UNKNOWN +summary: Update skip after backport +versions: + - v8.0.0 diff --git a/docs/changelog/69774.yaml b/docs/changelog/69774.yaml new file mode 100644 index 0000000000000..d92ab5d808d42 --- /dev/null +++ b/docs/changelog/69774.yaml @@ -0,0 +1,8 @@ +pr: 69774 +issues: + - 51816 +area: Infra/REST API +type: UNKNOWN +summary: Allow for field declaration for future compatible versions +versions: + - v8.0.0 diff --git a/docs/changelog/69901.yaml b/docs/changelog/69901.yaml new file mode 100644 index 0000000000000..19acded498cc8 --- /dev/null +++ b/docs/changelog/69901.yaml @@ -0,0 +1,7 @@ +pr: 69901 +issues: [] +area: SQL +type: bug +summary: Make `RestSqlQueryAction` thread-safe +versions: + - v8.0.0 diff --git a/docs/changelog/70209.yaml b/docs/changelog/70209.yaml new file mode 100644 index 0000000000000..f2dc841ca18e7 --- /dev/null +++ b/docs/changelog/70209.yaml @@ -0,0 +1,9 @@ +pr: 70209 +issues: + - 69548 + - 69548 +area: Search +type: enhancement +summary: Completely disallow setting negative size in search +versions: + - v8.0.0 diff --git a/docs/changelog/70243.yaml b/docs/changelog/70243.yaml new file mode 100644 index 0000000000000..f49bfcbb9a2fe --- /dev/null +++ b/docs/changelog/70243.yaml @@ -0,0 +1,7 @@ +pr: 70243 +issues: [] +area: Infra/REST API +type: UNKNOWN +summary: "Parsing: Validate that fields are not registered twice" +versions: + - v8.0.0 From 288efb7d69c42c376d88a61378ef395ce5e1cd3b Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 31 Mar 2021 15:35:12 +0100 Subject: [PATCH 03/22] Fixing YAML files --- docs/changelog/67923.yaml | 8 -------- docs/changelog/68113.yaml | 8 -------- docs/changelog/68157.yaml | 9 --------- docs/changelog/68214.yaml | 2 +- docs/changelog/68564.yaml | 11 ++++++----- docs/changelog/68606.yaml | 2 +- docs/changelog/68648.yaml | 8 -------- docs/changelog/68754.yaml | 7 ------- docs/changelog/68808.yaml | 8 -------- docs/changelog/68966.yaml | 2 +- docs/changelog/69029.yaml | 9 --------- docs/changelog/69131.yaml | 4 ++-- docs/changelog/69149.yaml | 19 ++++++++++--------- docs/changelog/69606.yaml | 4 ++-- docs/changelog/69710.yaml | 8 -------- docs/changelog/69774.yaml | 2 +- docs/changelog/70243.yaml | 2 +- 17 files changed, 25 insertions(+), 88 deletions(-) delete mode 100644 docs/changelog/67923.yaml delete mode 100644 docs/changelog/68113.yaml delete mode 100644 docs/changelog/68157.yaml delete mode 100644 docs/changelog/68648.yaml delete mode 100644 docs/changelog/68754.yaml delete mode 100644 docs/changelog/68808.yaml delete mode 100644 docs/changelog/69029.yaml delete mode 100644 docs/changelog/69710.yaml diff --git a/docs/changelog/67923.yaml b/docs/changelog/67923.yaml deleted file mode 100644 index 5988cf53081b0..0000000000000 --- a/docs/changelog/67923.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 67923 -issues: - - 51816 -area: Infra/Core -type: UNKNOWN -summary: "`SecurityRestFilter` to delegate `compatibleWith` method" -versions: - - v8.0.0 diff --git a/docs/changelog/68113.yaml b/docs/changelog/68113.yaml deleted file mode 100644 index e61bf6d967494..0000000000000 --- a/docs/changelog/68113.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 68113 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Make `XContentParser` aware of compatible API version -versions: - - v8.0.0 diff --git a/docs/changelog/68157.yaml b/docs/changelog/68157.yaml deleted file mode 100644 index a7bb817a15f0d..0000000000000 --- a/docs/changelog/68157.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 68157 -issues: - - 68101 - - 68101 -area: Infra/Scripting -type: UNKNOWN -summary: "[DOCS] Fixing Painless tests" -versions: - - v8.0.0 diff --git a/docs/changelog/68214.yaml b/docs/changelog/68214.yaml index e9e4497cec1f1..30be6b1941ba3 100644 --- a/docs/changelog/68214.yaml +++ b/docs/changelog/68214.yaml @@ -3,7 +3,7 @@ issues: - 68198 - 67666 area: SQL -type: UNKNOWN +type: enhancement summary: Update supported version for `date_nanos` versions: - v8.0.0 diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml index 48fb52c73b0ed..56da48e459c8e 100644 --- a/docs/changelog/68564.yaml +++ b/docs/changelog/68564.yaml @@ -11,8 +11,9 @@ breaking: notable: false title: Remove support for `_type` in searches anchor: remove_support_for_type_in_searches - body: >- - Types are no longer allowed in requests in 8.0, so we can remove support - forusing the `_type` field within a search request. - - Relates to #41059.Closes #68311. + area: Search + details: >- + Types are no longer allowed in requests in 8.0, so support for + the `_type` field within search requests has been removed. + impact: + If you include the `_type` field in search requests, you now need to remove it. diff --git a/docs/changelog/68606.yaml b/docs/changelog/68606.yaml index 0de02e2d6ea03..6d9a56f2eba72 100644 --- a/docs/changelog/68606.yaml +++ b/docs/changelog/68606.yaml @@ -1,7 +1,7 @@ pr: 68606 issues: [] area: SQL -type: UNKNOWN +type: enhancement summary: Add text formatting support for multivalue versions: - v8.0.0 diff --git a/docs/changelog/68648.yaml b/docs/changelog/68648.yaml deleted file mode 100644 index f7da9a38591a3..0000000000000 --- a/docs/changelog/68648.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 68648 -issues: - - 68100 -area: Infra/REST API -type: UNKNOWN -summary: Refactor usage of compatible version -versions: - - v8.0.0 diff --git a/docs/changelog/68754.yaml b/docs/changelog/68754.yaml deleted file mode 100644 index 62bb5f87045cc..0000000000000 --- a/docs/changelog/68754.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 68754 -issues: [] -area: EQL, SQL -type: UNKNOWN -summary: Improve exact match detection in `StringPattern` -versions: - - v8.0.0 diff --git a/docs/changelog/68808.yaml b/docs/changelog/68808.yaml deleted file mode 100644 index e73165d8b0593..0000000000000 --- a/docs/changelog/68808.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 68808 -issues: [] -area: Infra/REST API -type: UNKNOWN -summary: Refactor `ObjectParser` and `CompatibleObjectParser` to support REST - Compatible API -versions: - - v8.0.0 diff --git a/docs/changelog/68966.yaml b/docs/changelog/68966.yaml index 7ec1fdbb76631..5b4be2d3d3a81 100644 --- a/docs/changelog/68966.yaml +++ b/docs/changelog/68966.yaml @@ -1,7 +1,7 @@ pr: 68966 issues: [] area: SQL -type: UNKNOWN +type: enhancement summary: Add xDBC and CLI support. QA CSV specs versions: - v8.0.0 diff --git a/docs/changelog/69029.yaml b/docs/changelog/69029.yaml deleted file mode 100644 index aac93fed490a9..0000000000000 --- a/docs/changelog/69029.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 69029 -issues: - - 69016 - - 67325 -area: Highlighting -type: UNKNOWN -summary: Update versions after backport of `max_analyzed_offset` -versions: - - v8.0.0 diff --git a/docs/changelog/69131.yaml b/docs/changelog/69131.yaml index 8076720c6da23..59474e51dd932 100644 --- a/docs/changelog/69131.yaml +++ b/docs/changelog/69131.yaml @@ -2,7 +2,7 @@ pr: 69131 issues: - 54160 area: Infra/REST API -type: UNKNOWN -summary: "[REST Compatible API] Typed endpoints for Index and Get APIs" +type: enhancement +summary: Typed endpoints for Index and Get APIs versions: - v8.0.0 diff --git a/docs/changelog/69149.yaml b/docs/changelog/69149.yaml index b60964d0c5a66..4698c0c5e7f01 100644 --- a/docs/changelog/69149.yaml +++ b/docs/changelog/69149.yaml @@ -9,12 +9,13 @@ versions: breaking: notable: false title: Remove support for `JAVA_HOME` - anchor: remove_support_for_java_home_ - body: >- - This commit removes support for JAVA_HOME. As we previously deprecated usage - of JAVA_HOME to override the path for the JDK, this commit follows up by - removing support for JAVA_HOME. Note that we do not treat JAVA_HOME being - set as a failure, as it is perfectly reasonable for a user to have JAVA_HOME - configured at the system level. - - Closes #55820 + anchor: remove_support_for_java_home + area: Packaging + details: >- + {es} no longer supports the `JAVA_HOME` environment variable. Note + that {es} does not treat `JAVA_HOME` being set as a failure, as it is + perfectly reasonable to have this configured at a system level. + impact: >- + If you rely on the `JAVA_HOME` environment variable to configure the + JDK for {es}, you now need to use the `ES_JAVA_HOME` environment + variable instead. diff --git a/docs/changelog/69606.yaml b/docs/changelog/69606.yaml index b80e4374d67a1..8ccaf00b366f9 100644 --- a/docs/changelog/69606.yaml +++ b/docs/changelog/69606.yaml @@ -1,7 +1,7 @@ pr: 69606 issues: [] area: Infra/REST API -type: UNKNOWN -summary: "[Rest Compatible Api] update and delete by query using size field" +type: enhancement +summary: "Update and delete by query using size field" versions: - v8.0.0 diff --git a/docs/changelog/69710.yaml b/docs/changelog/69710.yaml deleted file mode 100644 index 651532373697a..0000000000000 --- a/docs/changelog/69710.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 69710 -issues: - - 69377 -area: Unknown -type: UNKNOWN -summary: Update skip after backport -versions: - - v8.0.0 diff --git a/docs/changelog/69774.yaml b/docs/changelog/69774.yaml index d92ab5d808d42..9ded9795856f3 100644 --- a/docs/changelog/69774.yaml +++ b/docs/changelog/69774.yaml @@ -2,7 +2,7 @@ pr: 69774 issues: - 51816 area: Infra/REST API -type: UNKNOWN +type: enhancement summary: Allow for field declaration for future compatible versions versions: - v8.0.0 diff --git a/docs/changelog/70243.yaml b/docs/changelog/70243.yaml index f49bfcbb9a2fe..c583858afe417 100644 --- a/docs/changelog/70243.yaml +++ b/docs/changelog/70243.yaml @@ -1,7 +1,7 @@ pr: 70243 issues: [] area: Infra/REST API -type: UNKNOWN +type: enhancement summary: "Parsing: Validate that fields are not registered twice" versions: - v8.0.0 From 21c44b2ceabee1c9ae2c6ee8ac6e27144072eb4b Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 31 Mar 2021 15:50:03 +0100 Subject: [PATCH 04/22] Leave only a test set of yaml files --- .../src/main/resources/changelog-schema.json | 2 + docs/changelog/27600.yaml | 8 -- docs/changelog/33511.yaml | 36 ------- docs/changelog/37907.yaml | 8 -- docs/changelog/38413.yaml | 7 -- docs/changelog/39328.yaml | 12 --- docs/changelog/39346.yaml | 8 -- docs/changelog/39450.yaml | 15 --- docs/changelog/39593.yaml | 24 ----- docs/changelog/39747.yaml | 7 -- docs/changelog/40033.yaml | 14 --- docs/changelog/40379.yaml | 8 -- docs/changelog/40419.yaml | 21 ---- docs/changelog/40496.yaml | 17 ---- docs/changelog/40878.yaml | 16 --- docs/changelog/41007.yaml | 18 ---- docs/changelog/41011.yaml | 39 -------- docs/changelog/41124.yaml | 9 -- docs/changelog/41347.yaml | 7 -- docs/changelog/41492.yaml | 7 -- docs/changelog/41502.yaml | 22 ----- docs/changelog/41560.yaml | 17 ---- docs/changelog/41620.yaml | 8 -- docs/changelog/41640.yaml | 12 --- docs/changelog/41676.yaml | 12 --- docs/changelog/41808.yaml | 9 -- docs/changelog/41972.yaml | 8 -- docs/changelog/42090.yaml | 98 ------------------- docs/changelog/42112.yaml | 16 --- docs/changelog/42155.yaml | 7 -- docs/changelog/42174.yaml | 14 --- docs/changelog/42179.yaml | 8 -- docs/changelog/42198.yaml | 13 --- docs/changelog/42202.yaml | 12 --- docs/changelog/42253.yaml | 10 -- docs/changelog/42288.yaml | 8 -- docs/changelog/42333.yaml | 18 ---- docs/changelog/42359.yaml | 15 --- docs/changelog/42381.yaml | 21 ---- docs/changelog/42428.yaml | 23 ----- docs/changelog/42471.yaml | 15 --- docs/changelog/42489.yaml | 18 ---- docs/changelog/42538.yaml | 12 --- docs/changelog/42654.yaml | 17 ---- docs/changelog/42729.yaml | 16 --- docs/changelog/42770.yaml | 13 --- docs/changelog/42809.yaml | 18 ---- docs/changelog/42815.yaml | 16 --- docs/changelog/42816.yaml | 14 --- docs/changelog/42817.yaml | 14 --- docs/changelog/43099.yaml | 7 -- docs/changelog/43108.yaml | 14 --- docs/changelog/43164.yaml | 7 -- docs/changelog/43236.yaml | 14 --- docs/changelog/43344.yaml | 7 -- docs/changelog/43373.yaml | 22 ----- docs/changelog/43382.yaml | 8 -- docs/changelog/43430.yaml | 7 -- docs/changelog/43536.yaml | 7 -- docs/changelog/43558.yaml | 8 -- docs/changelog/43559.yaml | 7 -- docs/changelog/43686.yaml | 16 --- docs/changelog/43781.yaml | 10 -- docs/changelog/44090.yaml | 23 ----- docs/changelog/44133.yaml | 8 -- docs/changelog/44264.yaml | 29 ------ docs/changelog/44642.yaml | 7 -- docs/changelog/44752.yaml | 20 ---- docs/changelog/44761.yaml | 24 ----- docs/changelog/44894.yaml | 17 ---- docs/changelog/44902.yaml | 8 -- docs/changelog/44905.yaml | 8 -- docs/changelog/44929.yaml | 25 ----- docs/changelog/44982.yaml | 15 --- docs/changelog/45497.yaml | 9 -- docs/changelog/45586.yaml | 8 -- docs/changelog/45675.yaml | 12 --- docs/changelog/45735.yaml | 24 ----- docs/changelog/45878.yaml | 8 -- docs/changelog/45892.yaml | 17 ---- docs/changelog/45905.yaml | 17 ---- docs/changelog/45940.yaml | 17 ---- docs/changelog/45945.yaml | 21 ---- docs/changelog/45947.yaml | 18 ---- docs/changelog/46055.yaml | 8 -- docs/changelog/46147.yaml | 22 ----- docs/changelog/46327.yaml | 9 -- docs/changelog/46603.yaml | 8 -- docs/changelog/46702.yaml | 8 -- docs/changelog/46749.yaml | 7 -- docs/changelog/46967.yaml | 9 -- docs/changelog/46983.yaml | 17 ---- docs/changelog/47105.yaml | 8 -- docs/changelog/47203.yaml | 17 ---- docs/changelog/47207.yaml | 17 ---- docs/changelog/47364.yaml | 20 ---- docs/changelog/47650.yaml | 7 -- docs/changelog/47651.yaml | 7 -- docs/changelog/47717.yaml | 17 ---- docs/changelog/48170.yaml | 18 ---- docs/changelog/48443.yaml | 19 ---- docs/changelog/48471.yaml | 19 ---- docs/changelog/48632.yaml | 17 ---- docs/changelog/48725.yaml | 14 --- docs/changelog/48781.yaml | 15 --- docs/changelog/48927.yaml | 8 -- docs/changelog/48949.yaml | 7 -- docs/changelog/49079.yaml | 7 -- docs/changelog/49460.yaml | 17 ---- docs/changelog/49728.yaml | 8 -- docs/changelog/50067.yaml | 8 -- docs/changelog/50277.yaml | 9 -- docs/changelog/50359.yaml | 8 -- docs/changelog/50415.yaml | 7 -- docs/changelog/50594.yaml | 24 ----- docs/changelog/50739.yaml | 21 ---- docs/changelog/50844.yaml | 20 ---- docs/changelog/50882.yaml | 20 ---- docs/changelog/51189.yaml | 8 -- docs/changelog/51195.yaml | 17 ---- docs/changelog/51219.yaml | 16 --- docs/changelog/51417.yaml | 8 -- docs/changelog/51421.yaml | 8 -- docs/changelog/51697.yaml | 20 ---- docs/changelog/51704.yaml | 8 -- docs/changelog/51716.yaml | 18 ---- docs/changelog/52208.yaml | 9 -- docs/changelog/52257.yaml | 15 --- docs/changelog/52280.yaml | 21 ---- docs/changelog/52987.yaml | 7 -- docs/changelog/53314.yaml | 20 ---- docs/changelog/53715.yaml | 8 -- docs/changelog/53785.yaml | 8 -- docs/changelog/53845.yaml | 19 ---- docs/changelog/54175.yaml | 18 ---- docs/changelog/54381.yaml | 18 ---- docs/changelog/54753.yaml | 8 -- docs/changelog/54904.yaml | 8 -- docs/changelog/54953.yaml | 8 -- docs/changelog/55078.yaml | 12 --- docs/changelog/55100.yaml | 14 --- docs/changelog/55109.yaml | 8 -- docs/changelog/55181.yaml | 8 -- docs/changelog/55399.yaml | 8 -- docs/changelog/55489.yaml | 19 ---- docs/changelog/55544.yaml | 7 -- docs/changelog/55622.yaml | 15 --- docs/changelog/55673.yaml | 19 ---- docs/changelog/55736.yaml | 8 -- docs/changelog/56149.yaml | 8 -- docs/changelog/56211.yaml | 19 ---- docs/changelog/57200.yaml | 7 -- docs/changelog/57591.yaml | 18 ---- docs/changelog/57594.yaml | 7 -- docs/changelog/58220.yaml | 8 -- docs/changelog/58387.yaml | 7 -- docs/changelog/58732.yaml | 8 -- docs/changelog/58779.yaml | 8 -- docs/changelog/59262.yaml | 17 ---- docs/changelog/59265.yaml | 25 ----- docs/changelog/59336.yaml | 7 -- docs/changelog/59349.yaml | 8 -- docs/changelog/59475.yaml | 7 -- docs/changelog/59501.yaml | 9 -- docs/changelog/59507.yaml | 20 ---- docs/changelog/59698.yaml | 16 --- docs/changelog/59870.yaml | 9 -- docs/changelog/59949.yaml | 7 -- docs/changelog/60044.yaml | 7 -- docs/changelog/60158.yaml | 8 -- docs/changelog/60351.yaml | 8 -- docs/changelog/60505.yaml | 7 -- docs/changelog/60873.yaml | 19 ---- docs/changelog/61043.yaml | 15 --- docs/changelog/61259.yaml | 8 -- docs/changelog/61427.yaml | 17 ---- docs/changelog/61428.yaml | 9 -- docs/changelog/61508.yaml | 7 -- docs/changelog/61594.yaml | 7 -- docs/changelog/61825.yaml | 7 -- docs/changelog/62156.yaml | 7 -- docs/changelog/62309.yaml | 17 ---- docs/changelog/62468.yaml | 7 -- docs/changelog/62639.yaml | 8 -- docs/changelog/62646.yaml | 7 -- docs/changelog/63038.yaml | 7 -- docs/changelog/63384.yaml | 8 -- docs/changelog/63660.yaml | 8 -- docs/changelog/63692.yaml | 21 ---- docs/changelog/64252.yaml | 12 --- docs/changelog/64327.yaml | 8 -- docs/changelog/64406.yaml | 8 -- docs/changelog/64423.yaml | 8 -- docs/changelog/64472.yaml | 21 ---- docs/changelog/64481.yaml | 8 -- docs/changelog/64650.yaml | 8 -- docs/changelog/64708.yaml | 9 -- docs/changelog/64721.yaml | 9 -- docs/changelog/64732.yaml | 18 ---- docs/changelog/64794.yaml | 8 -- docs/changelog/64867.yaml | 20 ---- docs/changelog/64868.yaml | 20 ---- docs/changelog/64869.yaml | 8 -- docs/changelog/65255.yaml | 7 -- docs/changelog/65259.yaml | 7 -- docs/changelog/65500.yaml | 8 -- docs/changelog/65590.yaml | 9 -- docs/changelog/65753.yaml | 19 ---- docs/changelog/66297.yaml | 8 -- docs/changelog/66671.yaml | 8 -- docs/changelog/67154.yaml | 7 -- docs/changelog/67158.yaml | 8 -- docs/changelog/67216.yaml | 8 -- docs/changelog/67374.yaml | 9 -- docs/changelog/67409.yaml | 7 -- docs/changelog/67552.yaml | 8 -- docs/changelog/67672.yaml | 7 -- docs/changelog/67677.yaml | 9 -- docs/changelog/68176.yaml | 8 -- docs/changelog/68564.yaml | 2 +- docs/changelog/69149.yaml | 4 +- docs/changelog/69512.yaml | 7 -- docs/changelog/69901.yaml | 7 -- docs/changelog/70209.yaml | 9 -- 224 files changed, 5 insertions(+), 2841 deletions(-) delete mode 100644 docs/changelog/27600.yaml delete mode 100644 docs/changelog/33511.yaml delete mode 100644 docs/changelog/37907.yaml delete mode 100644 docs/changelog/38413.yaml delete mode 100644 docs/changelog/39328.yaml delete mode 100644 docs/changelog/39346.yaml delete mode 100644 docs/changelog/39450.yaml delete mode 100644 docs/changelog/39593.yaml delete mode 100644 docs/changelog/39747.yaml delete mode 100644 docs/changelog/40033.yaml delete mode 100644 docs/changelog/40379.yaml delete mode 100644 docs/changelog/40419.yaml delete mode 100644 docs/changelog/40496.yaml delete mode 100644 docs/changelog/40878.yaml delete mode 100644 docs/changelog/41007.yaml delete mode 100644 docs/changelog/41011.yaml delete mode 100644 docs/changelog/41124.yaml delete mode 100644 docs/changelog/41347.yaml delete mode 100644 docs/changelog/41492.yaml delete mode 100644 docs/changelog/41502.yaml delete mode 100644 docs/changelog/41560.yaml delete mode 100644 docs/changelog/41620.yaml delete mode 100644 docs/changelog/41640.yaml delete mode 100644 docs/changelog/41676.yaml delete mode 100644 docs/changelog/41808.yaml delete mode 100644 docs/changelog/41972.yaml delete mode 100644 docs/changelog/42090.yaml delete mode 100644 docs/changelog/42112.yaml delete mode 100644 docs/changelog/42155.yaml delete mode 100644 docs/changelog/42174.yaml delete mode 100644 docs/changelog/42179.yaml delete mode 100644 docs/changelog/42198.yaml delete mode 100644 docs/changelog/42202.yaml delete mode 100644 docs/changelog/42253.yaml delete mode 100644 docs/changelog/42288.yaml delete mode 100644 docs/changelog/42333.yaml delete mode 100644 docs/changelog/42359.yaml delete mode 100644 docs/changelog/42381.yaml delete mode 100644 docs/changelog/42428.yaml delete mode 100644 docs/changelog/42471.yaml delete mode 100644 docs/changelog/42489.yaml delete mode 100644 docs/changelog/42538.yaml delete mode 100644 docs/changelog/42654.yaml delete mode 100644 docs/changelog/42729.yaml delete mode 100644 docs/changelog/42770.yaml delete mode 100644 docs/changelog/42809.yaml delete mode 100644 docs/changelog/42815.yaml delete mode 100644 docs/changelog/42816.yaml delete mode 100644 docs/changelog/42817.yaml delete mode 100644 docs/changelog/43099.yaml delete mode 100644 docs/changelog/43108.yaml delete mode 100644 docs/changelog/43164.yaml delete mode 100644 docs/changelog/43236.yaml delete mode 100644 docs/changelog/43344.yaml delete mode 100644 docs/changelog/43373.yaml delete mode 100644 docs/changelog/43382.yaml delete mode 100644 docs/changelog/43430.yaml delete mode 100644 docs/changelog/43536.yaml delete mode 100644 docs/changelog/43558.yaml delete mode 100644 docs/changelog/43559.yaml delete mode 100644 docs/changelog/43686.yaml delete mode 100644 docs/changelog/43781.yaml delete mode 100644 docs/changelog/44090.yaml delete mode 100644 docs/changelog/44133.yaml delete mode 100644 docs/changelog/44264.yaml delete mode 100644 docs/changelog/44642.yaml delete mode 100644 docs/changelog/44752.yaml delete mode 100644 docs/changelog/44761.yaml delete mode 100644 docs/changelog/44894.yaml delete mode 100644 docs/changelog/44902.yaml delete mode 100644 docs/changelog/44905.yaml delete mode 100644 docs/changelog/44929.yaml delete mode 100644 docs/changelog/44982.yaml delete mode 100644 docs/changelog/45497.yaml delete mode 100644 docs/changelog/45586.yaml delete mode 100644 docs/changelog/45675.yaml delete mode 100644 docs/changelog/45735.yaml delete mode 100644 docs/changelog/45878.yaml delete mode 100644 docs/changelog/45892.yaml delete mode 100644 docs/changelog/45905.yaml delete mode 100644 docs/changelog/45940.yaml delete mode 100644 docs/changelog/45945.yaml delete mode 100644 docs/changelog/45947.yaml delete mode 100644 docs/changelog/46055.yaml delete mode 100644 docs/changelog/46147.yaml delete mode 100644 docs/changelog/46327.yaml delete mode 100644 docs/changelog/46603.yaml delete mode 100644 docs/changelog/46702.yaml delete mode 100644 docs/changelog/46749.yaml delete mode 100644 docs/changelog/46967.yaml delete mode 100644 docs/changelog/46983.yaml delete mode 100644 docs/changelog/47105.yaml delete mode 100644 docs/changelog/47203.yaml delete mode 100644 docs/changelog/47207.yaml delete mode 100644 docs/changelog/47364.yaml delete mode 100644 docs/changelog/47650.yaml delete mode 100644 docs/changelog/47651.yaml delete mode 100644 docs/changelog/47717.yaml delete mode 100644 docs/changelog/48170.yaml delete mode 100644 docs/changelog/48443.yaml delete mode 100644 docs/changelog/48471.yaml delete mode 100644 docs/changelog/48632.yaml delete mode 100644 docs/changelog/48725.yaml delete mode 100644 docs/changelog/48781.yaml delete mode 100644 docs/changelog/48927.yaml delete mode 100644 docs/changelog/48949.yaml delete mode 100644 docs/changelog/49079.yaml delete mode 100644 docs/changelog/49460.yaml delete mode 100644 docs/changelog/49728.yaml delete mode 100644 docs/changelog/50067.yaml delete mode 100644 docs/changelog/50277.yaml delete mode 100644 docs/changelog/50359.yaml delete mode 100644 docs/changelog/50415.yaml delete mode 100644 docs/changelog/50594.yaml delete mode 100644 docs/changelog/50739.yaml delete mode 100644 docs/changelog/50844.yaml delete mode 100644 docs/changelog/50882.yaml delete mode 100644 docs/changelog/51189.yaml delete mode 100644 docs/changelog/51195.yaml delete mode 100644 docs/changelog/51219.yaml delete mode 100644 docs/changelog/51417.yaml delete mode 100644 docs/changelog/51421.yaml delete mode 100644 docs/changelog/51697.yaml delete mode 100644 docs/changelog/51704.yaml delete mode 100644 docs/changelog/51716.yaml delete mode 100644 docs/changelog/52208.yaml delete mode 100644 docs/changelog/52257.yaml delete mode 100644 docs/changelog/52280.yaml delete mode 100644 docs/changelog/52987.yaml delete mode 100644 docs/changelog/53314.yaml delete mode 100644 docs/changelog/53715.yaml delete mode 100644 docs/changelog/53785.yaml delete mode 100644 docs/changelog/53845.yaml delete mode 100644 docs/changelog/54175.yaml delete mode 100644 docs/changelog/54381.yaml delete mode 100644 docs/changelog/54753.yaml delete mode 100644 docs/changelog/54904.yaml delete mode 100644 docs/changelog/54953.yaml delete mode 100644 docs/changelog/55078.yaml delete mode 100644 docs/changelog/55100.yaml delete mode 100644 docs/changelog/55109.yaml delete mode 100644 docs/changelog/55181.yaml delete mode 100644 docs/changelog/55399.yaml delete mode 100644 docs/changelog/55489.yaml delete mode 100644 docs/changelog/55544.yaml delete mode 100644 docs/changelog/55622.yaml delete mode 100644 docs/changelog/55673.yaml delete mode 100644 docs/changelog/55736.yaml delete mode 100644 docs/changelog/56149.yaml delete mode 100644 docs/changelog/56211.yaml delete mode 100644 docs/changelog/57200.yaml delete mode 100644 docs/changelog/57591.yaml delete mode 100644 docs/changelog/57594.yaml delete mode 100644 docs/changelog/58220.yaml delete mode 100644 docs/changelog/58387.yaml delete mode 100644 docs/changelog/58732.yaml delete mode 100644 docs/changelog/58779.yaml delete mode 100644 docs/changelog/59262.yaml delete mode 100644 docs/changelog/59265.yaml delete mode 100644 docs/changelog/59336.yaml delete mode 100644 docs/changelog/59349.yaml delete mode 100644 docs/changelog/59475.yaml delete mode 100644 docs/changelog/59501.yaml delete mode 100644 docs/changelog/59507.yaml delete mode 100644 docs/changelog/59698.yaml delete mode 100644 docs/changelog/59870.yaml delete mode 100644 docs/changelog/59949.yaml delete mode 100644 docs/changelog/60044.yaml delete mode 100644 docs/changelog/60158.yaml delete mode 100644 docs/changelog/60351.yaml delete mode 100644 docs/changelog/60505.yaml delete mode 100644 docs/changelog/60873.yaml delete mode 100644 docs/changelog/61043.yaml delete mode 100644 docs/changelog/61259.yaml delete mode 100644 docs/changelog/61427.yaml delete mode 100644 docs/changelog/61428.yaml delete mode 100644 docs/changelog/61508.yaml delete mode 100644 docs/changelog/61594.yaml delete mode 100644 docs/changelog/61825.yaml delete mode 100644 docs/changelog/62156.yaml delete mode 100644 docs/changelog/62309.yaml delete mode 100644 docs/changelog/62468.yaml delete mode 100644 docs/changelog/62639.yaml delete mode 100644 docs/changelog/62646.yaml delete mode 100644 docs/changelog/63038.yaml delete mode 100644 docs/changelog/63384.yaml delete mode 100644 docs/changelog/63660.yaml delete mode 100644 docs/changelog/63692.yaml delete mode 100644 docs/changelog/64252.yaml delete mode 100644 docs/changelog/64327.yaml delete mode 100644 docs/changelog/64406.yaml delete mode 100644 docs/changelog/64423.yaml delete mode 100644 docs/changelog/64472.yaml delete mode 100644 docs/changelog/64481.yaml delete mode 100644 docs/changelog/64650.yaml delete mode 100644 docs/changelog/64708.yaml delete mode 100644 docs/changelog/64721.yaml delete mode 100644 docs/changelog/64732.yaml delete mode 100644 docs/changelog/64794.yaml delete mode 100644 docs/changelog/64867.yaml delete mode 100644 docs/changelog/64868.yaml delete mode 100644 docs/changelog/64869.yaml delete mode 100644 docs/changelog/65255.yaml delete mode 100644 docs/changelog/65259.yaml delete mode 100644 docs/changelog/65500.yaml delete mode 100644 docs/changelog/65590.yaml delete mode 100644 docs/changelog/65753.yaml delete mode 100644 docs/changelog/66297.yaml delete mode 100644 docs/changelog/66671.yaml delete mode 100644 docs/changelog/67154.yaml delete mode 100644 docs/changelog/67158.yaml delete mode 100644 docs/changelog/67216.yaml delete mode 100644 docs/changelog/67374.yaml delete mode 100644 docs/changelog/67409.yaml delete mode 100644 docs/changelog/67552.yaml delete mode 100644 docs/changelog/67672.yaml delete mode 100644 docs/changelog/67677.yaml delete mode 100644 docs/changelog/68176.yaml delete mode 100644 docs/changelog/69512.yaml delete mode 100644 docs/changelog/69901.yaml delete mode 100644 docs/changelog/70209.yaml diff --git a/buildSrc/src/main/resources/changelog-schema.json b/buildSrc/src/main/resources/changelog-schema.json index c4832401646b7..53d3f7423f253 100644 --- a/buildSrc/src/main/resources/changelog-schema.json +++ b/buildSrc/src/main/resources/changelog-schema.json @@ -36,6 +36,7 @@ "Infra/Core", "Infra/Logging", "Infra/Plugins", + "Infra/REST API", "Infra/Scripting", "Infra/Settings", "Machine Learning", @@ -187,6 +188,7 @@ "Machine learning", "Mappings", "Networking", + "Packaging", "Plugins", "Script cache", "Search Changes", diff --git a/docs/changelog/27600.yaml b/docs/changelog/27600.yaml deleted file mode 100644 index 3a1439645142b..0000000000000 --- a/docs/changelog/27600.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 27600 -issues: - - 27583 -area: Infra/Settings -type: enhancement -summary: Remove setting `index.optimize_auto_generated_id` -versions: - - v8.0.0 diff --git a/docs/changelog/33511.yaml b/docs/changelog/33511.yaml deleted file mode 100644 index bade2fa61c39c..0000000000000 --- a/docs/changelog/33511.yaml +++ /dev/null @@ -1,36 +0,0 @@ -pr: 33511 -issues: [] -area: Search -type: breaking, enhancement -summary: Make Fuzziness reject illegal values earlier -versions: - - v8.0.0 -breaking: - notable: false - title: Make Fuzziness reject illegal values earlier - anchor: make_fuzziness_reject_illegal_values_earlier - body: >- - The current java implementation of Fuzziness leaves a lot of room - forinitializing it with illegal values that either cause errors later when - thequeries reach the shards where they are executed or values that are - silentlyignored in favour of defaults. We should instead tighten the java - implementationof the class so that we only accept supported values. - Currently those arenumeric values representing the edit distances 0, 1 and - 2, optionally also asfloat or string, and the "AUTO" fuzziness, which can - come in a cusomizablevariant that allows specifying two value that define - the positions in a termwhere the AUTO option increases the allowed edit - distance. - - This change removes several redundant ways of object construction and - adds inputvalidation to the remaining ones. Java users should either - use one of thepredefined constants or use the static factory methods - `fromEdits(int)` or`fromString(String)` to create instances of the - class, while other ctors arehidden. This allows for instance control, - e.g. returning one of the constantswhen creating instances from an - integer value. - - Previously the class would accept any positive integer value and any - floatvalue, while in effect the maximum allowed edit distance was - capped at 2 inpractice. These values while throw an error now, as will - any other String valueother than "AUTO" that where previously accepted - but led to numeric exceptionswhen the query was executed. diff --git a/docs/changelog/37907.yaml b/docs/changelog/37907.yaml deleted file mode 100644 index b1dd580baadd5..0000000000000 --- a/docs/changelog/37907.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 37907 -issues: - - 37897 -area: Search -type: bug -summary: Handle total hits equal to `track_total_hits` -versions: - - v8.0.0 diff --git a/docs/changelog/38413.yaml b/docs/changelog/38413.yaml deleted file mode 100644 index 53eef5ad04cf7..0000000000000 --- a/docs/changelog/38413.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 38413 -issues: [] -area: Infra/REST API -type: enhancement -summary: Introduce stability description to the REST API specification -versions: - - v8.0.0 diff --git a/docs/changelog/39328.yaml b/docs/changelog/39328.yaml deleted file mode 100644 index 04d8002aeaf63..0000000000000 --- a/docs/changelog/39328.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 39328 -issues: [] -area: Aggregations -type: breaking -summary: Remove `MovingAverage` pipeline aggregation -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `MovingAverage` pipeline aggregation - anchor: remove_movingaverage_pipeline_aggregation - body: This was deprecated in 6.4.0 and for the entirety of 7.0. Removed in 8.0 :) diff --git a/docs/changelog/39346.yaml b/docs/changelog/39346.yaml deleted file mode 100644 index 9ae9014a7d49c..0000000000000 --- a/docs/changelog/39346.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 39346 -issues: - - 39073 -area: Snapshot/Restore -type: enhancement -summary: Unify blob store compress setting -versions: - - v8.0.0 diff --git a/docs/changelog/39450.yaml b/docs/changelog/39450.yaml deleted file mode 100644 index 30f17b77038a0..0000000000000 --- a/docs/changelog/39450.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 39450 -issues: [] -area: Aggregations -type: breaking -summary: Remove deprecated `_time` and `_term` sort orders -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated `_time` and `_term` sort orders - anchor: remove_deprecated_time_and_term_sort_orders - body: >- - Deprecated in 6.0, time to go :) - - This isn't really a bugfix so I feel like we missed the boat on 7.0? Just target 8.0? diff --git a/docs/changelog/39593.yaml b/docs/changelog/39593.yaml deleted file mode 100644 index 47cb19e8affac..0000000000000 --- a/docs/changelog/39593.yaml +++ /dev/null @@ -1,24 +0,0 @@ -pr: 39593 -issues: - - 39163 -area: Features/ILM+SLM -type: breaking, enhancement -summary: Add lower bound on `poll_interval` -versions: - - v8.0.0 -breaking: - notable: false - title: Add lower bound on `poll_interval` - anchor: add_lower_bound_on_poll_interval_ - body: >- - #39163 - - Add lower bound on poll_interval - - [source] - - ----$ curl -H "Content-Type: application/json" -X PUT -d '{ "persistent": { "indices.lifecycle.poll_interval": "1ms", "logger.org.elasticsearch.xpack.indexlifecycle": "TRACE" }}' localhost:9200/_cluster/settings - - {"error":{"root_cause":[{"type":"illegal_argument_exception","reason":"failed to parse value [1ms] for setting [indices.lifecycle.poll_interval], must be >= [1s]"}],"type":"illegal_argument_exception","reason":"failed to parse value [1ms] for setting [indices.lifecycle.poll_interval], must be >= [1s]"},"status":400} - - ---- diff --git a/docs/changelog/39747.yaml b/docs/changelog/39747.yaml deleted file mode 100644 index 21cba1a4845ff..0000000000000 --- a/docs/changelog/39747.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 39747 -issues: [] -area: Highlighting -type: bug -summary: Bug fix for `AnnotatedTextHighlighter` - port of 39525 -versions: - - v8.0.0 diff --git a/docs/changelog/40033.yaml b/docs/changelog/40033.yaml deleted file mode 100644 index 8b795e9fd0630..0000000000000 --- a/docs/changelog/40033.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 40033 -issues: [] -area: Snapshot/Restore -type: breaking, bug -summary: Blob Store compress default to true -versions: - - v8.0.0 -breaking: - notable: false - title: Blob Store compress default to true - anchor: blob_store_compress_default_to_true - body: Changed default of compress setting from false to true for blob - storerepositories. This aligns the code with documentation and also - seemslike the better default. diff --git a/docs/changelog/40379.yaml b/docs/changelog/40379.yaml deleted file mode 100644 index 65168315e58b4..0000000000000 --- a/docs/changelog/40379.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 40379 -issues: - - 40335 -area: Features/CAT APIs, Recovery -type: bug -summary: Fix cat recovery display of bytes fields -versions: - - v8.0.0 diff --git a/docs/changelog/40419.yaml b/docs/changelog/40419.yaml deleted file mode 100644 index 89c3eb9d0b646..0000000000000 --- a/docs/changelog/40419.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 40419 -issues: - - 37863 -area: Search -type: breaking -summary: Make remote cluster resolution stricter -versions: - - v8.0.0 -breaking: - notable: false - title: Make remote cluster resolution stricter - anchor: make_remote_cluster_resolution_stricter - body: >- - Remote cluster resolution is currently lenient, to support localindices that - may contain `:` in their name. From 8.0 on, there can nolonger be indices in - the cluster that contain `:` in their name, hencewe can make remote cluster - resolution stricter. Instead of treatingas local any index expression - containing a `:` whenever there is no correspondingmatching remote cluster - registered, we now throw a`NoSuchRemoteClusterException`. - - Closes #37863 diff --git a/docs/changelog/40496.yaml b/docs/changelog/40496.yaml deleted file mode 100644 index 21559bc0eedf7..0000000000000 --- a/docs/changelog/40496.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 40496 -issues: [] -area: Security -type: breaking, enhancement -summary: Remove obsolete security settings -versions: - - v8.0.0 -breaking: - notable: false - title: Remove obsolete security settings - anchor: remove_obsolete_security_settings - body: >- - Removes the deprecated `accept_default_password` setting.This setting become - redundant when default passwords were removedfrom 6.0, but the setting was - kept for BWC. - - Removes native role store cache settings.These have been unused since 5.2 but were kept for BWC. diff --git a/docs/changelog/40878.yaml b/docs/changelog/40878.yaml deleted file mode 100644 index 999b2b5d5d390..0000000000000 --- a/docs/changelog/40878.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 40878 -issues: [] -area: Infra/Circuit Breakers -type: breaking, enhancement -summary: Fixed synchronizing inflight breaker with internal variable -versions: - - v8.0.0 -breaking: - notable: false - title: Fixed synchronizing inflight breaker with internal variable - anchor: fixed_synchronizing_inflight_breaker_with_internal_variable - body: Tested http://localhost:9200/_nodes/stats/breaker and found out that the in - flight requests are divided with underscores.This is wrong some versions - already.This is a replacement of pull request - https://github.com/elastic/elasticsearch/pull/40755 and corrects the printed - value in elasticsearch. diff --git a/docs/changelog/41007.yaml b/docs/changelog/41007.yaml deleted file mode 100644 index 5e92e91f78972..0000000000000 --- a/docs/changelog/41007.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 41007 -issues: - - 40303 -area: Reindex -type: breaking, feature -summary: Reindex from Remote encoding -versions: - - v8.0.0 -breaking: - notable: false - title: Reindex from Remote encoding - anchor: reindex_from_remote_encoding - body: >- - Removed the leniency when encoding remote reindex search requests thatwas - introduced in 7.x. All index-names are now encoded before being sentto the - remote host. - - Follow-up to #40303 diff --git a/docs/changelog/41011.yaml b/docs/changelog/41011.yaml deleted file mode 100644 index 6afb5a4a2c1af..0000000000000 --- a/docs/changelog/41011.yaml +++ /dev/null @@ -1,39 +0,0 @@ -pr: 41011 -issues: - - 39841 -area: Search -type: breaking -summary: Parse empty first line in msearch request body as action metadata -versions: - - v8.0.0 -breaking: - notable: false - title: Parse empty first line in msearch request body as action metadata - anchor: parse_empty_first_line_in_msearch_request_body_as_action_metadata - body: >- - It looks like when parsing the msearch request body, we allow for the first - line to be empty, yet that causes some different treatment for the first - line that ends up requiring the action metadata line, while all other lines - don't as they can be just empty. - - With this change we properly accept the following which we would otherwise reject due to the first line being empty: - - [source] - - ---- - - { "query": {"match_all": {}}} - - { "query": {"match_all": {}}}---- - - but we stop accepting the following (note the empty line before the first action metadata line: - - [source] - - ---- - - {}{ "query": {"match_all": {}}} - - { "query": {"match_all": {}}}---- - - Relates to #39841 diff --git a/docs/changelog/41124.yaml b/docs/changelog/41124.yaml deleted file mode 100644 index 9d0971dc38b6e..0000000000000 --- a/docs/changelog/41124.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 41124 -issues: - - 41090 - - 41091 -area: Machine Learning -type: bug -summary: Checking if p-tasks metadata is null before updating state -versions: - - v8.0.0 diff --git a/docs/changelog/41347.yaml b/docs/changelog/41347.yaml deleted file mode 100644 index 2151e0af0bc14..0000000000000 --- a/docs/changelog/41347.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 41347 -issues: [] -area: Search -type: enhancement -summary: Make 0 as invalid value for `min_children` in `has_child` query -versions: - - v8.0.0 diff --git a/docs/changelog/41492.yaml b/docs/changelog/41492.yaml deleted file mode 100644 index 2a6735c979eb9..0000000000000 --- a/docs/changelog/41492.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 41492 -issues: [] -area: Infra/REST API -type: bug -summary: "Fix: added missing skip" -versions: - - v8.0.0 diff --git a/docs/changelog/41502.yaml b/docs/changelog/41502.yaml deleted file mode 100644 index 71f0eac7093ca..0000000000000 --- a/docs/changelog/41502.yaml +++ /dev/null @@ -1,22 +0,0 @@ -pr: 41502 -issues: - - 39845 - - 35928 -area: Rollup -type: breaking, enhancement -summary: "`RollupStart` endpoint should return OK if job already started" -versions: - - v8.0.0 -breaking: - notable: false - title: "`RollupStart` endpoint should return OK if job already started" - anchor: _rollupstart_endpoint_should_return_ok_if_job_already_started - body: >- - If a job is started or indexing, RollupStart should always return a success - (200 OK) response since the job is, in fact, started - - This also removes some no-longer-needed serialization version checking on stop job (only needed for 6.x and 7.x) - - I'm not sure if this should be backported to 7.x. It's technically a breaking change, but also one that is unlikely to be noticed. It would only break someone if they were relying on the second invocation of the API to throw the exception so they could do something else. Thoughts? I also don't think this is critical, so if this is 8.0+ only that seems fine too. - - Closes https://github.com/elastic/elasticsearch/issues/39845 and https://github.com/elastic/elasticsearch/issues/35928 diff --git a/docs/changelog/41560.yaml b/docs/changelog/41560.yaml deleted file mode 100644 index 025437fb96f52..0000000000000 --- a/docs/changelog/41560.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 41560 -issues: - - 41164 -area: Analysis -type: breaking -summary: Cleanup versioned deprecations in analysis -versions: - - v8.0.0 -breaking: - notable: false - title: Cleanup versioned deprecations in analysis - anchor: cleanup_versioned_deprecations_in_analysis - body: >- - This commit removes versioned logic in analyzer creation that is nolonger - relevant for 8.0. - - relates #41164 diff --git a/docs/changelog/41620.yaml b/docs/changelog/41620.yaml deleted file mode 100644 index 2822330d84d80..0000000000000 --- a/docs/changelog/41620.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 41620 -issues: - - 41478 -area: Packaging -type: bug -summary: Suppress illegal access in plugin install -versions: - - v8.0.0 diff --git a/docs/changelog/41640.yaml b/docs/changelog/41640.yaml deleted file mode 100644 index fa6b2d6514fa4..0000000000000 --- a/docs/changelog/41640.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 41640 -issues: [] -area: Search -type: breaking -summary: Removes typed endpoint from search and related APIs -versions: - - v8.0.0 -breaking: - notable: false - title: Removes typed endpoint from search and related APIs - anchor: removes_typed_endpoint_from_search_and_related_apis - body: Please supply some text here diff --git a/docs/changelog/41676.yaml b/docs/changelog/41676.yaml deleted file mode 100644 index d233a57e7566c..0000000000000 --- a/docs/changelog/41676.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 41676 -issues: [] -area: Mapping -type: breaking -summary: Removes typed URLs from mapping APIs -versions: - - v8.0.0 -breaking: - notable: false - title: Removes typed URLs from mapping APIs - anchor: removes_typed_urls_from_mapping_apis - body: Please supply some text here diff --git a/docs/changelog/41808.yaml b/docs/changelog/41808.yaml deleted file mode 100644 index 5ef442feecd62..0000000000000 --- a/docs/changelog/41808.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 41808 -issues: - - 41385 - - 38646 -area: TLS -type: enhancement -summary: Update TLS ciphers and protocols for JDK 11 -versions: - - v8.0.0 diff --git a/docs/changelog/41972.yaml b/docs/changelog/41972.yaml deleted file mode 100644 index 8d47164dc43f5..0000000000000 --- a/docs/changelog/41972.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 41972 -issues: - - 41970 -area: Aggregations -type: bug -summary: Throw exception if legacy interval cannot be parsed in `DateIntervalWrapper` -versions: - - v8.0.0 diff --git a/docs/changelog/42090.yaml b/docs/changelog/42090.yaml deleted file mode 100644 index 508ef6c125c05..0000000000000 --- a/docs/changelog/42090.yaml +++ /dev/null @@ -1,98 +0,0 @@ -pr: 42090 -issues: - - 41210 -area: Snapshot/Restore -type: breaking, enhancement -summary: Get snapshots support for multiple repositories -versions: - - v8.0.0 -breaking: - notable: false - title: Get snapshots support for multiple repositories - anchor: get_snapshots_support_for_multiple_repositories - body: >- - ## DescriptionThis commit adds multiple repositories support to get - snapshots request.If some repository throws an exception this method does - not fail fast instead, it returns results for all repositories.This PR is - opened in favour of https://github.com/elastic/elasticsearch/pull/41799, - because we decided to change the response format in a non-BwC manner. It - makes sense to read discussion of the aforementioned PR.This is the - continuation of work done here - https://github.com/elastic/elasticsearch/pull/15151. - - ### _snapshot APINow the following requests are supported:[source] - - ----GET /_snapshot/[_all | * | repo* | repo1,repo2]/[_all | * | snap* | snap1,snap2]----This commit breaks BwC of response format for this request, that's why this PR is not backported to 7.x. For the response format see examples sections. - - ### _cat/snapshots APICat snapshot API also supports multiple repositories now.[source] - - ----GET /_cat/snapshots/[_all | * | repo* | repo1,repo2]----In the table returned new column named "repository" is added. If some repo fails with an exception, this method just reports that some repos have failed. See examples section.[source] - - ----GET /_cat/snapshots----is also supported and will return all snapshots for all repositories.Interestingly enough, the previous implementation also was registering `/_cat/snapshots` filter but a request to this endpoint always resulted in[source] - - ----{ "error": { "root_cause": [ { "type": "action_request_validation_exception", "reason": "Validation Failed: 1: repository is missing;" } ], "type": "action_request_validation_exception", "reason": "Validation Failed: 1: repository is missing;" }, "status": 400}---- - - ## ImplementationTechnically, `TransportGetSnapshotsAction` calls `TransportGetRepositoriesAction` which resolves repo names and wildcards in request to concrete repository names. After that, we submit tasks in parallel for all returned repositories and are using the already implemented algorithm to get matching snapshots in the repositories.In terms of the transport level protocol, 2 classes are changed:* `GetSnapshotsRequest` now accepts the list of repository names (including wildcards) instead of single repo name.* `GetSnapshotsResponse` is changed in non-BwC manner. - - In terms of REST protocol, 2 classes are changed:* `SnapshotRequestsConverters.getSnapshots` now can understand the list of repository names in `GetSnapshotRequest` and adds it as comma separated list to the request path.* `RestGetSnapshotsAction` can now parse the comma-separated list of the repo names.* `GetSnapshotsResponse` XContent serialization is completely changed. - - `RestSnapshotAction` which is responsible for handling cat API for the snapshots is extended with repository field as well. - - ## Testing* `SharedClusterSnapshotRestoreIT.testGetSnapshotsMultipleRepos` tests that multiple repositories and wildcard work fine on transport level.* `SnapshotRequestConvertersTests.getSnapshots` tests that high-level REST client correctly sends the request when multiple repositories are used in the request.* `SnapshotIT.testGetSnapshots` tests getting 2 snapshots from 2 different repositories using high-level REST client.* Some BwC tests, because we need compatibility between 7.latest and 8 (TBD) - - ## DocumentationSeems that it makes sense to make adjustments to the following documentation pages:* cat-snapshots* modules-snapshots - - Both of them should talk about the ability to specify multiple repositories when querying the snapshots (TBD). - - Since it's breaking change also breaking changes doc should be extended (TBD). - - ## Examples### Working with `GetSnapshotsResponse`Consider you have response.First of all, you can check if there are any failures `response.isFailed()`.If you were using wildcard/regex for repository names, you can use `response.getRepositories` to get the set of repositories.If you know particular repository name, you can just do `response.getSnapshots(repoName)` and it will return the list of `SnapshotInfo` for the repository or it throws `ElasticsearchException`. So all methods that previously called `response.getSnapshots()` can now achieve the same behaviour by just passing the `repoName`.Finally, you can get a map of successful and failed responses using `getSuccessfulResponses` and `getFailedResponses`. - - ### _snapshot APIConsider you have 2 repositories:[source] - - ----PUT _snapshot/repo1PUT _snapshot/repo2---- - - And you have one snapshot in each repository:[source] - - ----PUT _snapshot/repo1/snap1PUT _snapshot/repo2/snap2---- - - Now the following commands[source] - - ----GET _snapshot/[* | _all | repo*]/[* | _all | snap*]---- - - will give you the same output[source] - - ----{ "responses": [ { "repository": "repo2", "snapshots": [ { "snapshot": "snap2", "uuid": "XgGZx_QjRc6J5YkbbDWsdQ", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:02:02.695Z", "start_time_in_millis": 1557507722695, "end_time": "2019-05-10T17:02:02.729Z", "end_time_in_millis": 1557507722729, "duration_in_millis": 34, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] }, { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] } ]}----Responses are currently not sorted by repository name. However, SnapshotInfos are still sorted by startDate and then by snapshotId. - - The following request[source] - - ----GET _snapshot/[* | _all | repo*]/snap1----results in[source] - - ----{ "responses": [ { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] }, { "repository": "repo2", "error": { "root_cause": [ { "type": "snapshot_missing_exception", "reason": "[repo2:snap1] is missing" } ], "type": "snapshot_missing_exception", "reason": "[repo2:snap1] is missing" } } ]}----because snap1 exists in repo1, but does not exist in repo2.This is an example of partial failure.Note that HTTP status code is 200 OK, despite partial failure.Even with full failure status code will be 200 OK.Currently, successful repositories are always reported on top.If you specify `ignore_unavailable` flag:[source] - - ----GET _snapshot/[* | _all | repo*]/snap1?ignore_unavailable=true----And get the following response:[source] - - ----{ "responses": [ { "repository": "repo2", "snapshots": [] }, { "repository": "repo1", "snapshots": [ { "snapshot": "snap1", "uuid": "cEzdqUKxQ5G6MyrJAcYwmA", "version_id": 8000099, "version": "8.0.0", "indices": [], "include_global_state": true, "state": "SUCCESS", "start_time": "2019-05-10T17:01:57.868Z", "start_time_in_millis": 1557507717868, "end_time": "2019-05-10T17:01:57.909Z", "end_time_in_millis": 1557507717909, "duration_in_millis": 41, "failures": [], "shards": { "total": 0, "failed": 0, "successful": 0 } } ] } ]}----If you specify missing repository in the request[source] - - ----GET _snapshot/repo1,repo2,repo3/snap1----You get top-level error:[source] - - ----{ "error": { "root_cause": [ { "type": "repository_missing_exception", "reason": "[repo3] missing" } ], "type": "repository_missing_exception", "reason": "[repo3] missing" }, "status": 404}---- - - ### _cat/snapshot APIConsider you have 2 repositories:[source] - - ----PUT _snapshot/repo1PUT _snapshot/repo2---- - - And you have one snapshot in each repository:[source] - - ----PUT _snapshot/repo1/snap1PUT _snapshot/repo2/snap2---- - - Now you can get all the snapshots using any of this API calls:[source] - - ----GET _cat/snapshotGET _cat/snapshot/_allGET _cat/snapshot/*GET _cat/snapshot/repo*GET _cat/snapshot/repo1,repo2----The response will contain the repository name:[source] - - ----snap2 repo2 SUCCESS 1557507722 17:02:02 1557507722 17:02:02 34ms 0 0 0 0snap1 repo1 SUCCESS 1557507717 17:01:57 1557507717 17:01:57 41ms 0 0 0 0----Currently snapshots are not sorted by repo name.If there is an unexpected error for at least one of the repositories you will get the followingresponse:[source] - - ----{ "error": { "root_cause": [ { "type": "exception", "reason": "Repositories [repo1,repo2] failed to retrieve snapshots" } ], "type": "exception", "reason": "Repositories [repo1,repo2] failed to retrieve snapshots" }, "status": 500}---- - - - Closes https://github.com/elastic/elasticsearch/issues/41210 diff --git a/docs/changelog/42112.yaml b/docs/changelog/42112.yaml deleted file mode 100644 index 89aee7eb24718..0000000000000 --- a/docs/changelog/42112.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 42112 -issues: [] -area: Search -type: breaking-java -summary: Removes types from `SearchRequest` and `QueryShardContext` -versions: - - v8.0.0 -breaking: - notable: false - title: Removes types from `SearchRequest` and `QueryShardContext` - anchor: removes_types_from_searchrequest_and_queryshardcontext_ - body: >- - This change will remove the notion of types completely from the Search API - internals. - - For classes that are serialised (such as `SearchRequest`, `IdsQuery`, `ShardLocalSearchRequest`) we need to check for the wire version and deal with the types serialisation if the other node is `<8.0.0` diff --git a/docs/changelog/42155.yaml b/docs/changelog/42155.yaml deleted file mode 100644 index 211b1aa21cd99..0000000000000 --- a/docs/changelog/42155.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 42155 -issues: [] -area: TLS -type: enhancement -summary: Add `ChaCha20` TLS ciphers on Java 12+ -versions: - - v8.0.0 diff --git a/docs/changelog/42174.yaml b/docs/changelog/42174.yaml deleted file mode 100644 index e31ee98e99b0e..0000000000000 --- a/docs/changelog/42174.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 42174 -issues: [] -area: Security -type: breaking -summary: Remove the migrate tool -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the migrate tool - anchor: remove_the_migrate_tool - body: This commit removes the deprecated migrate tool which was used tomigrate - users from the file realm to native realm when the native realmwas first - created. diff --git a/docs/changelog/42179.yaml b/docs/changelog/42179.yaml deleted file mode 100644 index 9aeb61b340235..0000000000000 --- a/docs/changelog/42179.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 42179 -issues: - - 42154 -area: Aggregations -type: bug -summary: Fix `TopHitsAggregationBuilder` adding duplicate `_score` sort clauses -versions: - - v8.0.0 diff --git a/docs/changelog/42198.yaml b/docs/changelog/42198.yaml deleted file mode 100644 index 758d559e60e8c..0000000000000 --- a/docs/changelog/42198.yaml +++ /dev/null @@ -1,13 +0,0 @@ -pr: 42198 -issues: - - 41059 -area: Search -type: breaking -summary: Removes type from `TermVectors` APIs -versions: - - v8.0.0 -breaking: - notable: false - title: Removes type from `TermVectors` APIs - anchor: removes_type_from_termvectors_apis - body: Relates to https://github.com/elastic/elasticsearch/issues/41059 diff --git a/docs/changelog/42202.yaml b/docs/changelog/42202.yaml deleted file mode 100644 index 167742590debc..0000000000000 --- a/docs/changelog/42202.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 42202 -issues: [] -area: Infra/Core -type: breaking-java -summary: Remove transport client from xpack -versions: - - v8.0.0 -breaking: - notable: false - title: Remove transport client from xpack - anchor: remove_transport_client_from_xpack - body: his commit removes support for the transport client from xpack. diff --git a/docs/changelog/42253.yaml b/docs/changelog/42253.yaml deleted file mode 100644 index 63a297707550c..0000000000000 --- a/docs/changelog/42253.yaml +++ /dev/null @@ -1,10 +0,0 @@ -pr: 42253 -issues: - - 42240 - - 42242 - - 42251 -area: Unknown -type: UNKNOWN -summary: Add 7.1.1 and 6.8.1 versions -versions: - - v8.0.0 diff --git a/docs/changelog/42288.yaml b/docs/changelog/42288.yaml deleted file mode 100644 index 9a411e86774e9..0000000000000 --- a/docs/changelog/42288.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 42288 -issues: - - 889 -area: Transform -type: UNKNOWN -summary: Documentation for Data Frame Analytics high-level REST client -versions: - - v8.0.0 diff --git a/docs/changelog/42333.yaml b/docs/changelog/42333.yaml deleted file mode 100644 index c4af3870cd20a..0000000000000 --- a/docs/changelog/42333.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 42333 -issues: - - 41926 - - 41267 -area: Mapping -type: breaking -summary: Remove support for chained multi-fields. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for chained multi-fields. - anchor: remove_support_for_chained_multi_fields_ - body: >- - Follow-up to #41926, where we deprecated support for multi-fields - withinmulti-fields. - - Addresses #41267. diff --git a/docs/changelog/42359.yaml b/docs/changelog/42359.yaml deleted file mode 100644 index b95e2e42e61d1..0000000000000 --- a/docs/changelog/42359.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 42359 -issues: - - 42213 -area: Snapshot/Restore -type: breaking-java -summary: Remove deprecated Repository methods -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated Repository methods - anchor: remove_deprecated_repository_methods - body: "We deprecated `restoreShard` and `snapshotShard` in #42213This change - removes the deprecated methods and their usage and addsa note in the - migration docs." diff --git a/docs/changelog/42381.yaml b/docs/changelog/42381.yaml deleted file mode 100644 index ff553b14aef4f..0000000000000 --- a/docs/changelog/42381.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 42381 -issues: - - 33413 - - 38556 -area: Search -type: breaking -summary: Remove deprecated `search.remote` settings -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated `search.remote` settings - anchor: remove_deprecated_search_remote_settings - body: >- - We deprecated these settings awhile ago, in favor of cluster.remote. In 7.x - we were gentle and provided automatic upgrade of these settings to the new - settings. Now it is time for them to go. This commit removes the deprecated - search.remote settings. - - Relates #33413 - Relates #38556 diff --git a/docs/changelog/42428.yaml b/docs/changelog/42428.yaml deleted file mode 100644 index 30932ae280c54..0000000000000 --- a/docs/changelog/42428.yaml +++ /dev/null @@ -1,23 +0,0 @@ -pr: 42428 -issues: - - 42426 -area: Infra/Core -type: breaking -summary: Remove `node.max_local_storage_nodes` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `node.max_local_storage_nodes` - anchor: remove_node_max_local_storage_nodes_ - body: >- - This setting, which prior to Elasticsearch 5 was enabled by default and - caused all kinds of confusion, has [since been disabled by - default](https://github.com/elastic/elasticsearch/pull/19964) and is not - recommended for production use. The prefered way going forward is for users - to explicitly specify separate data folders for each started node to ensure - that each node is consistently assigned to the same data path. - - A follow-up will move the default data path from `${data.paths}/nodes/0` to `${data.paths}` - - Relates to #42426 diff --git a/docs/changelog/42471.yaml b/docs/changelog/42471.yaml deleted file mode 100644 index e813b5352ec7a..0000000000000 --- a/docs/changelog/42471.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 42471 -issues: [] -area: Client -type: breaking-java -summary: Remove `SecurityClient` from x-pack -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `SecurityClient` from x-pack - anchor: remove_securityclient_from_x_pack - body: This commit removes the SecurityClient class from x-pack. This clientclass - is a relic of the transport client, which is in the process ofbeing removed. - Some tests were changed to use the high level restclient and others use a - client directly without the security clientwrapping it. diff --git a/docs/changelog/42489.yaml b/docs/changelog/42489.yaml deleted file mode 100644 index 75374baa0b30f..0000000000000 --- a/docs/changelog/42489.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 42489 -issues: [] -area: Infra/Core -type: breaking -summary: Remove "nodes/0" folder prefix from data path -versions: - - v8.0.0 -breaking: - notable: false - title: Remove "nodes/0" folder prefix from data path - anchor: remove_nodes_0_folder_prefix_from_data_path - body: >- - With the removal of `node.max_local_storage_nodes`, there is no need anymore - to keep the data in subfolders indexed by a node ordinal. This PR makes it - so that ES 8.0 will store data directly in `$DATA_DIR` instead of - `$DATA_DIR/nodes/$nodeOrdinal`. - - Upon startup, Elasticsearch will check to see if there is data in the old location, and automatically move it to the new location. This automatic migration only works if `$nodeOrdinal` is 0, i.e., multiple node instances have not previously run on the same data path, which required for `node.max_local_storage_nodes` to explicitly be configured. diff --git a/docs/changelog/42538.yaml b/docs/changelog/42538.yaml deleted file mode 100644 index a3e753d415ee5..0000000000000 --- a/docs/changelog/42538.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 42538 -issues: [] -area: Infra/Core -type: breaking-java -summary: Remove the transport client -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the transport client - anchor: remove_the_transport_client - body: This commit removes the transport client and all remaining uses in the code. diff --git a/docs/changelog/42654.yaml b/docs/changelog/42654.yaml deleted file mode 100644 index 177db37b74c17..0000000000000 --- a/docs/changelog/42654.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 42654 -issues: - - 37096 -area: Search -type: breaking -summary: Remove `CommonTermsQuery` and `cutoff_frequency` param -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `CommonTermsQuery` and `cutoff_frequency` param - anchor: remove_commontermsquery_and_cutoff_frequency_param - body: >- - Remove `common` query and `cutoff_frequency` parameter of`match` and - `multi_match` queries. Both have already beendeprecated in 7.x. - - Closes: #37096 diff --git a/docs/changelog/42729.yaml b/docs/changelog/42729.yaml deleted file mode 100644 index 948aa1bab9e2b..0000000000000 --- a/docs/changelog/42729.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 42729 -issues: [] -area: Infra/Core -type: breaking-java -summary: Remove `XPackClient` from x-pack -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `XPackClient` from x-pack - anchor: remove_xpackclient_from_x_pack - body: This commit removes the XPackClient class from x-pack. This class is - arelic of the TransportClient and simply a wrapper around it. Calls - arereplaced with direct usage of a client. Additionally, theXPackRestHandler - class has been removed as it only served to providethe XPackClient to - implementing rest handlers. diff --git a/docs/changelog/42770.yaml b/docs/changelog/42770.yaml deleted file mode 100644 index 10f6f8fbaf7ce..0000000000000 --- a/docs/changelog/42770.yaml +++ /dev/null @@ -1,13 +0,0 @@ -pr: 42770 -issues: [] -area: Features/Monitoring -type: breaking-java -summary: Remove `MonitoringClient` from x-pack -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `MonitoringClient` from x-pack - anchor: remove_monitoringclient_from_x_pack - body: This commit removes the monitoring client from x-pack. This class is - arelic of the TransportClient and was only used in a test. diff --git a/docs/changelog/42809.yaml b/docs/changelog/42809.yaml deleted file mode 100644 index 2b9628c491cad..0000000000000 --- a/docs/changelog/42809.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 42809 -issues: - - 27098 -area: Search -type: breaking -summary: "Remove deprecated sort options: `nested_path` and `nested_filter`" -versions: - - v8.0.0 -breaking: - notable: false - title: "Remove deprecated sort options: `nested_path` and `nested_filter`" - anchor: remove_deprecated_sort_options_nested_path_and_nested_filter_ - body: >- - This commit removes the nested_path and nested_filter options deprecated in - 6x.This change also checks that the sort field has a [nested] option if it - is under a nestedobject and throws an exception if it's not the case. - - Closes #27098 diff --git a/docs/changelog/42815.yaml b/docs/changelog/42815.yaml deleted file mode 100644 index 60cb34a8d2bdf..0000000000000 --- a/docs/changelog/42815.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 42815 -issues: [] -area: Features/Watcher -type: breaking-java -summary: Remove `WatcherClient` from x-pack -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `WatcherClient` from x-pack - anchor: remove_watcherclient_from_x_pack - body: This commit removes the WatcherClient and WatcherRestHandler from - thecodebase. The WatcherClient was a convenience wrapper around thetransport - client, which is being removed so the client no longer servesa purpose. The - WatcherRestHandler is no longer needed as its primarypurpose was to provide - a WatcherClient to the implementing handlers. diff --git a/docs/changelog/42816.yaml b/docs/changelog/42816.yaml deleted file mode 100644 index 4da6e6f286b0f..0000000000000 --- a/docs/changelog/42816.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 42816 -issues: [] -area: CCR -type: breaking-java -summary: Remove the `CcrClient` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the `CcrClient` - anchor: remove_the_ccrclient_ - body: This commit removes the CcrClient class, which is a wrapper around - thetransport client. The transport client is being removed so the clientis - no longer needed. diff --git a/docs/changelog/42817.yaml b/docs/changelog/42817.yaml deleted file mode 100644 index df11c69337f19..0000000000000 --- a/docs/changelog/42817.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 42817 -issues: [] -area: Features/ILM+SLM -type: breaking-java -summary: Remove the ILMClient -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the ILMClient - anchor: remove_the_ilmclient - body: This commit removes the ILMClient class, which is a wrapper around - thetransport client. This class is not used in the codebase and thetransport - client is being removed. diff --git a/docs/changelog/43099.yaml b/docs/changelog/43099.yaml deleted file mode 100644 index d3d1e6bf3943c..0000000000000 --- a/docs/changelog/43099.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43099 -issues: [] -area: Transform -type: bug -summary: "`[DataFrame]` Fix compile error in `DataFrameTransformProgressIT`" -versions: - - v8.0.0 diff --git a/docs/changelog/43108.yaml b/docs/changelog/43108.yaml deleted file mode 100644 index 80a1fac1bea7f..0000000000000 --- a/docs/changelog/43108.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 43108 -issues: [] -area: Machine Learning -type: breaking-java -summary: Remove the `MachineLearningClient` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the `MachineLearningClient` - anchor: remove_the_machinelearningclient_ - body: The transport client has been removed and this follow up change removesthe - MachineLearningClient as we no longer need this wrapper class sincewe have a - user facing MachineLearningClient within the rest high levelclient. diff --git a/docs/changelog/43164.yaml b/docs/changelog/43164.yaml deleted file mode 100644 index e6aa9c99baaa0..0000000000000 --- a/docs/changelog/43164.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43164 -issues: [] -area: Infra/Core -type: enhancement -summary: Remove indices exists action -versions: - - v8.0.0 diff --git a/docs/changelog/43236.yaml b/docs/changelog/43236.yaml deleted file mode 100644 index 23265d0c17b8b..0000000000000 --- a/docs/changelog/43236.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 43236 -issues: [] -area: TLS -type: breaking -summary: Remove the client transport profile filter -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the client transport profile filter - anchor: remove_the_client_transport_profile_filter - body: Now that the transport client has been removed, the client - transportprofile filter can be removed from security. This filter prevented - nodeactions from being executed using a transport client. diff --git a/docs/changelog/43344.yaml b/docs/changelog/43344.yaml deleted file mode 100644 index 99ec8eef8af10..0000000000000 --- a/docs/changelog/43344.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43344 -issues: [] -area: Infra/Core -type: enhancement -summary: Remove types exists action -versions: - - v8.0.0 diff --git a/docs/changelog/43373.yaml b/docs/changelog/43373.yaml deleted file mode 100644 index 8d4e3d30df298..0000000000000 --- a/docs/changelog/43373.yaml +++ /dev/null @@ -1,22 +0,0 @@ -pr: 43373 -issues: - - 41894 - - 24344 -area: Reindex -type: breaking, enhancement -summary: Reindex remove outer level size -versions: - - v8.0.0 -breaking: - notable: false - title: Reindex remove outer level size - anchor: reindex_remove_outer_level_size - body: >- - This commit finalizes the work done to rename `size` to `max_docs` inreindex - and update/delete by query. `size` is no longer supported in URLor outer - level body for the 3 APIs (though `size` in update/delete-by-querywill and - has always been interpreted as `scroll_size`, it is not to be reliedupon). - - Continuation of #41894 - - Closes #24344 diff --git a/docs/changelog/43382.yaml b/docs/changelog/43382.yaml deleted file mode 100644 index d6065ccab7f1a..0000000000000 --- a/docs/changelog/43382.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 43382 -issues: - - 42612 -area: Reindex -type: enhancement -summary: Make reindexing managed by a persistent task -versions: - - v8.0.0 diff --git a/docs/changelog/43430.yaml b/docs/changelog/43430.yaml deleted file mode 100644 index a01b9484b3579..0000000000000 --- a/docs/changelog/43430.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43430 -issues: [] -area: Infra/Core -type: enhancement -summary: Remove aliases exist action -versions: - - v8.0.0 diff --git a/docs/changelog/43536.yaml b/docs/changelog/43536.yaml deleted file mode 100644 index 04d97c0a38655..0000000000000 --- a/docs/changelog/43536.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43536 -issues: [] -area: Analysis -type: enhancement -summary: "[Docs] Move mentions of updateable synonyms flag" -versions: - - v8.0.0 diff --git a/docs/changelog/43558.yaml b/docs/changelog/43558.yaml deleted file mode 100644 index 563a67a636487..0000000000000 --- a/docs/changelog/43558.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 43558 -issues: - - 43547 -area: Snapshot/Restore -type: bug -summary: Fix GET /_snapshot/_all/_all if there are no repos -versions: - - v8.0.0 diff --git a/docs/changelog/43559.yaml b/docs/changelog/43559.yaml deleted file mode 100644 index 67e2f0ffab8c9..0000000000000 --- a/docs/changelog/43559.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 43559 -issues: [] -area: Analysis -type: enhancement -summary: Moving `reload_analyzers` endpoint to xpack -versions: - - v8.0.0 diff --git a/docs/changelog/43686.yaml b/docs/changelog/43686.yaml deleted file mode 100644 index ab385d62b49d6..0000000000000 --- a/docs/changelog/43686.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 43686 -issues: - - 41560 - - 43684 -area: Analysis -type: breaking -summary: Remove preconfigured `delimited_payload_filter` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove preconfigured `delimited_payload_filter` - anchor: remove_preconfigured_delimited_payload_filter_ - body: "#41560 removed the `delimited_payload_filter` as part of a generalcleanup - of pre-version 7 restrictions, but missed removing thepreconfigured version - due to #43684." diff --git a/docs/changelog/43781.yaml b/docs/changelog/43781.yaml deleted file mode 100644 index c55c5805a180e..0000000000000 --- a/docs/changelog/43781.yaml +++ /dev/null @@ -1,10 +0,0 @@ -pr: 43781 -issues: - - 42409 - - 39169 -area: Features/Watcher -type: UNKNOWN -summary: "`SmokeTestWatcherWithSecurityIT:` Retry if failures searching - .watcher-history" -versions: - - v8.0.0 diff --git a/docs/changelog/44090.yaml b/docs/changelog/44090.yaml deleted file mode 100644 index 38cdd0b2255ee..0000000000000 --- a/docs/changelog/44090.yaml +++ /dev/null @@ -1,23 +0,0 @@ -pr: 44090 -issues: - - 40353 -area: Authentication -type: breaking -summary: Do not set a NameID format in Policy by default -versions: - - v8.0.0 -breaking: - notable: false - title: Do not set a NameID format in Policy by default - anchor: do_not_set_a_nameid_format_in_policy_by_default - body: >- - This commit changes the behavior of our SAML realm to not set aFormat - element in the NameIDPolicy of a SAML Authenticationrequest if one has not - been explicitly configured by the userwith `nameid_format`. We select to not - include a format, ratherthan setting it - to`urn:oasis:names:tc:SAML:2.0:nameid-format:unspecified` which wouldhave - the same effect, in order to maximize interoperability withIdP - implementations. `AllowCreate` is not removed as this has adefault value - (false) in the specification. - - Relates: #40353 diff --git a/docs/changelog/44133.yaml b/docs/changelog/44133.yaml deleted file mode 100644 index 8e3cdc721819d..0000000000000 --- a/docs/changelog/44133.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 44133 -issues: - - 44132 -area: Machine Learning -type: bug -summary: Relax the test assertion so that the test always passes -versions: - - v8.0.0 diff --git a/docs/changelog/44264.yaml b/docs/changelog/44264.yaml deleted file mode 100644 index c3c76d93b3726..0000000000000 --- a/docs/changelog/44264.yaml +++ /dev/null @@ -1,29 +0,0 @@ -pr: 44264 -issues: - - 41731 - - 41731 - - 21830 - - 44230 -area: Infra/Resiliency -type: breaking, bug -summary: Fail node containing ancient closed index -versions: - - v8.0.0 -breaking: - notable: false - title: Fail node containing ancient closed index - anchor: fail_node_containing_ancient_closed_index - body: >- - Today we fail the node at startup if it contains an index that is too old to - becompatible with the current version, unless that index is closed. If the - indexis closed then the node will start up and this puts us into a bad - state: theindex cannot be opened and must be reindexed using an earlier - version, but weoffer no way to get that index into a node running an earlier - version so thatit can be reindexed. Downgrading the node in-place is - decidedly unsupported andcannot be expected to work since the node already - started up and upgraded therest of its metadata. Since #41731 we actively - reject downgrades to versions ≥v7.2.0 too. - - This commit prevents the node from starting in the presence of any too-oldindices (closed or not). In particular, it does not write any upgraded metadatain this situation, increasing the chances an in-place downgrade might besuccessful. We still actively reject the downgrade using #41731, because wewrote the node metadata file before checking the index metadata, but at leastthere is a way to override this check. - - Relates #21830, #44230 diff --git a/docs/changelog/44642.yaml b/docs/changelog/44642.yaml deleted file mode 100644 index ec4ee7fcad44a..0000000000000 --- a/docs/changelog/44642.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 44642 -issues: [] -area: Infra/Logging -type: UNKNOWN -summary: Fix stats in slow logs to be a escaped JSON -versions: - - v8.0.0 diff --git a/docs/changelog/44752.yaml b/docs/changelog/44752.yaml deleted file mode 100644 index 1fbac7e3d0420..0000000000000 --- a/docs/changelog/44752.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 44752 -issues: - - 44616 -area: Machine Learning -type: breaking, deprecation -summary: Remove the ability to update datafeed's job_id. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the ability to update datafeed's job_id. - anchor: remove_the_ability_to_update_datafeed_s_job_id_ - body: >- - This PR is a followup to - https://github.com/elastic/elasticsearch/pull/44691. It disables the - possibility to update job_id on a datafeed.DatafeedUpdate.jobId field can be - set in the _update request as long as it is the same as the current value of - DatafeedConfig.jobId. - - Closes https://github.com/elastic/elasticsearch/issues/44616 diff --git a/docs/changelog/44761.yaml b/docs/changelog/44761.yaml deleted file mode 100644 index 1c781e38bb41d..0000000000000 --- a/docs/changelog/44761.yaml +++ /dev/null @@ -1,24 +0,0 @@ -pr: 44761 -issues: - - 43102 -area: Engine -type: breaking, bug -summary: Force Merge should reject requests with `only_expunge_deletes` and - `max_num_segments` set -versions: - - v8.0.0 -breaking: - notable: false - title: Force Merge should reject requests with `only_expunge_deletes` and - `max_num_segments` set - anchor: force_merge_should_reject_requests_with_only_expunge_deletes_and_max_num_segments_set - body: >- - This pull request changes the `ForceMergeRequest.validate()` method so that - it does not accept the parameters `only_expunge_deletes` and - `max_num_segments` to be set at the same time. - - The motivation is that `InternalEngine.forceMerge()` just ignores the max. number of segments parameter when the only expunge parameter is set to true, leaving the wrong impression to the user that max. number of segments has been applied. This PR also changes `InternalEngine.forceMerge()` so that it now throws an exception when both parameters are set, and modifies tests where needed. - - Because it changes the behavior of the REST API I marked this as `>breaking`. Once this is merged I'll open a follow up PR to add deprecation logging in 7.x. - - Closes #43102 diff --git a/docs/changelog/44894.yaml b/docs/changelog/44894.yaml deleted file mode 100644 index 8158d764bfe8b..0000000000000 --- a/docs/changelog/44894.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 44894 -issues: - - 44889 -area: Infra/Core -type: breaking -summary: Limit processors by available processors -versions: - - v8.0.0 -breaking: - notable: false - title: Limit processors by available processors - anchor: limit_processors_by_available_processors - body: >- - This commit limits the processors setting to be more than the number of - available processors. - - Relates #44889 diff --git a/docs/changelog/44902.yaml b/docs/changelog/44902.yaml deleted file mode 100644 index 0345267421e4d..0000000000000 --- a/docs/changelog/44902.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 44902 -issues: - - 37504 -area: Infra/REST API -type: bug -summary: "`RestController` should not consume request content" -versions: - - v8.0.0 diff --git a/docs/changelog/44905.yaml b/docs/changelog/44905.yaml deleted file mode 100644 index 1cd69ffc12d29..0000000000000 --- a/docs/changelog/44905.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 44905 -issues: - - 29857 -area: Machine Learning -type: enhancement -summary: Change version in serialization code in `TimingStats.java` to 7.4.0 -versions: - - v8.0.0 diff --git a/docs/changelog/44929.yaml b/docs/changelog/44929.yaml deleted file mode 100644 index 94ecbc6a3020f..0000000000000 --- a/docs/changelog/44929.yaml +++ /dev/null @@ -1,25 +0,0 @@ -pr: 44929 -issues: - - 31020 - - 42538 - - 44667 -area: Network -type: breaking -summary: Remove client feature tracking -versions: - - v8.0.0 -breaking: - notable: false - title: Remove client feature tracking - anchor: remove_client_feature_tracking - body: >- - This commit removes the infrastructure for client feature tracking. We - introduced this functionality to support clients that do not necessarily - understand all the features that the server might support, for example, - customs in the cluster state provided by plugins that a client might not - have. This can arise in situations such as rolling upgrades from the OSS - distribution to the default distribution. With the removal of the transport - client, this infrastructure is no longer needed. This commit removes client - feature tracking from the server in 8.0.0. - - Relates #31020Relates #42538Relates #44667 diff --git a/docs/changelog/44982.yaml b/docs/changelog/44982.yaml deleted file mode 100644 index 29f209c9a7b78..0000000000000 --- a/docs/changelog/44982.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 44982 -issues: - - 44917 - - 44725 -area: Features/ILM+SLM, Features/Java High Level REST Client -type: breaking-java -summary: Rename HLRC 'indexlifecycle' components to 'ilm' -versions: - - v8.0.0 -breaking: - notable: false - title: Rename HLRC 'indexlifecycle' components to 'ilm' - anchor: rename_hlrc_indexlifecycle_components_to_ilm_ - body: "Related to #44917 and #44725, this commit renames the HLRC componentsfor - indexlifecycle to ilm." diff --git a/docs/changelog/45497.yaml b/docs/changelog/45497.yaml deleted file mode 100644 index adde5002e7062..0000000000000 --- a/docs/changelog/45497.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 45497 -issues: - - 42612 - - 43187 -area: Reindex -type: enhancement -summary: Reindex search resiliency -versions: - - v8.0.0 diff --git a/docs/changelog/45586.yaml b/docs/changelog/45586.yaml deleted file mode 100644 index 09abdcd273dbe..0000000000000 --- a/docs/changelog/45586.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 45586 -issues: - - 43260 -area: Infra/Core -type: bug -summary: "CLI tools: write errors to stderr instead of stdout" -versions: - - v8.0.0 diff --git a/docs/changelog/45675.yaml b/docs/changelog/45675.yaml deleted file mode 100644 index f220899c2f13d..0000000000000 --- a/docs/changelog/45675.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 45675 -issues: [] -area: Mapping -type: breaking -summary: Remove support for string in unmapped_type. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for string in unmapped_type. - anchor: remove_support_for_string_in_unmapped_type_ - body: This deprecated option was added in 0d8e399 and can now be removed. diff --git a/docs/changelog/45735.yaml b/docs/changelog/45735.yaml deleted file mode 100644 index 394daf9b8a54d..0000000000000 --- a/docs/changelog/45735.yaml +++ /dev/null @@ -1,24 +0,0 @@ -pr: 45735 -issues: - - 43453 -area: Search -type: breaking, enhancement -summary: Decouple shard allocation awareness from search and get requests -versions: - - v8.0.0 -breaking: - notable: false - title: Decouple shard allocation awareness from search and get requests - anchor: decouple_shard_allocation_awareness_from_search_and_get_requests - body: >- - With this commit, Elasticsearch will no longer prefer using shards in the - same location(with the same awareness attribute values) to process `_search` - and `_get` requests.Instead, adaptive replica selection (the default since - 7.0) should route requests more efficientlyusing the service time of prior - inter-node communications. Clusters with big latencies betweennodes should - switch to cross cluster replication to isolate nodes within the same - zone.Note that this change only targets 8.0 since it is considered as - breaking. However a follow uppr should add an option to activate this - behavior in 7.x in order to allow users to opt-in early. - - Closes #43453 diff --git a/docs/changelog/45878.yaml b/docs/changelog/45878.yaml deleted file mode 100644 index d98729c9b4de0..0000000000000 --- a/docs/changelog/45878.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 45878 -issues: - - 19069 -area: Infra/Core -type: UNKNOWN -summary: Remove `ExceptionHelper.detailedMessage` -versions: - - v8.0.0 diff --git a/docs/changelog/45892.yaml b/docs/changelog/45892.yaml deleted file mode 100644 index 0ab96397605a2..0000000000000 --- a/docs/changelog/45892.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 45892 -issues: [] -area: TLS -type: breaking, enhancement -summary: Reject misconfigured/ambiguous SSL server config -versions: - - v8.0.0 -breaking: - notable: false - title: Reject misconfigured/ambiguous SSL server config - anchor: reject_misconfigured_ambiguous_ssl_server_config - body: >- - This commit makes it an error to start a node where either of theserver - contexts (xpack.security.transport.ssl andxpack.security.http.ssl) meet - either of these conditions: - - 1. The server lacks a certificate/key pair (i.e. neither ssl.keystore.path nor ssl.certificate are configured)2. The server has some ssl configuration, but ssl.enabled is not specified. This new validation does not care whether ssl.enabled is true or false (though other validation might), it simply makes it an error to configure server SSL without being explicit about whether to enable that configuration. diff --git a/docs/changelog/45905.yaml b/docs/changelog/45905.yaml deleted file mode 100644 index ca7801b780a9e..0000000000000 --- a/docs/changelog/45905.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 45905 -issues: - - 45855 -area: Infra/Core -type: breaking -summary: Remove processors setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove processors setting - anchor: remove_processors_setting - body: >- - The processors setting was deprecated in version 7.4.0 of Elasticsearch for - removal in Elasticsearch 8.0.0. This commit removes the processors setting. - - Relates #45855 diff --git a/docs/changelog/45940.yaml b/docs/changelog/45940.yaml deleted file mode 100644 index 4ba7de89356a7..0000000000000 --- a/docs/changelog/45940.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 45940 -issues: - - 45938 -area: Infra/Core -type: breaking -summary: Remove the pidfile setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the pidfile setting - anchor: remove_the_pidfile_setting - body: >- - The pidfile setting was deprecated in version 7.4.0 of Elasticsearch for - removal in Elasticsearch 8.0.0. This commit removes the pidfile setting. - - Relates #45938 diff --git a/docs/changelog/45945.yaml b/docs/changelog/45945.yaml deleted file mode 100644 index eec78a297e08b..0000000000000 --- a/docs/changelog/45945.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 45945 -issues: [] -area: Infra/REST API -type: breaking-java, enhancement -summary: Copy http headers to `ThreadContext` strictly -versions: - - v8.0.0 -breaking: - notable: false - title: Copy http headers to `ThreadContext` strictly - anchor: copy_http_headers_to_threadcontext_strictly - body: >- - Previous behavior while copying HTTP headers to the ThreadContext,would - allow multiple HTTP headers with the same name, handling onlythe first - occurrence and disregarding the rest of the values. Thiscan be confusing - when dealing with multiple Headers as it is notobvious which value is read - and which ones are silently dropped. - - According to RFC-7230, a client must not send multiple header fieldswith the same field name in a HTTP message, unless the entire fieldvalue for this header is defined as a comma separated list or thisspecific header is a well-known exception. - - This commits changes the behavior in order to be more compliant tothe aforementioned RFC by requiring the classes that implementActionPlugin to declare if a header can be multi-valued or not whenregistering this header to be copied over to the ThreadContext inActionPlugin#getRestHeaders.If the header is allowed to be multivalued, then all such headersare read from the HTTP request and their values get concatenated ina comma-separated string.If the header is not allowed to be multivalued, and the HTTPrequest contains multiple such Headers with different values, therequest is rejected with a 400 status. diff --git a/docs/changelog/45947.yaml b/docs/changelog/45947.yaml deleted file mode 100644 index e3be789b2131a..0000000000000 --- a/docs/changelog/45947.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 45947 -issues: - - 45905 - - 45940 -area: Infra/Settings -type: breaking -summary: Forbid settings without a namespace -versions: - - v8.0.0 -breaking: - notable: false - title: Forbid settings without a namespace - anchor: forbid_settings_without_a_namespace - body: >- - This commit forbids settings that are not in any namespace, all setting - names must now contain a dot. - - Relates #45905 Relates #45940 diff --git a/docs/changelog/46055.yaml b/docs/changelog/46055.yaml deleted file mode 100644 index cdca853d0b971..0000000000000 --- a/docs/changelog/46055.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 46055 -issues: - - 42612 -area: Reindex -type: enhancement -summary: Reindex restart from checkpoint -versions: - - v8.0.0 diff --git a/docs/changelog/46147.yaml b/docs/changelog/46147.yaml deleted file mode 100644 index 8979f0b03be25..0000000000000 --- a/docs/changelog/46147.yaml +++ /dev/null @@ -1,22 +0,0 @@ -pr: 46147 -issues: - - 45947 -area: Infra/Settings, Snapshot/Restore -type: breaking -summary: Remove insecure settings -versions: - - v8.0.0 -breaking: - notable: false - title: Remove insecure settings - anchor: remove_insecure_settings - body: >- - This commit removes the oxymoron of insecure secure settings from the code - base. In particular, we remove the ability to set the access_key and - secret_key for S3 repositories inside the repository definition (in the - cluster state). Instead, these settings now must be in the keystore. Thus, - it also removes some leniency where these settings could be placed in the - elasticsearch.yml, would not be rejected there, but would not be consumed - for any purpose. - - Relates #45947 diff --git a/docs/changelog/46327.yaml b/docs/changelog/46327.yaml deleted file mode 100644 index ec6adb73a1e9d..0000000000000 --- a/docs/changelog/46327.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 46327 -issues: - - 46257 - - 46324 -area: Aggregations -type: UNKNOWN -summary: Remove `Adjacency_matrix` setting -versions: - - v8.0.0 diff --git a/docs/changelog/46603.yaml b/docs/changelog/46603.yaml deleted file mode 100644 index 1703012d5df5b..0000000000000 --- a/docs/changelog/46603.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 46603 -issues: - - 41830 -area: Infra/Settings -type: enhancement -summary: Fixed inconsistent Setting.exist() -versions: - - v8.0.0 diff --git a/docs/changelog/46702.yaml b/docs/changelog/46702.yaml deleted file mode 100644 index d0c0a394ac344..0000000000000 --- a/docs/changelog/46702.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 46702 -issues: - - 46119 -area: Infra/Logging -type: UNKNOWN -summary: Refactor `ESLogMessage` to not define fields upfront -versions: - - v8.0.0 diff --git a/docs/changelog/46749.yaml b/docs/changelog/46749.yaml deleted file mode 100644 index 63f4d5caadb23..0000000000000 --- a/docs/changelog/46749.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 46749 -issues: [] -area: Transform -type: UNKNOWN -summary: Muting tests for PR https://github.com/elastic/elasticsearch/pull/46414 -versions: - - v8.0.0 diff --git a/docs/changelog/46967.yaml b/docs/changelog/46967.yaml deleted file mode 100644 index 265ad5ce38d82..0000000000000 --- a/docs/changelog/46967.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 46967 -issues: - - 46763 - - 42612 -area: Reindex -type: enhancement -summary: Reindex v2 rethrottle sliced fix -versions: - - v8.0.0 diff --git a/docs/changelog/46983.yaml b/docs/changelog/46983.yaml deleted file mode 100644 index 0479b54b7695e..0000000000000 --- a/docs/changelog/46983.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 46983 -issues: - - 41059 -area: CRUD -type: breaking-java -summary: Remove types from `BulkRequest` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove types from `BulkRequest` - anchor: remove_types_from_bulkrequest_ - body: >- - This commit removes types entirely from BulkRequest, both as a - globalparameter and as individual entries on update/index/delete lines. - - Relates to #41059 diff --git a/docs/changelog/47105.yaml b/docs/changelog/47105.yaml deleted file mode 100644 index 53e989f60c0f0..0000000000000 --- a/docs/changelog/47105.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 47105 -issues: - - 46119 -area: Infra/Logging -type: UNKNOWN -summary: Make Elasticsearch JSON logs ECS compliant -versions: - - v8.0.0 diff --git a/docs/changelog/47203.yaml b/docs/changelog/47203.yaml deleted file mode 100644 index 000ff89799fa3..0000000000000 --- a/docs/changelog/47203.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 47203 -issues: - - 41059 -area: Engine -type: breaking -summary: Remove per-type indexing stats -versions: - - v8.0.0 -breaking: - notable: false - title: Remove per-type indexing stats - anchor: remove_per_type_indexing_stats - body: >- - With only a single type, the per-type filters for indexing stats are no - longer useful. - - Relates to #41059 diff --git a/docs/changelog/47207.yaml b/docs/changelog/47207.yaml deleted file mode 100644 index 443ce812d4e3a..0000000000000 --- a/docs/changelog/47207.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 47207 -issues: - - 41059 -area: Search -type: breaking -summary: Remove `type` query -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `type` query - anchor: remove_type_query - body: >- - Running `type` queries in 7x already emits deprecation warnings. We can - remove italtogether in 8x. - - Part of #41059 diff --git a/docs/changelog/47364.yaml b/docs/changelog/47364.yaml deleted file mode 100644 index fce06b4f3380d..0000000000000 --- a/docs/changelog/47364.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 47364 -issues: - - 41059 -area: Mapping -type: breaking-java -summary: Remove type filter from `GetMappings` API -versions: - - v8.0.0 -breaking: - notable: false - title: Remove type filter from `GetMappings` API - anchor: remove_type_filter_from_getmappings_api - body: >- - This commit removes the types filter from the GetMappings API, which is no - longeruseful seeing as we can only have a single mapping type per index. It - also changesthe structure of GetMappingsResponse and GetIndexResponse to - remove the extranesting of mappings below the no-longer-relevant type name, - and removes the typesmethods from the equivalent request classes. - - Relates to #41059 diff --git a/docs/changelog/47650.yaml b/docs/changelog/47650.yaml deleted file mode 100644 index 0e7148fbf699a..0000000000000 --- a/docs/changelog/47650.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 47650 -issues: [] -area: Packaging -type: UNKNOWN -summary: Update docker-compose.yml to fix bootstrap check error -versions: - - v8.0.0 diff --git a/docs/changelog/47651.yaml b/docs/changelog/47651.yaml deleted file mode 100644 index dafa226374284..0000000000000 --- a/docs/changelog/47651.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 47651 -issues: [] -area: Packaging -type: UNKNOWN -summary: Update `docker.asciidoc` -versions: - - v8.0.0 diff --git a/docs/changelog/47717.yaml b/docs/changelog/47717.yaml deleted file mode 100644 index e6c941fa84624..0000000000000 --- a/docs/changelog/47717.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 47717 -issues: - - 46079 - - 47443 -area: Allocation -type: breaking -summary: Remove `include_relocations` setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `include_relocations` setting - anchor: remove_include_relocations_setting - body: "Setting `cluster.routing.allocation.disk.include_relocations` to `false` - is abad idea since it will lead to the kinds of overshoot that were - otherwise fixedin #46079. This setting was deprecated in #47443. This commit - removes it." diff --git a/docs/changelog/48170.yaml b/docs/changelog/48170.yaml deleted file mode 100644 index bbfad094da869..0000000000000 --- a/docs/changelog/48170.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 48170 -issues: - - 35958 -area: Infra/REST API -type: breaking -summary: Remove deprecated endpoints containing _xpack. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated endpoints containing _xpack. - anchor: remove_deprecated_endpoints_containing_xpack_ - body: >- - The endpoints with `_xpack` in their path were deprecated in 7.x and can now - beremoved. This commit removes deprecated endpoints for the following APIs:* - deprecation* graph* license* monitoring* rollup* SQL* watcher - - Relates to #35958. diff --git a/docs/changelog/48443.yaml b/docs/changelog/48443.yaml deleted file mode 100644 index fccd73dfc8f8e..0000000000000 --- a/docs/changelog/48443.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 48443 -issues: [] -area: Infra/Transport API, CRUD -type: breaking-java -summary: Remove `Client.prepareIndex(index,` type, id) method -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `Client.prepareIndex(index,` type, id) method - anchor: remove_client_prepareindex_index_type_id_method - body: As types are no longer used in index requests, we can remove the type - parameterfrom prepareIndex methods in the Client interface. However, just - changing the signatureof `prepareIndex(index, type, id)` to - `prepareIndex(index, id)` risks confusion when upgrading with the previous - (now removed) `prepareIndex(index, type)` method - just changing the - dependency version of java code would end up silently changing the semantics - of the method call. Instead we should just remove this method entirely, and - replace it by calling `prepareIndex(index).setId(id)` diff --git a/docs/changelog/48471.yaml b/docs/changelog/48471.yaml deleted file mode 100644 index fe10293544aa3..0000000000000 --- a/docs/changelog/48471.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 48471 -issues: [] -area: Features/Indices APIs, Features/Java High Level REST Client -type: breaking-java -summary: Remove deprecated include-type methods from HLRC indices client -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated include-type methods from HLRC indices client - anchor: remove_deprecated_include_type_methods_from_hlrc_indices_client - body: >- - We have a number of deprecated methods on the high-level Rest client's - `IndicesClient` that take server-side object classes and allow users to - passthe `include_type_name` parameter. These all have equivalent methods - thatuse HLRC classes instead, the only difference being the lack of the - typesparameter. - - This commit removes these deprecated methods. diff --git a/docs/changelog/48632.yaml b/docs/changelog/48632.yaml deleted file mode 100644 index b476dd93822b5..0000000000000 --- a/docs/changelog/48632.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 48632 -issues: - - 41059 -area: Features/Indices APIs, Mapping -type: breaking -summary: Remove `include_type_name` parameter from REST layer -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `include_type_name` parameter from REST layer - anchor: remove_include_type_name_parameter_from_rest_layer - body: >- - This commit removes support for the `include_type_name` parameter from - allREST actions that receive or return mapping configurations. - - Relates to #41059 diff --git a/docs/changelog/48725.yaml b/docs/changelog/48725.yaml deleted file mode 100644 index dcd94770dfb87..0000000000000 --- a/docs/changelog/48725.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 48725 -issues: - - 48604 -area: Search -type: breaking -summary: Remove deprecated vector functions. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated vector functions. - anchor: remove_deprecated_vector_functions_ - body: "Follow up to #48604. This PR removes the deprecated vector function - signaturesof the form `cosineSimilarity(query, doc['field'])`." diff --git a/docs/changelog/48781.yaml b/docs/changelog/48781.yaml deleted file mode 100644 index 394448821ac18..0000000000000 --- a/docs/changelog/48781.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 48781 -issues: - - 48368 -area: Search -type: breaking -summary: Remove support for sparse vectors. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for sparse vectors. - anchor: remove_support_for_sparse_vectors_ - body: "Follow up to #48368. This PR removes support for `sparse_vector` on - newindices. On 7.x indices a `sparse_vector` can still be defined, but it is - notpossible to index or search on it." diff --git a/docs/changelog/48927.yaml b/docs/changelog/48927.yaml deleted file mode 100644 index f0285f771f9ab..0000000000000 --- a/docs/changelog/48927.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 48927 -issues: - - 40366 -area: Infra/Core -type: UNKNOWN -summary: "[#40366] Silence some lint warnings in server project" -versions: - - v8.0.0 diff --git a/docs/changelog/48949.yaml b/docs/changelog/48949.yaml deleted file mode 100644 index 586587358d510..0000000000000 --- a/docs/changelog/48949.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 48949 -issues: [] -area: Features/ILM+SLM -type: UNKNOWN -summary: Add ILM package info documentation -versions: - - v8.0.0 diff --git a/docs/changelog/49079.yaml b/docs/changelog/49079.yaml deleted file mode 100644 index 38a675ca69400..0000000000000 --- a/docs/changelog/49079.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 49079 -issues: [] -area: Packaging -type: UNKNOWN -summary: Migrate some of the Docker tests from old repository -versions: - - v8.0.0 diff --git a/docs/changelog/49460.yaml b/docs/changelog/49460.yaml deleted file mode 100644 index f5db89b06ca2f..0000000000000 --- a/docs/changelog/49460.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 49460 -issues: - - 21009 -area: Features/Indices APIs, Features/Java High Level REST Client -type: breaking -summary: Remove the 'template' field in index templates. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the 'template' field in index templates. - anchor: remove_the_template_field_in_index_templates_ - body: >- - The `template` field was deprecated in 6.0 in favor of `index_patterns`, and - cannow be removed. - - Relates to #21009. diff --git a/docs/changelog/49728.yaml b/docs/changelog/49728.yaml deleted file mode 100644 index e7b95073609b0..0000000000000 --- a/docs/changelog/49728.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 49728 -issues: - - 40366 -area: Infra/Core -type: UNKNOWN -summary: Silence lint warnings in server project - part 2 -versions: - - v8.0.0 diff --git a/docs/changelog/50067.yaml b/docs/changelog/50067.yaml deleted file mode 100644 index ea695be84c442..0000000000000 --- a/docs/changelog/50067.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 50067 -issues: - - 49474 -area: License -type: enhancement -summary: Support "accept_enterprise" param in get license -versions: - - v8.0.0 diff --git a/docs/changelog/50277.yaml b/docs/changelog/50277.yaml deleted file mode 100644 index 3481b56b39cd7..0000000000000 --- a/docs/changelog/50277.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 50277 -issues: - - 49926 - - 46166 -area: Packaging -type: UNKNOWN -summary: Make the Docker build more re-usable in Cloud -versions: - - v8.0.0 diff --git a/docs/changelog/50359.yaml b/docs/changelog/50359.yaml deleted file mode 100644 index 0a15ad8fcc70c..0000000000000 --- a/docs/changelog/50359.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 50359 -issues: - - 50248 -area: Task Management, Mapping -type: bug -summary: Fixes to task result index mapping -versions: - - v8.0.0 diff --git a/docs/changelog/50415.yaml b/docs/changelog/50415.yaml deleted file mode 100644 index 2ebc4f253ec5c..0000000000000 --- a/docs/changelog/50415.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 50415 -issues: [] -area: Engine -type: enhancement -summary: Always use soft-deletes in `InternalEngine` -versions: - - v8.0.0 diff --git a/docs/changelog/50594.yaml b/docs/changelog/50594.yaml deleted file mode 100644 index faf11bf933893..0000000000000 --- a/docs/changelog/50594.yaml +++ /dev/null @@ -1,24 +0,0 @@ -pr: 50594 -issues: - - 50499 - - 50088 -area: Infra/Core -type: breaking -summary: Remove the 'local' parameter of /_cat/nodes -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the 'local' parameter of /_cat/nodes - anchor: remove_the_local_parameter_of_cat_nodes - body: >- - The cat nodes API performs a `ClusterStateAction` then a - `NodesInfoAction`.Today it accepts the `?local` parameter and passes this to - the`ClusterStateAction` but this parameter has no effect on the - `NodesInfoAction`.This is surprising, because `GET _cat/nodes?local` looks - like it might be acompletely local call but in fact it still depends on - every node in thecluster. - - This parameter was deprecated in 7.x in #50499 and this commit removes it. - - Relates #50088 diff --git a/docs/changelog/50739.yaml b/docs/changelog/50739.yaml deleted file mode 100644 index 0480d37bb8e0a..0000000000000 --- a/docs/changelog/50739.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 50739 -issues: - - 41059 -area: CRUD, Mapping -type: breaking-java -summary: Remove type parameter from CIR.mapping(type, object...) -versions: - - v8.0.0 -breaking: - notable: false - title: Remove type parameter from CIR.mapping(type, object...) - anchor: remove_type_parameter_from_cir_mapping_type_object_ - body: >- - This commit removes the `type` parameter from - `CreateIndexRequest.mapping(type, object...)`,and the associated delegating - method on `CreateIndexRequestBuilder`. To make migrationsimpler, the - method on `CreateIndexRequest` is renamed to `mappingFromSimplifiedDef`, - andon `CreateIndexRequestBuilder` to `setMapping`; this should help the - compiler catch all necessary changes on upgrades. - - Relates to #41059 diff --git a/docs/changelog/50844.yaml b/docs/changelog/50844.yaml deleted file mode 100644 index fefda932e2072..0000000000000 --- a/docs/changelog/50844.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 50844 -issues: - - 41059 -area: Mapping -type: breaking-java -summary: Remove type parameter from `PutMappingRequest.buildFromSimplifiedDef()` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove type parameter from `PutMappingRequest.buildFromSimplifiedDef()` - anchor: remove_type_parameter_from_putmappingrequest_buildfromsimplifieddef_ - body: >- - Mappings built by this method should all be wrapped with `_doc`, so there's - no needto pass the type any more. This also renames the method to - `simpleMapping`, in linewith `CreateIndexRequest`, to help migration by - causing compilation errors; and changesthe signature to take a `String...` - rather than an `Object...`. - - Relates to #41059 diff --git a/docs/changelog/50882.yaml b/docs/changelog/50882.yaml deleted file mode 100644 index c0e705335f398..0000000000000 --- a/docs/changelog/50882.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 50882 -issues: - - 50835 - - 50776 -area: Distributed -type: breaking, breaking-java -summary: Goodbye and thank you synced flush! -versions: - - v8.0.0 -breaking: - notable: false - title: Goodbye and thank you synced flush! - anchor: goodbye_and_thank_you_synced_flush_ - body: >- - Synced flush was a brilliant idea. It supports instant recoveries with a - quite small implementation. However, with the presence of sequence numbers - and retention leases, it is no longer needed. This change removes it from - 8.0. - - Depends on #50835Relates #50776 diff --git a/docs/changelog/51189.yaml b/docs/changelog/51189.yaml deleted file mode 100644 index ccba715ccc895..0000000000000 --- a/docs/changelog/51189.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 51189 -issues: - - 50775 -area: Recovery -type: enhancement -summary: Use Lucene index in peer recovery and resync -versions: - - v8.0.0 diff --git a/docs/changelog/51195.yaml b/docs/changelog/51195.yaml deleted file mode 100644 index 9f799fee092a1..0000000000000 --- a/docs/changelog/51195.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 51195 -issues: - - 37614 -area: Authentication -type: breaking -summary: Make order setting mandatory for Realm config -versions: - - v8.0.0 -breaking: - notable: false - title: Make order setting mandatory for Realm config - anchor: make_order_setting_mandatory_for_realm_config - body: >- - The order parameter must be explicitly specified for each realm.This is a - breaking change and will start take effect in 8.0 - - Resolves: #37614 diff --git a/docs/changelog/51219.yaml b/docs/changelog/51219.yaml deleted file mode 100644 index e1817487b1fc2..0000000000000 --- a/docs/changelog/51219.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 51219 -issues: [] -area: Mapping -type: breaking-java -summary: Remove unused parameter from `MetadataFieldMapper.TypeParser#getDefault()` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove unused parameter from `MetadataFieldMapper.TypeParser#getDefault()` - anchor: remove_unused_parameter_from_metadatafieldmapper_typeparser_getdefault_ - body: This addresses a very old TODO comment in - `MetadataFieldMapper.TypeParser`; passingin a previously constructed field - mapper here was a hack in order to provide access toprebuilt analyzers for - the `AllFieldType`; this has now been removed, so we can removethe parameter - from this method signature. diff --git a/docs/changelog/51417.yaml b/docs/changelog/51417.yaml deleted file mode 100644 index f0e41bed5adce..0000000000000 --- a/docs/changelog/51417.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 51417 -issues: - - 50775 -area: Engine -type: enhancement -summary: Remove translog retention policy -versions: - - v8.0.0 diff --git a/docs/changelog/51421.yaml b/docs/changelog/51421.yaml deleted file mode 100644 index 0d062a2f3efad..0000000000000 --- a/docs/changelog/51421.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 51421 -issues: - - 49581 -area: EQL -type: UNKNOWN -summary: Merge EQL dev branch to master -versions: - - v8.0.0 diff --git a/docs/changelog/51697.yaml b/docs/changelog/51697.yaml deleted file mode 100644 index e2f2359b7f2e4..0000000000000 --- a/docs/changelog/51697.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 51697 -issues: - - 50775 -area: Engine -type: breaking -summary: Remove translog retention settings -versions: - - v8.0.0 -breaking: - notable: false - title: Remove translog retention settings - anchor: remove_translog_retention_settings - body: >- - The translog retention settings `index.translog.retention.size` and - `index.translog.retention.age` were effectively - [ignored](https://github.com/elastic/elasticsearch/pull/45868) in 7.4, - [deprecated](https://github.com/elastic/elasticsearch/pull/51588) in 7.7, - and now removed in 8.0 in favor of soft-deletes. - - Closes #50775 diff --git a/docs/changelog/51704.yaml b/docs/changelog/51704.yaml deleted file mode 100644 index 7450395c9b623..0000000000000 --- a/docs/changelog/51704.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 51704 -issues: - - 51703 -area: Docs Infrastructure -type: UNKNOWN -summary: Remove docs related to index time boosting -versions: - - v8.0.0 diff --git a/docs/changelog/51716.yaml b/docs/changelog/51716.yaml deleted file mode 100644 index 771e8a34e9e04..0000000000000 --- a/docs/changelog/51716.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 51716 -issues: - - 51480 -area: Packaging -type: breaking -summary: Remove SysV init support -versions: - - v8.0.0 -breaking: - notable: false - title: Remove SysV init support - anchor: remove_sysv_init_support - body: >- - With the removal of support for older OSes, we no longer have anysupported - systems which use SysV init. This commit removes support forthat legacy init - system. - - relates #51480 diff --git a/docs/changelog/52208.yaml b/docs/changelog/52208.yaml deleted file mode 100644 index 3cc7871395a16..0000000000000 --- a/docs/changelog/52208.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 52208 -issues: - - 50536 - - 47345 -area: Features/Stats -type: enhancement -summary: Add Bulk stats track the bulk per shard -versions: - - v8.0.0 diff --git a/docs/changelog/52257.yaml b/docs/changelog/52257.yaml deleted file mode 100644 index 0ae662bfaeaf3..0000000000000 --- a/docs/changelog/52257.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 52257 -issues: - - 51871 -area: Aggregations -type: breaking -summary: "Percentiles aggregation: disallow specifying same percentile values twice" -versions: - - v8.0.0 -breaking: - notable: false - title: "Percentiles aggregation: disallow specifying same percentile values twice" - anchor: percentiles_aggregation_disallow_specifying_same_percentile_values_twice - body: |- - disallows specifying same percentile values twice and throws an exception. - Note: As this is a breaking change, it goes only into 8.0Related: #51871 diff --git a/docs/changelog/52280.yaml b/docs/changelog/52280.yaml deleted file mode 100644 index 9f33b30c6b456..0000000000000 --- a/docs/changelog/52280.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 52280 -issues: [] -area: Infra/Core -type: breaking -summary: Remove `fixed_auto_queue_size` threadpool type -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `fixed_auto_queue_size` threadpool type - anchor: remove_fixed_auto_queue_size_threadpool_type - body: >- - The `fixed_auto_queue_size` thread pool holds a fixed size of threads to - handle the requests with a bounded queue for pending requests that have no - threads to service them. It's similar to the `fixed` threadpool, however, - the `queue_size` automatically adjusts according to calculations based - on[Little's Law](https://en.wikipedia.org/wiki/Little%27s_law). This dynamic - adjustment was, by default, disabled for the two `fixed_auto_queue_size` - thread pools (`search` and `search_throttled`). - - As this feature was marked as experimental, and we are unaware of any users explicitly configuring this, we intent to deprecate it in ES 7 and remove it in ES 8. diff --git a/docs/changelog/52987.yaml b/docs/changelog/52987.yaml deleted file mode 100644 index e373a2d1208a2..0000000000000 --- a/docs/changelog/52987.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 52987 -issues: [] -area: Unknown -type: UNKNOWN -summary: Fix Javadoc comments in `QueryBuilders` -versions: - - v8.0.0 diff --git a/docs/changelog/53314.yaml b/docs/changelog/53314.yaml deleted file mode 100644 index 02da5dfc851f5..0000000000000 --- a/docs/changelog/53314.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 53314 -issues: - - 53049 -area: Infra/Core -type: breaking -summary: Remove the listener thread pool -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the listener thread pool - anchor: remove_the_listener_thread_pool - body: >- - This commit completes the work to remove the listener thread pool, having - removed all uses of it in the server codebase, and deprecated it in 7.x. - With this commit, we also remove the infrastructgure to deprecate a fixed - thread pool, which was added as part of this work, since it is easy to bring - back if needed. - - Closes #53049 diff --git a/docs/changelog/53715.yaml b/docs/changelog/53715.yaml deleted file mode 100644 index bbd82cad67dcd..0000000000000 --- a/docs/changelog/53715.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 53715 -issues: - - 46702 -area: Infra/Logging -type: bug -summary: Fix NPE when logging null values in JSON -versions: - - v8.0.0 diff --git a/docs/changelog/53785.yaml b/docs/changelog/53785.yaml deleted file mode 100644 index 078ac9bff0af5..0000000000000 --- a/docs/changelog/53785.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 53785 -issues: - - 53751 -area: Cluster Coordination -type: bug -summary: Apply cluster states in system context -versions: - - v8.0.0 diff --git a/docs/changelog/53845.yaml b/docs/changelog/53845.yaml deleted file mode 100644 index 3476377f83ca1..0000000000000 --- a/docs/changelog/53845.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 53845 -issues: - - 51806 -area: Cluster Coordination -type: breaking -summary: Remove support for delaying state recovery pending master -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for delaying state recovery pending master - anchor: remove_support_for_delaying_state_recovery_pending_master - body: >- - The following settings are deprecated:* `gateway.expected_nodes`* - `gateway.expected_master_nodes`* `gateway.recover_after_nodes`* - `gateway.recover_after_master_nodes`This pull request removed these - settings. - - Closes #51806 diff --git a/docs/changelog/54175.yaml b/docs/changelog/54175.yaml deleted file mode 100644 index 7435ecc5a0598..0000000000000 --- a/docs/changelog/54175.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 54175 -issues: - - 53924 -area: Infra/Core, Distributed -type: breaking -summary: Remove the `cluster.remote.connect` setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the `cluster.remote.connect` setting - anchor: remove_the_cluster_remote_connect_setting - body: >- - In Elasticsearch 7.7.0, the setting cluster.remote.connect was deprecated. - In this commit, we remote the setting permanently in favor of setting - node.remote_cluster_client. - - Relates #53924 diff --git a/docs/changelog/54381.yaml b/docs/changelog/54381.yaml deleted file mode 100644 index 9a17051a3968e..0000000000000 --- a/docs/changelog/54381.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 54381 -issues: - - 54374 -area: Infra/Core -type: breaking -summary: Remove the node local storage setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the node local storage setting - anchor: remove_the_node_local_storage_setting - body: >- - In 7.8.0 the node.local_storage setting was deprecated in favor of requiring - all nodes to have a form of persistent storage. This commit removes the - node.local_storage setting. - - Relates #54374 diff --git a/docs/changelog/54753.yaml b/docs/changelog/54753.yaml deleted file mode 100644 index c8175231873cb..0000000000000 --- a/docs/changelog/54753.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 54753 -issues: - - 54744 -area: Aggregations -type: bug -summary: Fix `t_test` usage stats -versions: - - v8.0.0 diff --git a/docs/changelog/54904.yaml b/docs/changelog/54904.yaml deleted file mode 100644 index a5c8ecca9778c..0000000000000 --- a/docs/changelog/54904.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 54904 -issues: - - 54825 -area: Features/ILM+SLM -type: UNKNOWN -summary: Fix `IndexLifecycleExplainResponse` serialization version checks -versions: - - v8.0.0 diff --git a/docs/changelog/54953.yaml b/docs/changelog/54953.yaml deleted file mode 100644 index 808ca86da9ddd..0000000000000 --- a/docs/changelog/54953.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 54953 -issues: - - 54897 -area: Search -type: bug -summary: Check for negative "from" values in search request body -versions: - - v8.0.0 diff --git a/docs/changelog/55078.yaml b/docs/changelog/55078.yaml deleted file mode 100644 index c3b8826dad24a..0000000000000 --- a/docs/changelog/55078.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 55078 -issues: [] -area: Search -type: breaking -summary: Remove the object format for indices_boost. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the object format for indices_boost. - anchor: remove_the_object_format_for_indices_boost_ - body: This format has been deprecated since version 5.2. diff --git a/docs/changelog/55100.yaml b/docs/changelog/55100.yaml deleted file mode 100644 index edb83449ba75c..0000000000000 --- a/docs/changelog/55100.yaml +++ /dev/null @@ -1,14 +0,0 @@ -pr: 55100 -issues: - - 55099 -area: Features/Indices APIs -type: breaking, deprecation -summary: Remove local parameter for get field mapping request -versions: - - v8.0.0 -breaking: - notable: false - title: Remove local parameter for get field mapping request - anchor: remove_local_parameter_for_get_field_mapping_request - body: The local parameter of get field mapping request is [marked as deprecated - in 7.x](#55099).This PR removes it for the next major. diff --git a/docs/changelog/55109.yaml b/docs/changelog/55109.yaml deleted file mode 100644 index 9a051bafa9dd4..0000000000000 --- a/docs/changelog/55109.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 55109 -issues: - - 52640 -area: Infra/REST API -type: UNKNOWN -summary: Remove deprecated endpoints of hot threads API -versions: - - v8.0.0 diff --git a/docs/changelog/55181.yaml b/docs/changelog/55181.yaml deleted file mode 100644 index cdb66ae1dd612..0000000000000 --- a/docs/changelog/55181.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 55181 -issues: - - 54847 -area: Aggregations -type: bug -summary: Fix BWC issues for x_pack/usage -versions: - - v8.0.0 diff --git a/docs/changelog/55399.yaml b/docs/changelog/55399.yaml deleted file mode 100644 index 6739eb5390032..0000000000000 --- a/docs/changelog/55399.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 55399 -issues: - - 55378 -area: Search -type: bug -summary: Fix `VectorsFeatureSetUsage` serialization in BWC mode -versions: - - v8.0.0 diff --git a/docs/changelog/55489.yaml b/docs/changelog/55489.yaml deleted file mode 100644 index 403c1a82fae35..0000000000000 --- a/docs/changelog/55489.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 55489 -issues: - - 55411 - - 53101 -area: Features/Indices APIs -type: breaking -summary: Change prefer_v2_templates parameter to default to true -versions: - - v8.0.0 -breaking: - notable: false - title: Change prefer_v2_templates parameter to default to true - anchor: change_prefer_v2_templates_parameter_to_default_to_true - body: >- - As a followup to #55411, this commit changes the default for the - `?prefer_v2_templates` querystringparameter to be `true`. This means that V2 - templates will take precedence by default in 8.0+ - - Relates to #53101 diff --git a/docs/changelog/55544.yaml b/docs/changelog/55544.yaml deleted file mode 100644 index 97ec8aa767279..0000000000000 --- a/docs/changelog/55544.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 55544 -issues: [] -area: Security -type: enhancement -summary: Change default hashing algorithm for FIPS 140 -versions: - - v8.0.0 diff --git a/docs/changelog/55622.yaml b/docs/changelog/55622.yaml deleted file mode 100644 index 19ca158893774..0000000000000 --- a/docs/changelog/55622.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 55622 -issues: [] -area: Search -type: breaking -summary: Remove `use_field_mapping` format option for docvalue fields. -versions: - - v8.0.0 -breaking: - notable: false - title: Remove `use_field_mapping` format option for docvalue fields. - anchor: remove_use_field_mapping_format_option_for_docvalue_fields_ - body: In 7.0, we began formatting `docvalue_fields` by default using each - field'smapping definition. To ease the transition from 6.x, we added the - formatoption `use_field_mapping`. This parameter was deprecated in 7.0, and - we canremove it in 8.0. diff --git a/docs/changelog/55673.yaml b/docs/changelog/55673.yaml deleted file mode 100644 index e419969f7fec9..0000000000000 --- a/docs/changelog/55673.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 55673 -issues: - - 50836 - - 47990 -area: Cluster Coordination -type: breaking -summary: Remove node filters for voting config exclusions -versions: - - v8.0.0 -breaking: - notable: false - title: Remove node filters for voting config exclusions - anchor: remove_node_filters_for_voting_config_exclusions - body: >- - The use of node filters for excluding nodes from the voting configuration - wasdeprecated in #50836; this commit removes support for node filters in - this API. - - Closes #47990 diff --git a/docs/changelog/55736.yaml b/docs/changelog/55736.yaml deleted file mode 100644 index e199e52ab5eb8..0000000000000 --- a/docs/changelog/55736.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 55736 -issues: - - 54478 -area: Features/CAT APIs -type: UNKNOWN -summary: _cat/threadpool remove "size" and add "time" params -versions: - - v8.0.0 diff --git a/docs/changelog/56149.yaml b/docs/changelog/56149.yaml deleted file mode 100644 index e663610b52295..0000000000000 --- a/docs/changelog/56149.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 56149 -issues: - - 52103 -area: Infra/Scripting -type: enhancement -summary: Update `DeprecationMap` to `DynamicMap` -versions: - - v8.0.0 diff --git a/docs/changelog/56211.yaml b/docs/changelog/56211.yaml deleted file mode 100644 index 04b581652592e..0000000000000 --- a/docs/changelog/56211.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 56211 -issues: - - 54745 -area: Infra/Plugins -type: breaking -summary: Remove deprecated basic license feature enablement settings from 8.0 -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated basic license feature enablement settings from 8.0 - anchor: remove_deprecated_basic_license_feature_enablement_settings_from_8_0 - body: >- - In 7.8.0, we deprecated the settings for disabling basic license feature - APIs. This PR removes those settings altogether for 8.0. This is a breaking - change: if these options appear in `elasticsearch.yml`, they will no longer - be recognized. - - Meta issue: #54745 diff --git a/docs/changelog/57200.yaml b/docs/changelog/57200.yaml deleted file mode 100644 index c4ad5e335e33a..0000000000000 --- a/docs/changelog/57200.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 57200 -issues: [] -area: Search -type: UNKNOWN -summary: Remove deprecated `SimpleQueryStringBuilder` parameters -versions: - - v8.0.0 diff --git a/docs/changelog/57591.yaml b/docs/changelog/57591.yaml deleted file mode 100644 index e999ed1935cc5..0000000000000 --- a/docs/changelog/57591.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 57591 -issues: - - 56171 -area: Infra/Logging -type: breaking -summary: Remove slowlog level -versions: - - v8.0.0 -breaking: - notable: false - title: Remove slowlog level - anchor: remove_slowlog_level - body: Setting a slow log level requires an unnecessary conditional logic in - `SearchSlowLog` and `IndexingSlowLog`The behaviour of setting a level on a - slow logger can be achieved with correct slow log threshold settings. This - PR is removing slow log and modifies tests to achieve the same behaviour - with changing threshold.relates - https://github.com/elastic/elasticsearch/issues/56171 diff --git a/docs/changelog/57594.yaml b/docs/changelog/57594.yaml deleted file mode 100644 index e267512cfff0b..0000000000000 --- a/docs/changelog/57594.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 57594 -issues: [] -area: SQL -type: enhancement -summary: Use java String methods for LTRIM/RTRIM -versions: - - v8.0.0 diff --git a/docs/changelog/58220.yaml b/docs/changelog/58220.yaml deleted file mode 100644 index 11e5d923a3f88..0000000000000 --- a/docs/changelog/58220.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 58220 -issues: - - 58217 -area: License -type: enhancement -summary: Add deprecated `accept_enterprise` param to /_xpack -versions: - - v8.0.0 diff --git a/docs/changelog/58387.yaml b/docs/changelog/58387.yaml deleted file mode 100644 index 88abfc185c579..0000000000000 --- a/docs/changelog/58387.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 58387 -issues: [] -area: Features/Data streams -type: UNKNOWN -summary: "Adjust version after backporting #57675" -versions: - - v8.0.0 diff --git a/docs/changelog/58732.yaml b/docs/changelog/58732.yaml deleted file mode 100644 index 0725b96304ce9..0000000000000 --- a/docs/changelog/58732.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 58732 -issues: - - 58682 -area: Machine Learning -type: bug -summary: Remove erroneous licence -versions: - - v8.0.0 diff --git a/docs/changelog/58779.yaml b/docs/changelog/58779.yaml deleted file mode 100644 index 9508cb941f01d..0000000000000 --- a/docs/changelog/58779.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 58779 -issues: - - 58521 -area: Mapping -type: bug -summary: Remove assertions that mappings have one top-level key. -versions: - - v8.0.0 diff --git a/docs/changelog/59262.yaml b/docs/changelog/59262.yaml deleted file mode 100644 index 74984d6946a60..0000000000000 --- a/docs/changelog/59262.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 59262 -issues: - - 50152 -area: Infra/Scripting -type: breaking -summary: Remove general cache settings -versions: - - v8.0.0 -breaking: - notable: false - title: Remove general cache settings - anchor: remove_general_cache_settings - body: >- - Removed settings: * `script.cache.max_size` * `script.cache.expire` * - `script.max_compilations_rate` - - Refs: #50152 diff --git a/docs/changelog/59265.yaml b/docs/changelog/59265.yaml deleted file mode 100644 index 734f331e51d6b..0000000000000 --- a/docs/changelog/59265.yaml +++ /dev/null @@ -1,25 +0,0 @@ -pr: 59265 -issues: - - 59262 - - 50152 -area: Infra/Scripting -type: breaking -summary: Move `script_cache` into _nodes/stats -versions: - - v8.0.0 -breaking: - notable: false - title: Move `script_cache` into _nodes/stats - anchor: move_script_cache_into_nodes_stats - body: >- - Pending: #59262 - - Updated `_nodes/stats`: * Remove `script_cache` * Update `script` in `_node/stats` to include stats per context: - - [source] - - ---- "script": { "compilations": 1, "cache_evictions": 0, "compilation_limit_triggered": 0, "contexts":[ { "context": "aggregation_selector", "compilations": 0, "cache_evictions": 0, "compilation_limit_triggered": 0 }, - - ---- - - Refs: #50152 diff --git a/docs/changelog/59336.yaml b/docs/changelog/59336.yaml deleted file mode 100644 index ed385d6715a9c..0000000000000 --- a/docs/changelog/59336.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 59336 -issues: [] -area: Unknown -type: UNKNOWN -summary: "Re-enable bwc from #59265" -versions: - - v8.0.0 diff --git a/docs/changelog/59349.yaml b/docs/changelog/59349.yaml deleted file mode 100644 index 03e1a71615d65..0000000000000 --- a/docs/changelog/59349.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 59349 -issues: - - 44505 -area: Rollup -type: enhancement -summary: Adds support for `date_nanos` in Rollup Metric and `DateHistogram` Configs -versions: - - v8.0.0 diff --git a/docs/changelog/59475.yaml b/docs/changelog/59475.yaml deleted file mode 100644 index abbb828d95520..0000000000000 --- a/docs/changelog/59475.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 59475 -issues: [] -area: Aggregations -type: bug -summary: Fix `DoubleBounds` null serialization -versions: - - v8.0.0 diff --git a/docs/changelog/59501.yaml b/docs/changelog/59501.yaml deleted file mode 100644 index 58c7185db5b2a..0000000000000 --- a/docs/changelog/59501.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 59501 -issues: - - 59386 - - 54441 -area: Geo -type: bug -summary: Preprocess polygon rings before processing it for decomposition. -versions: - - v8.0.0 diff --git a/docs/changelog/59507.yaml b/docs/changelog/59507.yaml deleted file mode 100644 index df70308b5762b..0000000000000 --- a/docs/changelog/59507.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 59507 -issues: - - 59391 -area: Infra/Scripting -type: breaking -summary: Consolidate script parsing from object -versions: - - v8.0.0 -breaking: - notable: false - title: Consolidate script parsing from object - anchor: consolidate_script_parsing_from_object - body: >- - The update by query action parses a script from an object (map or string). - We will need to do the same for runtime fields as they are parsed as part of - mappings (#59391). - - This commit moves the existing parsing of a script from an object from RestUpdateByQueryAction to the Script class. It also adds tests and adjusts some error messages that are incorrect. Also, options were not parsed before and they are now. And unsupported fields are no longer silently ignored. - - I plan on backporting this change to 7.x without the handling for unsupported fields, as that is a breaking change. diff --git a/docs/changelog/59698.yaml b/docs/changelog/59698.yaml deleted file mode 100644 index 628fc6d495801..0000000000000 --- a/docs/changelog/59698.yaml +++ /dev/null @@ -1,16 +0,0 @@ -pr: 59698 -issues: - - 48366 -area: Recovery -type: breaking -summary: Remove dangling index auto import functionality -versions: - - v8.0.0 -breaking: - notable: false - title: Remove dangling index auto import functionality - anchor: remove_dangling_index_auto_import_functionality - body: > - Closes #48366. Remove all traces of automatically importing dangling - indices. This change will not be backported, though this functionality is - deprecated as of 7.9.0. diff --git a/docs/changelog/59870.yaml b/docs/changelog/59870.yaml deleted file mode 100644 index 5e93e23f72bb6..0000000000000 --- a/docs/changelog/59870.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 59870 -issues: - - 48170 - - 35958 -area: Machine Learning -type: deprecation -summary: Remove deprecated `_xpack` endpoints -versions: - - v8.0.0 diff --git a/docs/changelog/59949.yaml b/docs/changelog/59949.yaml deleted file mode 100644 index 244d74eb2b23d..0000000000000 --- a/docs/changelog/59949.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 59949 -issues: [] -area: Infra/Core -type: UNKNOWN -summary: Remove unused deprecate method in `FormatNames` -versions: - - v8.0.0 diff --git a/docs/changelog/60044.yaml b/docs/changelog/60044.yaml deleted file mode 100644 index 07068fdb2bbd5..0000000000000 --- a/docs/changelog/60044.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 60044 -issues: [] -area: Infra/Core -type: UNKNOWN -summary: Remove camel case named formats -versions: - - v8.0.0 diff --git a/docs/changelog/60158.yaml b/docs/changelog/60158.yaml deleted file mode 100644 index df4f89c7e2ddd..0000000000000 --- a/docs/changelog/60158.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 60158 -issues: - - 60001 -area: Infra/Scripting -type: UNKNOWN -summary: Expose all doc field str const accesses -versions: - - v8.0.0 diff --git a/docs/changelog/60351.yaml b/docs/changelog/60351.yaml deleted file mode 100644 index ff1440201604f..0000000000000 --- a/docs/changelog/60351.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 60351 -issues: - - 59683 -area: Search -type: bug -summary: Improve error msg for CCS request on node without remote cluster role -versions: - - v8.0.0 diff --git a/docs/changelog/60505.yaml b/docs/changelog/60505.yaml deleted file mode 100644 index f83f0a7ba744a..0000000000000 --- a/docs/changelog/60505.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 60505 -issues: [] -area: Recovery, Snapshot/Restore -type: enhancement -summary: Add recovery state tracking for Searchable Snapshots -versions: - - v8.0.0 diff --git a/docs/changelog/60873.yaml b/docs/changelog/60873.yaml deleted file mode 100644 index 8cb802fd2db8f..0000000000000 --- a/docs/changelog/60873.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 60873 -issues: - - 60872 -area: Cluster Coordination -type: breaking, enhancement -summary: Remove join timeout -versions: - - v8.0.0 -breaking: - notable: false - title: Remove join timeout - anchor: remove_join_timeout - body: >- - There is no point in timing out a join attempt any more. Timing out - andretrying with the same master is pointless, and an in-flight joinattempt - to one master no longer blocks attempts to join other masters.This commit - removes this unnecessary setting. - - Relates #60872 in which this setting was deprecated. diff --git a/docs/changelog/61043.yaml b/docs/changelog/61043.yaml deleted file mode 100644 index 499777e59f418..0000000000000 --- a/docs/changelog/61043.yaml +++ /dev/null @@ -1,15 +0,0 @@ -pr: 61043 -issues: [] -area: Infra/REST API -type: breaking, enhancement -summary: Remove content type required setting -versions: - - v8.0.0 -breaking: - notable: false - title: Remove content type required setting - anchor: remove_content_type_required_setting - body: This change removes the HTTP content type required setting, which - wasdeprecated in 6.0 and only existed for users upgrading from 5.x so - thatthey did not need to remove the setting immediately. The setting has - noeffect on behavior. diff --git a/docs/changelog/61259.yaml b/docs/changelog/61259.yaml deleted file mode 100644 index 684f847a5090a..0000000000000 --- a/docs/changelog/61259.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 61259 -issues: - - 60889 -area: Features/Java High Level REST Client, Infra/Logging -type: UNKNOWN -summary: Avoid `StackOverflowError` due to regex alternate paths -versions: - - v8.0.0 diff --git a/docs/changelog/61427.yaml b/docs/changelog/61427.yaml deleted file mode 100644 index b3757681505d2..0000000000000 --- a/docs/changelog/61427.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 61427 -issues: [] -area: Infra/REST API, SQL -type: breaking -summary: Allow parsing Content-Type and Accept headers with version -versions: - - v8.0.0 -breaking: - notable: false - title: Allow parsing Content-Type and Accept headers with version - anchor: allow_parsing_content_type_and_accept_headers_with_version - body: >- - Content-Type and Accept headers expect a versioned form of media typeslike - application/vnd.elasticsearch+json;compatible-with=7when previously it was - simple application/json or (cbor, yaml..) - it is stillsupported - - next step after https://github.com/elastic/elasticsearch/pull/61987relates https://github.com/elastic/elasticsearch/pull/60516 diff --git a/docs/changelog/61428.yaml b/docs/changelog/61428.yaml deleted file mode 100644 index ad9c16ca6bdbf..0000000000000 --- a/docs/changelog/61428.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 61428 -issues: - - 59764 - - 59779 -area: EQL -type: UNKNOWN -summary: Replace `SearchHit` in response with Event -versions: - - v8.0.0 diff --git a/docs/changelog/61508.yaml b/docs/changelog/61508.yaml deleted file mode 100644 index 53a9043ae7f5d..0000000000000 --- a/docs/changelog/61508.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 61508 -issues: [] -area: Infra/Scripting -type: bug -summary: Fixes casting in constant folding -versions: - - v8.0.0 diff --git a/docs/changelog/61594.yaml b/docs/changelog/61594.yaml deleted file mode 100644 index 4f523a60f5960..0000000000000 --- a/docs/changelog/61594.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 61594 -issues: [] -area: Infra/Scripting -type: bug -summary: Several minor Painless fixes -versions: - - v8.0.0 diff --git a/docs/changelog/61825.yaml b/docs/changelog/61825.yaml deleted file mode 100644 index 10c921219b4a1..0000000000000 --- a/docs/changelog/61825.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 61825 -issues: [] -area: Infra/Scripting -type: bug -summary: Change compound assignment structure to support String concatenation -versions: - - v8.0.0 diff --git a/docs/changelog/62156.yaml b/docs/changelog/62156.yaml deleted file mode 100644 index eead4d3acf54f..0000000000000 --- a/docs/changelog/62156.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 62156 -issues: [] -area: Infra/Logging -type: UNKNOWN -summary: Populate data stream fields when `xOpaqueId` not provided -versions: - - v8.0.0 diff --git a/docs/changelog/62309.yaml b/docs/changelog/62309.yaml deleted file mode 100644 index 18da3f70e5ab8..0000000000000 --- a/docs/changelog/62309.yaml +++ /dev/null @@ -1,17 +0,0 @@ -pr: 62309 -issues: - - 62297 -area: Snapshot/Restore -type: breaking -summary: Remove Repository Stats API -versions: - - v8.0.0 -breaking: - notable: false - title: Remove Repository Stats API - anchor: remove_repository_stats_api - body: >- - Now the Repository Stats API is deprecated in 7.10.0 (#62297) we can remove - it in 8.0.0. - - I'm labeling this as `>breaking` to respect the development process but we're talking about an experimental API that was never released(behind a feature flag). diff --git a/docs/changelog/62468.yaml b/docs/changelog/62468.yaml deleted file mode 100644 index ddf1cabd3df97..0000000000000 --- a/docs/changelog/62468.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 62468 -issues: [] -area: Infra/REST API -type: UNKNOWN -summary: Adds quotes to timestamp values in runtime_fields/40_date YAML test -versions: - - v8.0.0 diff --git a/docs/changelog/62639.yaml b/docs/changelog/62639.yaml deleted file mode 100644 index 13aee779a9b83..0000000000000 --- a/docs/changelog/62639.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 62639 -issues: - - 62623 -area: Mapping -type: deprecation -summary: Remove mapping boost parameter entirely -versions: - - v8.0.0 diff --git a/docs/changelog/62646.yaml b/docs/changelog/62646.yaml deleted file mode 100644 index 1f9c46055090c..0000000000000 --- a/docs/changelog/62646.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 62646 -issues: [] -area: Mapping -type: enhancement -summary: Sparse vector to throw exception consistently -versions: - - v8.0.0 diff --git a/docs/changelog/63038.yaml b/docs/changelog/63038.yaml deleted file mode 100644 index 365affec62754..0000000000000 --- a/docs/changelog/63038.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 63038 -issues: [] -area: Features/ILM+SLM -type: UNKNOWN -summary: Move SLM history to data stream -versions: - - v8.0.0 diff --git a/docs/changelog/63384.yaml b/docs/changelog/63384.yaml deleted file mode 100644 index a38146b68fc07..0000000000000 --- a/docs/changelog/63384.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 63384 -issues: - - 60707 -area: Infra/Core -type: UNKNOWN -summary: Removes `week_year` date format -versions: - - v8.0.0 diff --git a/docs/changelog/63660.yaml b/docs/changelog/63660.yaml deleted file mode 100644 index 29464f827c8b9..0000000000000 --- a/docs/changelog/63660.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 63660 -issues: - - 63545 -area: Infra/REST API -type: UNKNOWN -summary: "Wraps values containing : in `runtime_fields` test in quotes" -versions: - - v8.0.0 diff --git a/docs/changelog/63692.yaml b/docs/changelog/63692.yaml deleted file mode 100644 index ffd2df5796614..0000000000000 --- a/docs/changelog/63692.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 63692 -issues: - - 63680 -area: Search -type: breaking, bug -summary: Fix range query on date fields for number inputs -versions: - - v8.0.0 -breaking: - notable: false - title: Fix range query on date fields for number inputs - anchor: fix_range_query_on_date_fields_for_number_inputs - body: >- - Currently, if you write a date range query with numeric 'to' or 'from' - bounds,they can be interpreted as years if no format is provided. We - use"strict_date_optional_time||epoch_millis" in this case that can interpret - inputslike 1000 as the year 1000 for example. We should change this to - alwaysinterpret and parse numbers in this case with the second option - "epoch_millis"if no other formatter was provided. - - Closes #63680 diff --git a/docs/changelog/64252.yaml b/docs/changelog/64252.yaml deleted file mode 100644 index 1f55e85435cd8..0000000000000 --- a/docs/changelog/64252.yaml +++ /dev/null @@ -1,12 +0,0 @@ -pr: 64252 -issues: [] -area: Features/Watcher -type: breaking, enhancement -summary: Move watcher history to data stream -versions: - - v8.0.0 -breaking: - notable: false - title: Move watcher history to data stream - anchor: move_watcher_history_to_data_stream - body: This change moves watcher history to data stream. diff --git a/docs/changelog/64327.yaml b/docs/changelog/64327.yaml deleted file mode 100644 index 67ef3c51e5a6a..0000000000000 --- a/docs/changelog/64327.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64327 -issues: - - 868 -area: Machine Learning -type: bug -summary: Handle null value of `FieldCapabilitiesResponse` -versions: - - v8.0.0 diff --git a/docs/changelog/64406.yaml b/docs/changelog/64406.yaml deleted file mode 100644 index 796dd65ff48f5..0000000000000 --- a/docs/changelog/64406.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64406 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Introduce per REST endpoint media types -versions: - - v8.0.0 diff --git a/docs/changelog/64423.yaml b/docs/changelog/64423.yaml deleted file mode 100644 index 72748dac59694..0000000000000 --- a/docs/changelog/64423.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64423 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Allow registering compatible handlers -versions: - - v8.0.0 diff --git a/docs/changelog/64472.yaml b/docs/changelog/64472.yaml deleted file mode 100644 index 63aa29df5bbfa..0000000000000 --- a/docs/changelog/64472.yaml +++ /dev/null @@ -1,21 +0,0 @@ -pr: 64472 -issues: - - 63843 -area: Infra/Logging, Audit -type: breaking -summary: Compress audit logs -versions: - - v8.0.0 -breaking: - notable: false - title: Compress audit logs - anchor: compress_audit_logs - body: >- - audit logs should be compressed when rolling over due to size - basedtriggering policy breaching 1GB.Files are not being deleted. - - closes #63843 - - - - - Have you signed the [contributor license agreement](https://www.elastic.co/contributor-agreement)?- Have you followed the [contributor guidelines](https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md)?- If submitting code, have you built your formula locally prior to submission with `gradle check`?- If submitting code, is your pull request against master? Unless there is a good reason otherwise, we prefer pull requests against master and will backport as needed.- If submitting code, have you checked that your submission is for an [OS and architecture that we support](https://www.elastic.co/support/matrix#show_os)?- If you are submitting this code for a class then read our [policy](https://github.com/elastic/elasticsearch/blob/master/CONTRIBUTING.md#contributing-as-part-of-a-class) for that. diff --git a/docs/changelog/64481.yaml b/docs/changelog/64481.yaml deleted file mode 100644 index eda678367bd62..0000000000000 --- a/docs/changelog/64481.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64481 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Introduce Compatible Version plugin -versions: - - v8.0.0 diff --git a/docs/changelog/64650.yaml b/docs/changelog/64650.yaml deleted file mode 100644 index c25103dabbfdd..0000000000000 --- a/docs/changelog/64650.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64650 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Do not allow spaces within `MediaType's` parameters -versions: - - v8.0.0 diff --git a/docs/changelog/64708.yaml b/docs/changelog/64708.yaml deleted file mode 100644 index daeff9b68b9a6..0000000000000 --- a/docs/changelog/64708.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 64708 -issues: - - 64689 - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Handle incorrect header values -versions: - - v8.0.0 diff --git a/docs/changelog/64721.yaml b/docs/changelog/64721.yaml deleted file mode 100644 index c8f726400df6a..0000000000000 --- a/docs/changelog/64721.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 64721 -issues: - - 64689 - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Ignore media ranges when parsing -versions: - - v8.0.0 diff --git a/docs/changelog/64732.yaml b/docs/changelog/64732.yaml deleted file mode 100644 index 1e5acaad2db47..0000000000000 --- a/docs/changelog/64732.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 64732 -issues: - - 21337 -area: Features/Indices APIs -type: breaking -summary: Remove deprecated `_upgrade` API -versions: - - v8.0.0 -breaking: - notable: false - title: Remove deprecated `_upgrade` API - anchor: remove_deprecated_upgrade_api - body: >- - The `_upgrade` API has been superseded by the `_reindex` API and was - deprecated in 7.11.0. This commit removes it completely for the 8.0.0 - release. - - Resolves #21337 diff --git a/docs/changelog/64794.yaml b/docs/changelog/64794.yaml deleted file mode 100644 index 2213a3153f7df..0000000000000 --- a/docs/changelog/64794.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64794 -issues: - - 62198 -area: Features/CAT APIs -type: deprecation -summary: Adjust deprecation version after backport -versions: - - v8.0.0 diff --git a/docs/changelog/64867.yaml b/docs/changelog/64867.yaml deleted file mode 100644 index 319351f3be88d..0000000000000 --- a/docs/changelog/64867.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 64867 -issues: [] -area: Features/CAT APIs -type: breaking -summary: Remove the deprecated local parameter for _cat/shards -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the deprecated local parameter for _cat/shards - anchor: remove_the_deprecated_local_parameter_for_cat_shards - body: >- - The cat shards API performs a `ClusterStateAction` and then an - `IndicesStatsAction`. Today it accepts the `?local` parameter and passes - this to the `ClusterStateAction` but this parameter has no effect on the - `IndicesStatsAction`. This can be surprising because `GET _cat/shards?local` - looks like it might be a completely local call but in fact it still depends - on every node in the cluster. - - The `local` parameter was deprecated in 7.x and this commit removes it for 8.x. diff --git a/docs/changelog/64868.yaml b/docs/changelog/64868.yaml deleted file mode 100644 index debb75e6cff86..0000000000000 --- a/docs/changelog/64868.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 64868 -issues: [] -area: Features/CAT APIs -type: breaking -summary: Remove the deprecated local parameter for _cat/indices -versions: - - v8.0.0 -breaking: - notable: false - title: Remove the deprecated local parameter for _cat/indices - anchor: remove_the_deprecated_local_parameter_for_cat_indices - body: >- - The cat indices API performs several actions including an - `IndicesStatsAction`. Today it accepts the `?local` parameter and passes it - to the actions that support it but this parameter has no effect on the - `IndicesStatsAction`. This can be surprising because `GET - _cat/indices?local` looks like it might be a completely local call but in - fact it still depends on every node in the cluster. - - The `local` parameter was deprecated in 7.x and this commit removes it for 8.x. diff --git a/docs/changelog/64869.yaml b/docs/changelog/64869.yaml deleted file mode 100644 index 2ce02574aaf9b..0000000000000 --- a/docs/changelog/64869.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 64869 -issues: - - 58646 -area: EQL -type: UNKNOWN -summary: Add option for returning results from the tail of the stream -versions: - - v8.0.0 diff --git a/docs/changelog/65255.yaml b/docs/changelog/65255.yaml deleted file mode 100644 index 60ca48ebfd0cd..0000000000000 --- a/docs/changelog/65255.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 65255 -issues: [] -area: Infra/REST API, SQL -type: UNKNOWN -summary: Adding back a validation of incorrect response header -versions: - - v8.0.0 diff --git a/docs/changelog/65259.yaml b/docs/changelog/65259.yaml deleted file mode 100644 index 1646a57d87367..0000000000000 --- a/docs/changelog/65259.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 65259 -issues: [] -area: Analysis -type: UNKNOWN -summary: "Phonetic: Remove class that is part of commons-codec" -versions: - - v8.0.0 diff --git a/docs/changelog/65500.yaml b/docs/changelog/65500.yaml deleted file mode 100644 index 2d5b892e20a40..0000000000000 --- a/docs/changelog/65500.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 65500 -issues: - - 51816 -area: Infra/REST API -type: UNKNOWN -summary: Support response content-type with versioned media type -versions: - - v8.0.0 diff --git a/docs/changelog/65590.yaml b/docs/changelog/65590.yaml deleted file mode 100644 index 8353cff3febf6..0000000000000 --- a/docs/changelog/65590.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 65590 -issues: - - 61884 - - 61884 -area: Security -type: deprecation -summary: Remove support of creating CA on the fly when generating certificates -versions: - - v8.0.0 diff --git a/docs/changelog/65753.yaml b/docs/changelog/65753.yaml deleted file mode 100644 index c51074c31bdb2..0000000000000 --- a/docs/changelog/65753.yaml +++ /dev/null @@ -1,19 +0,0 @@ -pr: 65753 -issues: - - 65601 - - 65249 -area: Network -type: breaking -summary: Remove escape hatch permitting incompatible builds -versions: - - v8.0.0 -breaking: - notable: false - title: Remove escape hatch permitting incompatible builds - anchor: remove_escape_hatch_permitting_incompatible_builds - body: >- - Today in `7.x` there is a deprecated system property that bypasses thecheck - that prevents nodes of incompatible builds from communicating.This commit - removes the system property in `master` so that the check isalways enforced. - - Relates #65601, #65249 diff --git a/docs/changelog/66297.yaml b/docs/changelog/66297.yaml deleted file mode 100644 index 58d76e410caf7..0000000000000 --- a/docs/changelog/66297.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 66297 -issues: - - 65725 -area: Infra/Core -type: bug -summary: Add searchable snapshot cache folder to `NodeEnvironment` -versions: - - v8.0.0 diff --git a/docs/changelog/66671.yaml b/docs/changelog/66671.yaml deleted file mode 100644 index ca1bc537797c2..0000000000000 --- a/docs/changelog/66671.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 66671 -issues: - - 66317 -area: Security -type: deprecation -summary: Remove the id field from the `InvalidateApiKey` API -versions: - - v8.0.0 diff --git a/docs/changelog/67154.yaml b/docs/changelog/67154.yaml deleted file mode 100644 index a52b0384429c8..0000000000000 --- a/docs/changelog/67154.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 67154 -issues: [] -area: Features/Watcher -type: enhancement -summary: Remove watcher history clean up from monitoring -versions: - - v8.0.0 diff --git a/docs/changelog/67158.yaml b/docs/changelog/67158.yaml deleted file mode 100644 index 368d7e73b5947..0000000000000 --- a/docs/changelog/67158.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 67158 -issues: - - 66419 -area: Distributed -type: bug -summary: Introduce ?wait_for_active_shards=index-setting -versions: - - v8.0.0 diff --git a/docs/changelog/67216.yaml b/docs/changelog/67216.yaml deleted file mode 100644 index ccd725571edef..0000000000000 --- a/docs/changelog/67216.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 67216 -issues: - - 56713 -area: SQL -type: enhancement -summary: Improve alias resolution in sub-queries -versions: - - v8.0.0 diff --git a/docs/changelog/67374.yaml b/docs/changelog/67374.yaml deleted file mode 100644 index a667d33794d21..0000000000000 --- a/docs/changelog/67374.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 67374 -issues: - - 67246 - - 67158 -area: Distributed -type: bug -summary: Respect `CloseIndexRequest#waitForActiveShards` in HLRC -versions: - - v8.0.0 diff --git a/docs/changelog/67409.yaml b/docs/changelog/67409.yaml deleted file mode 100644 index 5790349df3838..0000000000000 --- a/docs/changelog/67409.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 67409 -issues: [] -area: Infra/Core -type: bug -summary: Precompute `ParsedMediaType` for `XContentType` -versions: - - v8.0.0 diff --git a/docs/changelog/67552.yaml b/docs/changelog/67552.yaml deleted file mode 100644 index 8cd8018c02488..0000000000000 --- a/docs/changelog/67552.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 67552 -issues: - - 67545 -area: Infra/REST API -type: UNKNOWN -summary: Make `ParsedMediaType` truly immutable -versions: - - v8.0.0 diff --git a/docs/changelog/67672.yaml b/docs/changelog/67672.yaml deleted file mode 100644 index 7f1273f537b12..0000000000000 --- a/docs/changelog/67672.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 67672 -issues: [] -area: EQL, SQL -type: UNKNOWN -summary: Refactor function resolution strategy -versions: - - v8.0.0 diff --git a/docs/changelog/67677.yaml b/docs/changelog/67677.yaml deleted file mode 100644 index 11fabc272d2f5..0000000000000 --- a/docs/changelog/67677.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 67677 -issues: - - 66986 -area: Infra/Scripting -type: UNKNOWN -summary: Make scripted search templates work with new `mediaType` from - `XContentType.JSON` -versions: - - v8.0.0 diff --git a/docs/changelog/68176.yaml b/docs/changelog/68176.yaml deleted file mode 100644 index 7a2b26f26ff1c..0000000000000 --- a/docs/changelog/68176.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 68176 -issues: - - 68172 -area: EQL -type: enhancement -summary: Introduce case insensitive variant in~ -versions: - - v8.0.0 diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml index 56da48e459c8e..464f64069df14 100644 --- a/docs/changelog/68564.yaml +++ b/docs/changelog/68564.yaml @@ -12,7 +12,7 @@ breaking: title: Remove support for `_type` in searches anchor: remove_support_for_type_in_searches area: Search - details: >- + details: |- Types are no longer allowed in requests in 8.0, so support for the `_type` field within search requests has been removed. impact: diff --git a/docs/changelog/69149.yaml b/docs/changelog/69149.yaml index 4698c0c5e7f01..071049ef5cc60 100644 --- a/docs/changelog/69149.yaml +++ b/docs/changelog/69149.yaml @@ -11,11 +11,11 @@ breaking: title: Remove support for `JAVA_HOME` anchor: remove_support_for_java_home area: Packaging - details: >- + details: |- {es} no longer supports the `JAVA_HOME` environment variable. Note that {es} does not treat `JAVA_HOME` being set as a failure, as it is perfectly reasonable to have this configured at a system level. - impact: >- + impact: |- If you rely on the `JAVA_HOME` environment variable to configure the JDK for {es}, you now need to use the `ES_JAVA_HOME` environment variable instead. diff --git a/docs/changelog/69512.yaml b/docs/changelog/69512.yaml deleted file mode 100644 index 008ed8bf5afa3..0000000000000 --- a/docs/changelog/69512.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 69512 -issues: [] -area: SQL -type: enhancement -summary: Export array values through result sets -versions: - - v8.0.0 diff --git a/docs/changelog/69901.yaml b/docs/changelog/69901.yaml deleted file mode 100644 index 19acded498cc8..0000000000000 --- a/docs/changelog/69901.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 69901 -issues: [] -area: SQL -type: bug -summary: Make `RestSqlQueryAction` thread-safe -versions: - - v8.0.0 diff --git a/docs/changelog/70209.yaml b/docs/changelog/70209.yaml deleted file mode 100644 index f2dc841ca18e7..0000000000000 --- a/docs/changelog/70209.yaml +++ /dev/null @@ -1,9 +0,0 @@ -pr: 70209 -issues: - - 69548 - - 69548 -area: Search -type: enhancement -summary: Completely disallow setting negative size in search -versions: - - v8.0.0 From c715d205042ae7be970f8cf376f2a976d3d4465d Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 7 Apr 2021 12:31:51 +0100 Subject: [PATCH 05/22] Address review feedback --- .../org/elasticsearch/gradle/Version.java | 10 +++++----- .../ValidateJsonAgainstSchemaTask.java | 2 -- .../release/GenerateReleaseNotesTask.java | 3 +-- .../gradle/release/ReleaseNotesGenerator.java | 2 +- .../gradle/release/ReleaseToolsPlugin.java | 19 +++++++++---------- .../elasticsearch/gradle/VersionTests.java | 8 ++++---- 6 files changed, 20 insertions(+), 24 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java b/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java index 7f455134a9c95..50ab65b178b7b 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/Version.java @@ -22,7 +22,7 @@ public final class Version implements Comparable { private final int minor; private final int revision; private final int id; - private final List labels; + private final List qualifiers; /** * Specifies how a version string should be parsed. @@ -48,7 +48,7 @@ public Version(int major, int minor, int revision) { this(major, minor, revision, List.of()); } - public Version(int major, int minor, int revision, List labels) { + public Version(int major, int minor, int revision, List qualifiers) { Objects.requireNonNull(major, "major version can't be null"); Objects.requireNonNull(minor, "minor version can't be null"); Objects.requireNonNull(revision, "revision version can't be null"); @@ -59,7 +59,7 @@ public Version(int major, int minor, int revision, List labels) { // currently snapshot is not taken into account this.id = major * 10000000 + minor * 100000 + revision * 1000; - this.labels = new ArrayList<>(labels); + this.qualifiers = new ArrayList<>(qualifiers); } public static Version fromString(final String s) { @@ -162,8 +162,8 @@ protected int getId() { return id; } - public List getLabels() { - return labels; + public List getQualifiers() { + return qualifiers; } @Override diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java index 9807b1855eff1..db6d2c1135b90 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/internal/precommit/ValidateJsonAgainstSchemaTask.java @@ -101,7 +101,6 @@ public void validate(InputChanges inputChanges) throws IOException { .map(FileChange::getFile) .filter(file -> file.isDirectory() == false) .forEach(file -> { - getLogger().debug("Validating {} [{}]", getFileType(), file.getName()); try { Set validationMessages = jsonSchema.validate(mapper.readTree(file)); maybeLogAndCollectError(validationMessages, errors, file); @@ -130,7 +129,6 @@ public void validate(InputChanges inputChanges) throws IOException { private JsonSchema buildSchemaObject(File jsonSchemaOnDisk) throws IOException { final ObjectMapper jsonMapper = new ObjectMapper(); - getLogger().debug("JSON schema : [{}]", jsonSchemaOnDisk.getAbsolutePath()); final SchemaValidatorsConfig config = new SchemaValidatorsConfig(); final JsonSchemaFactory factory = JsonSchemaFactory.getInstance(SpecVersion.VersionFlag.V7); return factory.getSchema(jsonMapper.readTree(jsonSchemaOnDisk), config); diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java index c722b9226636f..e7b91f8edb0da 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java @@ -29,7 +29,6 @@ import java.io.IOException; import java.io.UncheckedIOException; import java.util.List; -import java.util.Set; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -125,7 +124,7 @@ public FileCollection getChangelogs() { return changelogs; } - public void setChangelogs(Set files) { + public void setChangelogs(FileCollection files) { this.changelogs.setFrom(files); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java index d8aa3c7d937ab..6aef33b6078a1 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseNotesGenerator.java @@ -135,7 +135,7 @@ private void generateHeader(Version version) { out.println("[[release-notes-" + version + "]]"); out.println("== {es} version " + version); - if (version.getLabels().contains("SNAPSHOT")) { + if (version.getQualifiers().contains("SNAPSHOT")) { out.println(); out.println("coming[" + version + "]"); } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java index 8bcd0d6e4a414..b08d4f84ae297 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java @@ -49,35 +49,34 @@ public void apply(Project project) { task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); }); - project.getTasks().register("generateReleaseNotes", GenerateReleaseNotesTask.class).configure(action -> { + project.getTasks().register("generateReleaseNotes", GenerateReleaseNotesTask.class).configure(task -> { final Version version = VersionProperties.getElasticsearchVersion(); - action.setGroup("Documentation"); - action.setDescription("Generates release notes from changelog files held in this checkout"); + task.setGroup("Documentation"); + task.setDescription("Generates release notes from changelog files held in this checkout"); - action.setChangelogs( + task.setChangelogs( projectLayout.getProjectDirectory() .dir("docs/changelog") .getAsFileTree() .matching(new PatternSet().include("**/*.yml", "**/*.yaml")) - .getFiles() ); - action.setReleaseNotesIndexFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes.asciidoc")); + task.setReleaseNotesIndexFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes.asciidoc")); - action.setReleaseNotesFile( + task.setReleaseNotesFile( projectLayout.getProjectDirectory() .file(String.format("docs/reference/release-notes/%d.%d.asciidoc", version.getMajor(), version.getMinor())) ); - action.setReleaseHighlightsFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes/highlights.asciidoc")); + task.setReleaseHighlightsFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes/highlights.asciidoc")); - action.setBreakingChangesFile( + task.setBreakingChangesFile( projectLayout.getProjectDirectory() .file(String.format("docs/reference/migration/migrate_%d_%d.asciidoc", version.getMajor(), version.getMinor())) ); - action.dependsOn(validateChangelogs); + task.dependsOn(validateChangelogs); }); project.getTasks().named("check").configure(task -> task.dependsOn(validateChangelogs)); diff --git a/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java b/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java index a3941633231b1..5139b32908390 100644 --- a/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ b/buildSrc/src/test/java/org/elasticsearch/gradle/VersionTests.java @@ -103,16 +103,16 @@ public void testExceptionSyntax() { public void testLabels() { Version v = Version.fromString("1.2.3"); - assertThat(v.getLabels(), empty()); + assertThat(v.getQualifiers(), empty()); v = Version.fromString("1.2.3-rc1"); - assertThat(v.getLabels(), contains("rc1")); + assertThat(v.getQualifiers(), contains("rc1")); v = Version.fromString("1.2.3-rc1-SNAPSHOT"); - assertThat(v.getLabels(), contains("rc1", "SNAPSHOT")); + assertThat(v.getQualifiers(), contains("rc1", "SNAPSHOT")); v = Version.fromString("1.2.3-SNAPSHOT"); - assertThat(v.getLabels(), contains("SNAPSHOT")); + assertThat(v.getQualifiers(), contains("SNAPSHOT")); } private void assertOrder(Version smaller, Version bigger) { From 0f98874ba9f96ee41d8315c1400f25d3878a9176 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Wed, 7 Apr 2021 15:58:47 +0100 Subject: [PATCH 06/22] Link validateChangelogs task to precommit --- .../org/elasticsearch/gradle/release/ReleaseToolsPlugin.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java index b08d4f84ae297..ea297900ccee7 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java @@ -11,6 +11,7 @@ import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; +import org.elasticsearch.gradle.precommit.PrecommitTaskPlugin; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.file.ProjectLayout; @@ -34,6 +35,8 @@ public ReleaseToolsPlugin(ProjectLayout projectLayout) { @Override public void apply(Project project) { + project.getPluginManager().apply(PrecommitTaskPlugin.class); + final Provider validateChangelogs = project.getTasks() .register("validateChangelogs", ValidateYamlAgainstSchemaTask.class, task -> { task.setGroup("Documentation"); @@ -79,6 +82,6 @@ public void apply(Project project) { task.dependsOn(validateChangelogs); }); - project.getTasks().named("check").configure(task -> task.dependsOn(validateChangelogs)); + project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogs)); } } From fef52ec9f11993bda4cb8d8e0f26d4a31ef2a143 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 19 Apr 2021 13:47:36 +0100 Subject: [PATCH 07/22] Fix property name, auto-generate anchor value --- .../gradle/release/ChangelogEntry.java | 55 +++++++++---------- .../src/main/resources/changelog-schema.json | 22 +++----- docs/changelog/68564.yaml | 1 - docs/changelog/69149.yaml | 1 - 4 files changed, 34 insertions(+), 45 deletions(-) diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java index 9b349a5e91274..418a3f14f11aa 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java @@ -8,9 +8,11 @@ package org.elasticsearch.gradle.release; +import java.util.Arrays; import java.util.List; import java.util.Locale; import java.util.Objects; +import java.util.stream.Collectors; /** * This class models the contents of a changelog YAML file. It contains no validation of its own, @@ -202,8 +204,7 @@ public static class Breaking { private String title; private String details; private String impact; - private boolean isNotable; - private String anchor; + private boolean notable; public String getArea() { return area; @@ -238,19 +239,15 @@ public void setImpact(String impact) { } public boolean isNotable() { - return isNotable; + return notable; } public void setNotable(boolean notable) { - isNotable = notable; + this.notable = notable; } public String getAnchor() { - return anchor; - } - - public void setAnchor(String anchor) { - this.anchor = anchor; + return generatedAnchor(this.title); } @Override @@ -262,29 +259,26 @@ public boolean equals(Object o) { return false; } Breaking breaking = (Breaking) o; - return isNotable == breaking.isNotable - && Objects.equals(area, breaking.area) - && Objects.equals(title, breaking.title) - && Objects.equals(details, breaking.details) - && Objects.equals(impact, breaking.impact) - && Objects.equals(anchor, breaking.anchor); + return notable == breaking.notable + && Objects.equals(area, breaking.area) + && Objects.equals(title, breaking.title) + && Objects.equals(details, breaking.details) + && Objects.equals(impact, breaking.impact); } @Override public int hashCode() { - return Objects.hash(area, title, details, impact, isNotable, anchor); + return Objects.hash(area, title, details, impact, notable); } @Override public String toString() { return String.format( - "Breaking{area='%s', title='%s', details='%s', impact='%s', isNotable=%s, anchor='%s'}", + "Breaking{area='%s', title='%s', details='%s', impact='%s', isNotable=%s}", area, title, details, - impact, - isNotable, - anchor + impact, notable ); } } @@ -293,7 +287,6 @@ public static class Deprecation { private String area; private String title; private String body; - private String anchor; public String getArea() { return area; @@ -320,11 +313,7 @@ public void setBody(String body) { } public String getAnchor() { - return anchor; - } - - public void setAnchor(String anchor) { - this.anchor = anchor; + return generatedAnchor(this.title); } @Override @@ -338,18 +327,24 @@ public boolean equals(Object o) { Deprecation that = (Deprecation) o; return Objects.equals(area, that.area) && Objects.equals(title, that.title) - && Objects.equals(body, that.body) - && Objects.equals(anchor, that.anchor); + && Objects.equals(body, that.body); } @Override public int hashCode() { - return Objects.hash(area, title, body, anchor); + return Objects.hash(area, title, body); } @Override public String toString() { - return String.format("Deprecation{area='%s', title='%s', body='%s', anchor='%s'}", area, title, body, anchor); + return String.format("Deprecation{area='%s', title='%s', body='%s'}", area, title, body); } } + + private static String generatedAnchor(String input) { + final List excludes = List.of("the", "is", "a"); + + final String[] words = input.replaceAll("[^\\w]+", "_").replaceFirst("^_+", "").replaceFirst("_+$", "").split("_+"); + return Arrays.stream(words).filter(word -> excludes.contains(word) == false).collect(Collectors.joining("_")); + } } diff --git a/buildSrc/src/main/resources/changelog-schema.json b/buildSrc/src/main/resources/changelog-schema.json index 53d3f7423f253..39d1f304250bc 100644 --- a/buildSrc/src/main/resources/changelog-schema.json +++ b/buildSrc/src/main/resources/changelog-schema.json @@ -110,7 +110,8 @@ "required": [ "title", "summary" - ] + ], + "additionalProperties": false }, "Breaking": { "properties": { @@ -129,12 +130,8 @@ "type": "string", "minLength": 1 }, - "isNotable": { + "notable": { "type": "boolean" - }, - "anchor": { - "type": "string", - "minLength": 1 } }, "required": [ @@ -142,7 +139,8 @@ "title", "details", "impact" - ] + ], + "additionalProperties": false }, "Deprecation": { "properties": { @@ -156,17 +154,14 @@ "body": { "type": "string", "minLength": 1 - }, - "anchor": { - "type": "string", - "minLength": 1 } }, "required": [ "area", "title", "body" - ] + ], + "additionalProperties": false }, "breakingArea": { "type": "string", @@ -199,6 +194,7 @@ "Transform", "Transport" ] - } + }, + "additionalProperties": false } } diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml index 464f64069df14..18ce3ff5b34f6 100644 --- a/docs/changelog/68564.yaml +++ b/docs/changelog/68564.yaml @@ -10,7 +10,6 @@ versions: breaking: notable: false title: Remove support for `_type` in searches - anchor: remove_support_for_type_in_searches area: Search details: |- Types are no longer allowed in requests in 8.0, so support for diff --git a/docs/changelog/69149.yaml b/docs/changelog/69149.yaml index 071049ef5cc60..38f710a5cb229 100644 --- a/docs/changelog/69149.yaml +++ b/docs/changelog/69149.yaml @@ -9,7 +9,6 @@ versions: breaking: notable: false title: Remove support for `JAVA_HOME` - anchor: remove_support_for_java_home area: Packaging details: |- {es} no longer supports the `JAVA_HOME` environment variable. Note From 7bc66a344515cd7ac02c7357b046254d93cceae8 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Tue, 20 Apr 2021 14:28:56 +0100 Subject: [PATCH 08/22] Tweaks to schema --- .../src/main/resources/changelog-schema.json | 45 ++++++++++++++++--- 1 file changed, 40 insertions(+), 5 deletions(-) diff --git a/buildSrc/src/main/resources/changelog-schema.json b/buildSrc/src/main/resources/changelog-schema.json index 39d1f304250bc..5c956a62e67a2 100644 --- a/buildSrc/src/main/resources/changelog-schema.json +++ b/buildSrc/src/main/resources/changelog-schema.json @@ -21,33 +21,67 @@ "enum": [ "Aggregations", "Allocation", + "Analysis", + "Audit", + "Authentication", "Authorization", + "Autoscaling", + "CCR", + "CRUD", + "Client", "Cluster Coordination", + "Discovery-Plugins", "Distributed", "EQL", "Engine", - "Engine changes", + "FIPS", + "Features/CAT APIs", + "Features/Data streams", "Features/Features", "Features/ILM+SLM", "Features/Indices APIs", "Features/Ingest", + "Features/Java High Level REST Client", + "Features/Java Low Level REST Client", "Features/Monitoring", + "Features/Stats", + "Features/Watcher", "Geo", + "Graph", + "Highlighting", + "IdentityProvider", + "Infra/CLI", + "Infra/Circuit Breakers", "Infra/Core", "Infra/Logging", + "Infra/Node Lifecycle", "Infra/Plugins", "Infra/REST API", + "Infra/Resiliency", "Infra/Scripting", "Infra/Settings", + "Infra/Transport API", + "License", "Machine Learning", + "Mapping", + "Network", "Packaging", + "Percolator", + "Performance", "Query Languages", "Ranking", + "Recovery", + "Reindex", "Rollup", + "SQL", "Search", "Security", - "SQL", - "Task Management" + "Snapshot/Restore", + "Store", + "Suggesters", + "TLS", + "Task Management", + "Transform" ] }, "type": { @@ -55,10 +89,11 @@ "enum": [ "breaking", "breaking-java", + "bug", "deprecation", - "feature", "enhancement", - "bug", + "feature", + "new-aggregation", "regression", "upgrade" ] From a608417a65ef3fa602d875dc5630fe7dc2f30586 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Tue, 20 Apr 2021 16:01:19 +0100 Subject: [PATCH 09/22] Add further validation beyond schema check Some validation rules are more difficult to express in JSON schema, so restructure the changelog validation and introduce a step that programmatically checks the changelog files. --- .../gradle/release/ChangelogEntry.java | 25 +++++-- .../release/GenerateReleaseNotesTask.java | 16 +---- .../gradle/release/ReleaseToolsPlugin.java | 42 +++++------ .../gradle/release/ValidateYamlTask.java | 70 +++++++++++++++++++ .../src/main/resources/changelog-schema.json | 4 +- 5 files changed, 116 insertions(+), 41 deletions(-) create mode 100644 buildSrc/src/main/java/org/elasticsearch/gradle/release/ValidateYamlTask.java diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java index 418a3f14f11aa..fb044385ce247 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ChangelogEntry.java @@ -8,6 +8,12 @@ package org.elasticsearch.gradle.release; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; + +import java.io.File; +import java.io.IOException; +import java.io.UncheckedIOException; import java.util.Arrays; import java.util.List; import java.util.Locale; @@ -16,10 +22,11 @@ /** * This class models the contents of a changelog YAML file. It contains no validation of its own, - * because we check it against a JSON Schema document. - * - * @see buildSrc/src/main/resources/changelog-schema.json - * @see Understanding JSON Schema + * because we check it against a JSON Schema document. See also: + * */ public class ChangelogEntry { private int pr; @@ -32,6 +39,16 @@ public class ChangelogEntry { private Deprecation deprecation; private List versions; + private static final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory()); + + public static ChangelogEntry parse(File file) { + try { + return yamlMapper.readValue(file, ChangelogEntry.class); + } catch (IOException e) { + throw new UncheckedIOException(e); + } + } + public int getPr() { return pr; } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java index e7b91f8edb0da..9107dcf13beb3 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/GenerateReleaseNotesTask.java @@ -8,8 +8,6 @@ package org.elasticsearch.gradle.release; -import com.fasterxml.jackson.databind.ObjectMapper; -import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import org.gradle.api.DefaultTask; @@ -25,9 +23,7 @@ import org.gradle.api.tasks.TaskAction; import javax.inject.Inject; -import java.io.File; import java.io.IOException; -import java.io.UncheckedIOException; import java.util.List; import java.util.function.Predicate; import java.util.stream.Collectors; @@ -44,8 +40,6 @@ public class GenerateReleaseNotesTask extends DefaultTask { private final RegularFileProperty releaseHighlightsFile; private final RegularFileProperty breakingChangesFile; - private final ObjectMapper yamlMapper = new ObjectMapper(new YAMLFactory()); - @Inject public GenerateReleaseNotesTask(ObjectFactory objectFactory) { changelogs = objectFactory.fileCollection(); @@ -63,7 +57,7 @@ public void executeTask() throws IOException { final List entries = this.changelogs.getFiles() .stream() - .map(this::parseChangelogFile) + .map(ChangelogEntry::parse) .filter( // Only process changelogs that are included in this minor version series of ES. // If this change was released in an earlier major or minor version of Elasticsearch, do not @@ -111,14 +105,6 @@ public void executeTask() throws IOException { } } - private ChangelogEntry parseChangelogFile(File file) { - try { - return yamlMapper.readValue(file, ChangelogEntry.class); - } catch (IOException e) { - throw new UncheckedIOException(e); - } - } - @InputFiles public FileCollection getChangelogs() { return changelogs; diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java index ea297900ccee7..57cd4f4a8dbe8 100644 --- a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ReleaseToolsPlugin.java @@ -14,8 +14,10 @@ import org.elasticsearch.gradle.precommit.PrecommitTaskPlugin; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.file.FileTree; import org.gradle.api.file.ProjectLayout; import org.gradle.api.provider.Provider; +import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.util.PatternSet; import javax.inject.Inject; @@ -37,34 +39,34 @@ public ReleaseToolsPlugin(ProjectLayout projectLayout) { public void apply(Project project) { project.getPluginManager().apply(PrecommitTaskPlugin.class); - final Provider validateChangelogs = project.getTasks() - .register("validateChangelogs", ValidateYamlAgainstSchemaTask.class, task -> { + final FileTree yamlFiles = projectLayout.getProjectDirectory() + .dir("docs/changelog") + .getAsFileTree() + .matching(new PatternSet().include("**/*.yml", "**/*.yaml")); + + final Provider validateChangelogsAgainstYamlTask = project.getTasks() + .register("validateChangelogsAgainstSchema", ValidateYamlAgainstSchemaTask.class, task -> { task.setGroup("Documentation"); - task.setDescription("Validates that all the changelog YAML files are well-formed"); - - task.setInputFiles( - projectLayout.getProjectDirectory() - .dir("docs/changelog") - .getAsFileTree() - .matching(new PatternSet().include("**/*.yml", "**/*.yaml")) - ); + task.setDescription("Validates that all the changelog YAML files comply with the changelog schema"); + task.setInputFiles(yamlFiles); task.setJsonSchema(new File(project.getRootDir(), "buildSrc/src/main/resources/changelog-schema.json")); task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); }); + final TaskProvider validateChangelogsTask = project.getTasks() + .register("validateChangelogs", ValidateYamlTask.class, task -> { + task.setGroup("Documentation"); + task.setDescription("Validates that all the changelog YAML files are well-formed"); + task.setChangelogs(yamlFiles); + task.dependsOn(validateChangelogsAgainstYamlTask); + }); + project.getTasks().register("generateReleaseNotes", GenerateReleaseNotesTask.class).configure(task -> { final Version version = VersionProperties.getElasticsearchVersion(); task.setGroup("Documentation"); task.setDescription("Generates release notes from changelog files held in this checkout"); - - task.setChangelogs( - projectLayout.getProjectDirectory() - .dir("docs/changelog") - .getAsFileTree() - .matching(new PatternSet().include("**/*.yml", "**/*.yaml")) - ); - + task.setChangelogs(yamlFiles); task.setReleaseNotesIndexFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes.asciidoc")); task.setReleaseNotesFile( @@ -79,9 +81,9 @@ public void apply(Project project) { .file(String.format("docs/reference/migration/migrate_%d_%d.asciidoc", version.getMajor(), version.getMinor())) ); - task.dependsOn(validateChangelogs); + task.dependsOn(validateChangelogsTask); }); - project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogs)); + project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); } } diff --git a/buildSrc/src/main/java/org/elasticsearch/gradle/release/ValidateYamlTask.java b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ValidateYamlTask.java new file mode 100644 index 0000000000000..23a0b06f9f7eb --- /dev/null +++ b/buildSrc/src/main/java/org/elasticsearch/gradle/release/ValidateYamlTask.java @@ -0,0 +1,70 @@ +/* + * 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 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 or the Server + * Side Public License, v 1. + */ + +package org.elasticsearch.gradle.release; + +import org.gradle.api.DefaultTask; +import org.gradle.api.GradleException; +import org.gradle.api.file.ConfigurableFileCollection; +import org.gradle.api.file.FileCollection; +import org.gradle.api.file.ProjectLayout; +import org.gradle.api.model.ObjectFactory; +import org.gradle.api.tasks.InputFiles; +import org.gradle.api.tasks.TaskAction; + +import javax.inject.Inject; +import java.net.URI; +import java.util.Map; +import java.util.stream.Collectors; + +/** + * Performs additional checks on changelog files, beyond whether they confirm to the schema. + */ +public class ValidateYamlTask extends DefaultTask { + private final ConfigurableFileCollection changelogs; + private final ProjectLayout projectLayout; + + @Inject + public ValidateYamlTask(ObjectFactory objectFactory, ProjectLayout projectLayout) { + this.changelogs = objectFactory.fileCollection(); + this.projectLayout = projectLayout; + } + + @TaskAction + public void executeTask() { + final URI rootDir = projectLayout.getProjectDirectory().getAsFile().toURI(); + final Map changelogs = this.changelogs.getFiles() + .stream() + .collect(Collectors.toMap(file -> rootDir.relativize(file.toURI()).toString(), ChangelogEntry::parse)); + + // We don't try to find all such errors, because we expect them to be rare e.g. only + // when a new file is added. + changelogs.forEach((path, entry) -> { + if ((entry.getType().equals("breaking") || entry.getType().equals("breaking-java")) && entry.getBreaking() == null) { + throw new GradleException( + "[" + path + "] has type [breaking] and must supply a [breaking] section with further information" + ); + } + + if (entry.getType().equals("deprecation") && entry.getDeprecation() == null) { + throw new GradleException( + "[" + path + "] has type [deprecation] and must supply a [deprecation] section with further information" + ); + } + }); + } + + @InputFiles + public FileCollection getChangelogs() { + return changelogs; + } + + public void setChangelogs(FileCollection files) { + this.changelogs.setFrom(files); + } +} diff --git a/buildSrc/src/main/resources/changelog-schema.json b/buildSrc/src/main/resources/changelog-schema.json index 5c956a62e67a2..896b2e86c9a71 100644 --- a/buildSrc/src/main/resources/changelog-schema.json +++ b/buildSrc/src/main/resources/changelog-schema.json @@ -215,12 +215,12 @@ "Java", "License Information", "Logging", - "Machine learning", + "Machine Learning", "Mappings", "Networking", "Packaging", "Plugins", - "Script cache", + "Script Cache", "Search Changes", "Search", "Security", From ed70b89025ae39d9fa6d6b9c7df776d8711f273b Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Thu, 10 Jun 2021 10:15:45 +0100 Subject: [PATCH 10/22] Fixes after merge --- .../internal/release/BreakingChangesGenerator.java | 2 +- .../gradle/internal/release/ChangelogEntry.java | 2 +- .../internal/release/GenerateReleaseNotesTask.java | 2 +- .../internal/release/ReleaseHighlightsGenerator.java | 2 +- .../gradle/internal/release/ReleaseNotesGenerator.java | 2 +- .../internal/release/ReleaseNotesIndexUpdater.java | 2 +- .../gradle/internal/release/ReleaseToolsPlugin.java | 10 +++++----- .../gradle/internal/release/ValidateYamlTask.java | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java index 78bbe665e4b5d..db82141c5115f 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java index fb044385ce247..e1f6e2980c23a 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.dataformat.yaml.YAMLFactory; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java index 9107dcf13beb3..2d3065dcac4ea 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java index 22747c4ae1344..b3c40d6c12f91 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java index 6aef33b6078a1..04538ed65a3eb 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index 1374d6d591ae3..069189f092510 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java index 57cd4f4a8dbe8..a2a7ca217b72c 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java @@ -6,12 +6,12 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; +import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin; import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; -import org.elasticsearch.gradle.precommit.PrecommitTaskPlugin; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.file.FileTree; @@ -37,7 +37,7 @@ public ReleaseToolsPlugin(ProjectLayout projectLayout) { @Override public void apply(Project project) { - project.getPluginManager().apply(PrecommitTaskPlugin.class); +// project.getPluginManager().apply(PrecommitTaskPlugin.class); final FileTree yamlFiles = projectLayout.getProjectDirectory() .dir("docs/changelog") @@ -49,7 +49,7 @@ public void apply(Project project) { task.setGroup("Documentation"); task.setDescription("Validates that all the changelog YAML files comply with the changelog schema"); task.setInputFiles(yamlFiles); - task.setJsonSchema(new File(project.getRootDir(), "buildSrc/src/main/resources/changelog-schema.json")); + task.setJsonSchema(new File(project.getRootDir(), "build-tools-internal/src/main/resources/changelog-schema.json")); task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); }); @@ -84,6 +84,6 @@ public void apply(Project project) { task.dependsOn(validateChangelogsTask); }); - project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); +// project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); } } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java index 23a0b06f9f7eb..d0f70363a3440 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java @@ -6,7 +6,7 @@ * Side Public License, v 1. */ -package org.elasticsearch.gradle.release; +package org.elasticsearch.gradle.internal.release; import org.gradle.api.DefaultTask; import org.gradle.api.GradleException; From 6b54e2e4daaa91c52af9f379ddae1caa59ec1b6b Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Thu, 10 Jun 2021 10:21:47 +0100 Subject: [PATCH 11/22] Tweaks --- .../gradle/internal/release/ReleaseToolsPlugin.java | 1 - .../elasticsearch/gradle/internal/release/ValidateYamlTask.java | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java index a2a7ca217b72c..ad4cdd83dff7d 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java @@ -10,7 +10,6 @@ import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; -import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin; import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; import org.gradle.api.Plugin; import org.gradle.api.Project; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java index d0f70363a3440..1ba4033503258 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; /** - * Performs additional checks on changelog files, beyond whether they confirm to the schema. + * Performs additional checks on changelog files, beyond whether they conform to the schema. */ public class ValidateYamlTask extends DefaultTask { private final ConfigurableFileCollection changelogs; From 22a0e8ca10edc7eb6fe82111690d5f1e58106ec5 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Thu, 10 Jun 2021 19:23:41 +0100 Subject: [PATCH 12/22] Switch to using SimpleTemplateEngine --- .../release/BreakingChangesGenerator.java | 177 ++---------------- .../release/GenerateReleaseNotesTask.java | 63 ++++++- .../release/ReleaseHighlightsGenerator.java | 72 ++----- .../release/ReleaseNotesGenerator.java | 123 ++++-------- .../release/ReleaseNotesIndexUpdater.java | 30 ++- .../internal/release/ReleaseToolsPlugin.java | 41 ++-- .../src/main/resources/changelog-schema.json | 4 +- .../templates/breaking-changes.asciidoc | 102 ++++++++++ .../templates/release-highlights.asciidoc | 34 ++++ .../templates/release-notes-index.asciidoc | 13 ++ .../templates/release-notes.asciidoc | 27 +++ .../elasticsearch/gradle/VersionTests.java | 14 +- .../org/elasticsearch/gradle/Version.java | 31 ++- 13 files changed, 362 insertions(+), 369 deletions(-) create mode 100644 build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc create mode 100644 build-tools-internal/src/main/resources/templates/release-highlights.asciidoc create mode 100644 build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc create mode 100644 build-tools-internal/src/main/resources/templates/release-notes.asciidoc diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java index db82141c5115f..d8b427b069d8f 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java @@ -8,14 +8,17 @@ package org.elasticsearch.gradle.internal.release; +import groovy.text.SimpleTemplateEngine; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; +import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; +import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; @@ -26,175 +29,35 @@ /** * Generates the page that lists the breaking changes and deprecations for a minor version release. */ -public class BreakingChangesGenerator implements Closeable { +public class BreakingChangesGenerator { - private final PrintStream out; + public static void update(File templateFile, File outputFile, List entries) throws IOException { + final Version version = VersionProperties.getElasticsearchVersion(); - public BreakingChangesGenerator(File outputFile) throws FileNotFoundException { - this.out = new PrintStream(outputFile); - } - - @Override - public void close() throws IOException { - this.out.close(); - } - - public void generate(List entries) { - Version version = VersionProperties.getElasticsearchVersion(); - final VersionStrings versionStrings = new VersionStrings(version); - - List.of( - "[[migrating-" + versionStrings.majorDotMinor + "]]", - "== Migrating to " + versionStrings.majorDotMinor, - "++++", - "" + versionStrings.majorDotMinor + "", - "++++", - "", - "This section discusses the changes that you need to be aware of when migrating", - "your application to {es} " + versionStrings.majorDotMinor + ".", - "", - "See also <> and <>." - ).forEach(out::println); - - if (VersionProperties.isElasticsearchSnapshot()) { - out.println(); - out.println("coming[" + version + "]"); - } - - out.println(); - out.println("//NOTE: The notable-breaking-changes tagged regions are re-used in the"); - out.println("//Installation and Upgrade Guide"); - - generateBreakingChanges(entries, versionStrings); - generateDeprecations(entries, versionStrings); - } - - private static class VersionStrings { - private final String majorMinor; - private final String majorDotMinor; - private final String nextMajor; - - private VersionStrings(Version version) { - this.majorMinor = String.valueOf(version.getMajor()) + version.getMinor(); - this.majorDotMinor = version.getMajor() + "." + version.getMinor(); - this.nextMajor = (version.getMajor() + 1) + ".0"; - } - } - - private void generateBreakingChanges(List entries, VersionStrings versionStrings) { final Map> breakingChangesByArea = entries.stream() .map(ChangelogEntry::getBreaking) .filter(Objects::nonNull) .collect(Collectors.groupingBy(ChangelogEntry.Breaking::getArea, TreeMap::new, Collectors.toList())); - if (breakingChangesByArea.isEmpty()) { - return; - } - - out.println(); - out.println(); - - List.of( - "[discrete]", - "[[breaking-changes-" + versionStrings.majorDotMinor + "]]", - "=== Breaking changes", - "", - "The following changes in {es} " + versionStrings.majorDotMinor + " might affect your applications", - "and prevent them from operating normally.", - "Before upgrading to " + versionStrings.majorDotMinor + " review these changes and take the described steps", - "to mitigate the impact.", - "", - "NOTE: Breaking changes introduced in minor versions are", - "normally limited to security and bug fixes.", - "Significant changes in behavior are deprecated in a minor release and", - "the old behavior is supported until the next major release.", - "To find out if you are using any deprecated functionality,", - "enable <>." - ).forEach(out::println); - - breakingChangesByArea.forEach((area, breakingChanges) -> { - out.println(); - - final boolean hasNotableChanges = breakingChanges.stream().anyMatch(ChangelogEntry.Breaking::isNotable); - if (hasNotableChanges) { - out.println("// tag::notable-breaking-changes[]"); - } - - out.println("[discrete]"); - out.println( - "[[breaking_" + versionStrings.majorMinor + "_" + area.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "_") + "]]" - ); - out.println("==== " + area); - - breakingChanges.forEach(breaking -> { - out.println(); - out.println("[[" + breaking.getAnchor() + "]]"); - out.println("." + breaking.getTitle()); - out.println("[%collapsible]"); - out.println("===="); - out.println("*Details* +"); - out.println(breaking.getDetails().trim()); - out.println(); - out.println("*Impact* +"); - out.println(breaking.getImpact().trim()); - out.println("===="); - }); - - if (hasNotableChanges) { - out.println("// end::notable-breaking-changes[]"); - } - }); - } - - private void generateDeprecations(List entries, VersionStrings versionStrings) { final Map> deprecationsByArea = entries.stream() .map(ChangelogEntry::getDeprecation) .filter(Objects::nonNull) .collect(Collectors.groupingBy(ChangelogEntry.Deprecation::getArea, TreeMap::new, Collectors.toList())); - if (deprecationsByArea.isEmpty()) { - return; + final Map bindings = new HashMap<>(); + bindings.put("breakingChangesByArea", breakingChangesByArea); + bindings.put("deprecationsByArea", deprecationsByArea); + bindings.put("isElasticsearchSnapshot", VersionProperties.isElasticsearchSnapshot()); + bindings.put("majorDotMinor", version.getMajor() + "." + version.getMinor()); + bindings.put("majorMinor", String.valueOf(version.getMajor()) + version.getMinor()); + bindings.put("nextMajor", (version.getMajor() + 1) + ".0"); + bindings.put("version", version); + + try { + final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + engine.createTemplate(templateFile).make(bindings).writeTo(new FileWriter(outputFile)); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); } - - out.println(); - out.println(); - - List.of( - "[discrete]", - "[[deprecated-" + versionStrings.majorDotMinor + "]]", - "=== Deprecations", - "", - "The following functionality has been deprecated in {es} " + versionStrings.majorDotMinor, - "and will be removed in " + versionStrings.nextMajor + ".", - "While this won't have an immediate impact on your applications,", - "we strongly encourage you take the described steps to update your code", - "after upgrading to " + versionStrings.majorDotMinor + ".", - "", - "NOTE: Significant changes in behavior are deprecated in a minor release and", - "the old behavior is supported until the next major release.", - "To find out if you are using any deprecated functionality,", - "enable <>." - ).forEach(out::println); - - deprecationsByArea.forEach((area, deprecations) -> { - out.println(); - - out.println("[discrete]"); - out.println( - "[[deprecations-" + versionStrings.majorMinor + "_" + area.toLowerCase(Locale.ROOT).replaceAll("[^a-z0-9]+", "_") + "]]" - ); - out.println("==== " + area + " deprecations"); - - deprecations.forEach(deprecation -> { - out.println(); - out.println("[[" + deprecation.getAnchor() + "]]"); - out.println("." + deprecation.getTitle()); - out.println("[%collapsible]"); - out.println("===="); - out.println("*Details* +"); - out.println(deprecation.getBody().trim()); - out.println("===="); - }); - }); } } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java index 2d3065dcac4ea..5d5e1edf9b99e 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/GenerateReleaseNotesTask.java @@ -18,6 +18,7 @@ import org.gradle.api.logging.Logger; import org.gradle.api.logging.Logging; import org.gradle.api.model.ObjectFactory; +import org.gradle.api.tasks.InputFile; import org.gradle.api.tasks.InputFiles; import org.gradle.api.tasks.OutputFile; import org.gradle.api.tasks.TaskAction; @@ -35,6 +36,12 @@ public class GenerateReleaseNotesTask extends DefaultTask { private static final Logger LOGGER = Logging.getLogger(GenerateReleaseNotesTask.class); private final ConfigurableFileCollection changelogs; + + private final RegularFileProperty releaseNotesIndexTemplate; + private final RegularFileProperty releaseNotesTemplate; + private final RegularFileProperty releaseHighlightsTemplate; + private final RegularFileProperty breakingChangesTemplate; + private final RegularFileProperty releaseNotesIndexFile; private final RegularFileProperty releaseNotesFile; private final RegularFileProperty releaseHighlightsFile; @@ -43,6 +50,12 @@ public class GenerateReleaseNotesTask extends DefaultTask { @Inject public GenerateReleaseNotesTask(ObjectFactory objectFactory) { changelogs = objectFactory.fileCollection(); + + releaseNotesIndexTemplate = objectFactory.fileProperty(); + releaseNotesTemplate = objectFactory.fileProperty(); + releaseHighlightsTemplate = objectFactory.fileProperty(); + breakingChangesTemplate = objectFactory.fileProperty(); + releaseNotesIndexFile = objectFactory.fileProperty(); releaseNotesFile = objectFactory.fileProperty(); releaseHighlightsFile = objectFactory.fileProperty(); @@ -87,22 +100,16 @@ public void executeTask() throws IOException { .collect(Collectors.toList()); LOGGER.info("Updating release notes index..."); - ReleaseNotesIndexUpdater.update(this.releaseNotesIndexFile.get().getAsFile()); + ReleaseNotesIndexUpdater.update(this.releaseNotesIndexTemplate.get().getAsFile(), this.releaseNotesIndexFile.get().getAsFile()); LOGGER.info("Generating release notes..."); - try (ReleaseNotesGenerator generator = new ReleaseNotesGenerator(this.releaseNotesFile.get().getAsFile())) { - generator.generate(entries); - } + ReleaseNotesGenerator.update(this.releaseNotesTemplate.get().getAsFile(), this.releaseNotesFile.get().getAsFile(), entries); LOGGER.info("Generating release highlights..."); - try (ReleaseHighlightsGenerator generator = new ReleaseHighlightsGenerator(this.releaseHighlightsFile.get().getAsFile())) { - generator.generate(entries); - } + ReleaseHighlightsGenerator.update(this.releaseHighlightsTemplate.get().getAsFile(), this.releaseHighlightsFile.get().getAsFile(), entries); LOGGER.info("Generating breaking changes / deprecations notes..."); - try (BreakingChangesGenerator generator = new BreakingChangesGenerator(this.breakingChangesFile.get().getAsFile())) { - generator.generate(entries); - } + BreakingChangesGenerator.update(this.breakingChangesTemplate.get().getAsFile(), this.breakingChangesFile.get().getAsFile(), entries); } @InputFiles @@ -114,6 +121,42 @@ public void setChangelogs(FileCollection files) { this.changelogs.setFrom(files); } + @InputFile + public RegularFileProperty getReleaseNotesIndexTemplate() { + return releaseNotesIndexTemplate; + } + + public void setReleaseNotesIndexTemplate(RegularFile file) { + this.releaseNotesIndexTemplate.set(file); + } + + @InputFile + public RegularFileProperty getReleaseNotesTemplate() { + return releaseNotesTemplate; + } + + public void setReleaseNotesTemplate(RegularFile file) { + this.releaseNotesTemplate.set(file); + } + + @InputFile + public RegularFileProperty getReleaseHighlightsTemplate() { + return releaseHighlightsTemplate; + } + + public void setReleaseHighlightsTemplate(RegularFile file) { + this.releaseHighlightsTemplate.set(file); + } + + @InputFile + public RegularFileProperty getBreakingChangesTemplate() { + return breakingChangesTemplate; + } + + public void setBreakingChangesTemplate(RegularFile file) { + this.breakingChangesTemplate.set(file); + } + @OutputFile public RegularFileProperty getReleaseNotesIndexFile() { return releaseNotesIndexFile; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java index b3c40d6c12f91..ebe83c9293c75 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java @@ -8,15 +8,18 @@ package org.elasticsearch.gradle.internal.release; +import groovy.text.SimpleTemplateEngine; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; +import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; import java.util.ArrayList; +import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; @@ -25,43 +28,13 @@ /** * Generates the release highlights notes, for changelog files that contain the highlight field. */ -public class ReleaseHighlightsGenerator implements Closeable { +public class ReleaseHighlightsGenerator { - private final PrintStream out; - - public ReleaseHighlightsGenerator(File outputFile) throws FileNotFoundException { - this.out = new PrintStream(outputFile); - } - - @Override - public void close() throws IOException { - this.out.close(); - } - - public void generate(List entries) { - List.of( - "[[release-highlights]]", - "== What's new in {minor-version}", - "", - "coming[{minor-version}]", - "", - "Here are the highlights of what's new and improved in {es} {minor-version}!", - "ifeval::[\"{release-state}\"!=\"unreleased\"]", - "For detailed information about this release, see the", - "<> and", - "<>.", - "endif::[]", - "" - ).forEach(this.out::println); - - Version version = VersionProperties.getElasticsearchVersion(); + public static void update(File templateFile, File outputFile, List entries) throws IOException { + final List priorVersions = new ArrayList<>(); + final Version version = VersionProperties.getElasticsearchVersion(); if (version.getMinor() > 0) { - this.out.println("// Add previous release to the list"); - this.out.println("Other versions:"); - - List priorVersions = new ArrayList<>(); - final int major = version.getMajor(); for (int minor = version.getMinor(); minor >= 0; minor--) { String majorMinor = major + "." + minor; @@ -71,9 +44,6 @@ public void generate(List entries) { } priorVersions.add("{ref-bare}/" + majorMinor + "/release-highlights" + fileSuffix + ".html[" + majorMinor + "]"); } - - this.out.println(String.join("\n| ", priorVersions)); - this.out.println(); } final Map> groupedHighlights = entries.stream() @@ -84,26 +54,16 @@ public void generate(List entries) { final List notableHighlights = groupedHighlights.getOrDefault(true, List.of()); final List nonNotableHighlights = groupedHighlights.getOrDefault(false, List.of()); - if (notableHighlights.isEmpty() == false) { - this.out.println("// tag::notable-highlights[]"); - - for (ChangelogEntry.Highlight highlight : notableHighlights) { - out.println("[discrete]"); - out.println("=== " + highlight.getTitle()); - out.println(highlight.getBody().trim()); - out.println(); - } - - this.out.println("// end::notable-highlights[]"); - } - - this.out.println(); + final Map bindings = new HashMap<>(); + bindings.put("priorVersions", priorVersions); + bindings.put("notableHighlights", notableHighlights); + bindings.put("nonNotableHighlights", nonNotableHighlights); - for (ChangelogEntry.Highlight highlight : nonNotableHighlights) { - out.println("[discrete]"); - out.println("=== " + highlight.getTitle()); - out.println(highlight.getBody()); - out.println(); + try { + final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + engine.createTemplate(templateFile).make(bindings).writeTo(new FileWriter(outputFile)); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); } } } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java index 04538ed65a3eb..85b7f660214b3 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java @@ -8,16 +8,17 @@ package org.elasticsearch.gradle.internal.release; +import groovy.text.SimpleTemplateEngine; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; +import org.jetbrains.annotations.NotNull; -import java.io.Closeable; import java.io.File; import java.io.FileNotFoundException; +import java.io.FileWriter; import java.io.IOException; import java.io.PrintStream; -import java.util.ArrayList; -import java.util.Collections; +import java.util.Comparator; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -29,7 +30,7 @@ * Generates the release notes i.e. list of changes that have gone into this release. They are grouped by the * type of change, then by team area. */ -public class ReleaseNotesGenerator implements Closeable { +public class ReleaseNotesGenerator { /** * These mappings translate change types into the headings as they should appears in the release notes. */ @@ -46,26 +47,33 @@ public class ReleaseNotesGenerator implements Closeable { TYPE_LABELS.put("upgrade", "Upgrades"); } - private final PrintStream out; + public static void update(File templateFile, File outputFile, List changelogs) throws IOException { + final var changelogsByVersionByTypeByArea = buildChangelogBreakdown(changelogs); - public ReleaseNotesGenerator(File outputFile) throws FileNotFoundException { - this.out = new PrintStream(outputFile); - } + final FileWriter fileWriter = new FileWriter(outputFile); + final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + + final Map bindings = new HashMap<>(); + bindings.put("changelogsByVersionByTypeByArea", changelogsByVersionByTypeByArea); + bindings.put("TYPE_LABELS", TYPE_LABELS); - @Override - public void close() throws IOException { - this.out.close(); + try { + engine.createTemplate(templateFile).make(bindings).writeTo(fileWriter); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } } - public void generate(List changelogs) { + private static Map>>> buildChangelogBreakdown(List changelogs) { final Version elasticsearchVersion = VersionProperties.getElasticsearchVersion(); final Predicate includedInSameMinor = v -> v.getMajor() == elasticsearchVersion.getMajor() && v.getMinor() == elasticsearchVersion.getMinor(); - final Map> changelogsByVersion = changelogs.stream() + final Map>>> changelogsByVersionByTypeByArea = changelogs.stream() .collect( Collectors.groupingBy( + // Key changelog entries by the earlier version in which they were released entry -> entry.getVersions() .stream() .map(v -> Version.fromString(v.replaceFirst("^v", ""))) @@ -73,82 +81,31 @@ public void generate(List changelogs) { .sorted() .findFirst() .get(), - Collectors.toList() - ) - ); - final List changelogVersions = new ArrayList<>(changelogsByVersion.keySet()); - changelogVersions.sort(Version::compareTo); - Collections.reverse(changelogVersions); + // Generate a reverse-ordered map + () -> new TreeMap>>>(Comparator.reverseOrder()), - for (Version version : changelogVersions) { - generateForVersion(version, changelogsByVersion.get(version)); - } - } + // Group changelogs entries by their change type + Collectors.groupingBy( + // Breaking changes come first in the output + entry -> entry.getBreaking() == null ? entry.getType() : "breaking", + TreeMap::new, - private void generateForVersion(Version version, List changelogs) { - Map> groupedChangelogs = changelogs.stream() - .collect( - Collectors.groupingBy( - // Breaking changes come first in the output - entry -> entry.getBreaking() == null ? entry.getType() : "breaking", - TreeMap::new, - Collectors.toList() + // Group changelogs for each type by their team area + Collectors.groupingBy(ChangelogEntry::getArea, TreeMap::new, Collectors.toList()) + ) ) ); - generateHeader(version); - - groupedChangelogs.forEach((type, changelogsByType) -> { - generateGroupHeader(version, type); - - final TreeMap> changelogsByArea = changelogsByType.stream() - .collect(Collectors.groupingBy(ChangelogEntry::getArea, TreeMap::new, Collectors.toList())); - - changelogsByArea.forEach((area, perAreaChangelogs) -> { - out.println(area + "::"); - - // Generate the output lines first so that we can sort them - perAreaChangelogs.stream().map(log -> { - final StringBuilder sb = new StringBuilder( - "* " + log.getSummary() + " {es-pull}" + log.getPr() + "[#" + log.getPr() + "]" - ); - final List issues = log.getIssues(); - if (issues != null && issues.isEmpty() == false) { - sb.append(issues.size() == 1 ? " (issue: " : " (issues: "); - sb.append(issues.stream().map(i -> "{es-issue}" + i + "[#" + i + "]").collect(Collectors.joining(", "))); - sb.append(")"); - } - return sb.toString(); - }).sorted().forEach(out::println); - - out.println(); - }); - - out.println(); - }); - } - - private void generateHeader(Version version) { - String branch = version.getMajor() + "." + version.getMinor(); - - out.println("[[release-notes-" + version + "]]"); - out.println("== {es} version " + version); - - if (version.getQualifiers().contains("SNAPSHOT")) { - out.println(); - out.println("coming[" + version + "]"); - } - - out.println(); - out.println("Also see <>."); - out.println(); - } + // Sort per-area changelogs by their summary text. Assumes that the underlying list is sortable + changelogsByVersionByTypeByArea.forEach( + (_version, byVersion) -> byVersion.forEach( + (_type, byTeam) -> byTeam.forEach( + (_team, changelogsForTeam) -> changelogsForTeam.sort(Comparator.comparing(ChangelogEntry::getSummary)) + ) + ) + ); - private void generateGroupHeader(Version version, String type) { - out.println("[[" + type + "-" + version + "]]"); - out.println("[discrete]"); - out.println("=== " + TYPE_LABELS.get(type)); - out.println(); + return changelogsByVersionByTypeByArea; } } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index 069189f092510..902cb64bdcbe6 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -8,14 +8,17 @@ package org.elasticsearch.gradle.internal.release; +import groovy.text.SimpleTemplateEngine; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.File; +import java.io.FileWriter; import java.io.IOException; -import java.io.PrintStream; import java.nio.file.Files; +import java.util.HashMap; import java.util.List; +import java.util.Map; import java.util.stream.Collectors; /** @@ -25,7 +28,7 @@ */ public class ReleaseNotesIndexUpdater { - public static void update(File indexFile) throws IOException { + public static void update(File indexTemplate, File indexFile) throws IOException { final Version version = VersionProperties.getElasticsearchVersion(); final List indexLines = Files.readAllLines(indexFile.toPath()); @@ -59,21 +62,16 @@ public static void update(File indexFile) throws IOException { existingIncludes.add(insertionIndex, includeString); } - final PrintStream out = new PrintStream(indexFile); + final Map bindings = new HashMap<>(); + bindings.put("existingVersions", existingVersions); + bindings.put("existingIncludes", existingIncludes); - out.println("[[es-release-notes]]"); - out.println("= Release notes"); - out.println(); - out.println("[partintro]"); - out.println("--"); - out.println(); - out.println("This section summarizes the changes in each release."); - out.println(); - existingVersions.forEach(v -> out.println("* <>")); - out.println(); - out.println("--"); - out.println(); - existingIncludes.forEach(majorMinor -> out.println("include::release-notes/" + majorMinor + ".asciidoc[]")); + try { + final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + engine.createTemplate(indexTemplate).make(bindings).writeTo(new FileWriter(indexFile)); + } catch (ClassNotFoundException e) { + throw new RuntimeException(e); + } } private static String ensurePatchVersion(String version) { diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java index ad4cdd83dff7d..a3d850b851aba 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java @@ -13,6 +13,7 @@ import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; import org.gradle.api.Plugin; import org.gradle.api.Project; +import org.gradle.api.file.Directory; import org.gradle.api.file.FileTree; import org.gradle.api.file.ProjectLayout; import org.gradle.api.provider.Provider; @@ -27,6 +28,8 @@ */ public class ReleaseToolsPlugin implements Plugin { + private static final String RESOURCES = "build-tools-internal/src/main/resources/"; + private final ProjectLayout projectLayout; @Inject @@ -36,10 +39,10 @@ public ReleaseToolsPlugin(ProjectLayout projectLayout) { @Override public void apply(Project project) { -// project.getPluginManager().apply(PrecommitTaskPlugin.class); + // project.getPluginManager().apply(PrecommitTaskPlugin.class); + final Directory projectDirectory = projectLayout.getProjectDirectory(); - final FileTree yamlFiles = projectLayout.getProjectDirectory() - .dir("docs/changelog") + final FileTree yamlFiles = projectDirectory.dir("docs/changelog") .getAsFileTree() .matching(new PatternSet().include("**/*.yml", "**/*.yaml")); @@ -48,17 +51,17 @@ public void apply(Project project) { task.setGroup("Documentation"); task.setDescription("Validates that all the changelog YAML files comply with the changelog schema"); task.setInputFiles(yamlFiles); - task.setJsonSchema(new File(project.getRootDir(), "build-tools-internal/src/main/resources/changelog-schema.json")); + task.setJsonSchema(new File(project.getRootDir(), RESOURCES + "changelog-schema.json")); task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); }); final TaskProvider validateChangelogsTask = project.getTasks() .register("validateChangelogs", ValidateYamlTask.class, task -> { - task.setGroup("Documentation"); - task.setDescription("Validates that all the changelog YAML files are well-formed"); - task.setChangelogs(yamlFiles); - task.dependsOn(validateChangelogsAgainstYamlTask); - }); + task.setGroup("Documentation"); + task.setDescription("Validates that all the changelog YAML files are well-formed"); + task.setChangelogs(yamlFiles); + task.dependsOn(validateChangelogsAgainstYamlTask); + }); project.getTasks().register("generateReleaseNotes", GenerateReleaseNotesTask.class).configure(task -> { final Version version = VersionProperties.getElasticsearchVersion(); @@ -66,23 +69,29 @@ public void apply(Project project) { task.setGroup("Documentation"); task.setDescription("Generates release notes from changelog files held in this checkout"); task.setChangelogs(yamlFiles); - task.setReleaseNotesIndexFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes.asciidoc")); + task.setReleaseNotesIndexTemplate(projectDirectory.file(RESOURCES + "templates/release-notes-index.asciidoc")); + task.setReleaseNotesIndexFile(projectDirectory.file("docs/reference/release-notes.asciidoc")); + + task.setReleaseNotesTemplate(projectDirectory.file(RESOURCES + "templates/release-notes.asciidoc")); task.setReleaseNotesFile( - projectLayout.getProjectDirectory() - .file(String.format("docs/reference/release-notes/%d.%d.asciidoc", version.getMajor(), version.getMinor())) + projectDirectory.file(String.format("docs/reference/release-notes/%d.%d.asciidoc", version.getMajor(), version.getMinor())) ); - task.setReleaseHighlightsFile(projectLayout.getProjectDirectory().file("docs/reference/release-notes/highlights.asciidoc")); + task.setReleaseHighlightsTemplate(projectDirectory.file(RESOURCES + "templates/release-highlights.asciidoc")); + task.setReleaseHighlightsFile(projectDirectory.file("docs/reference/release-notes/highlights.asciidoc")); + task.setBreakingChangesTemplate(projectDirectory.file(RESOURCES + "templates/breaking-changes.asciidoc")); task.setBreakingChangesFile( - projectLayout.getProjectDirectory() - .file(String.format("docs/reference/migration/migrate_%d_%d.asciidoc", version.getMajor(), version.getMinor())) + projectDirectory.file( + String.format("docs/reference/migration/migrate_%d_%d.asciidoc", version.getMajor(), version.getMinor()) + ) ); task.dependsOn(validateChangelogsTask); }); -// project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); + // FIXME + // project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); } } diff --git a/build-tools-internal/src/main/resources/changelog-schema.json b/build-tools-internal/src/main/resources/changelog-schema.json index 896b2e86c9a71..f0ea57b3c5560 100644 --- a/build-tools-internal/src/main/resources/changelog-schema.json +++ b/build-tools-internal/src/main/resources/changelog-schema.json @@ -137,14 +137,14 @@ "type": "string", "minLength": 1 }, - "summary": { + "body": { "type": "string", "minLength": 1 } }, "required": [ "title", - "summary" + "body" ], "additionalProperties": false }, diff --git a/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc new file mode 100644 index 0000000000000..78b5cc03c1b96 --- /dev/null +++ b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc @@ -0,0 +1,102 @@ +[[migrating-${majorDotMinor}]] +== Migrating to ${majorDotMinor} +++++ +${majorDotMinor} +++++ + +This section discusses the changes that you need to be aware of when migrating +your application to {es} ${majorDotMinor}. + +See also <> and <>. +<% if (isElasticsearchSnapshot) { %> + +coming[${version}] +<% } %> +//NOTE: The notable-breaking-changes tagged regions are re-used in the +//Installation and Upgrade Guide + +<% if (breakingChangesByArea.empty == false) { %> + +[discrete] +[[breaking-changes-${majorDotMinor}]] +=== Breaking changes + +The following changes in {es} ${majorDotMinor} might affect your applications +and prevent them from operating normally. +Before upgrading to ${majorDotMinor} review these changes and take the described steps +to mitigate the impact. + +NOTE: Breaking changes introduced in minor versions are +normally limited to security and bug fixes. +Significant changes in behavior are deprecated in a minor release and +the old behavior is supported until the next major release. +To find out if you are using any deprecated functionality, +enable <>. + +<% +breakingChangesByArea.eachWithIndex { area, breakingChanges, i -> + print "\n" + + if (breakingChanges.any { it.notable }) { + print "// tag::notable-breaking-changes[]\n" + } + + print "[discrete]\n" + print "[[breaking_${majorMinor}_${ area.toLowerCase().replaceAll("[^a-z0-9]+", "_") }]]" + print "==== ${area}" + + for (breaking in breakingChanges) { %> +[[${ breaking.anchor }]] +.${breaking.title} +[%collapsible] +==== +*Details* + +${breaking.details.trim()} + +*Impact* + +${breaking.impact.trim()} +==== +<% } + + if (breakingChanges.any { it.notable }) { + out.write("// tag::notable-breaking-changes[]\n"); + } +} +%> +<% } %> +<% if (deprecationsByArea.empty == false) { %> + +[discrete] +[[deprecated-${majorDotMinor}]] +=== Deprecations + +The following functionality has been deprecated in {es} ${majorDotMinor} +and will be removed in ${nextMajor}. +While this won't have an immediate impact on your applications, +we strongly encourage you take the described steps to update your code +after upgrading to ${majorDotMinor}. + +NOTE: Significant changes in behavior are deprecated in a minor release and +the old behavior is supported until the next major release. +To find out if you are using any deprecated functionality, +enable <>." + +<% +deprecationsByArea.eachWithIndex { area, deprecations, i -> + print "\n[discrete]\n" + print "[[deprecations_${majorMinor}_${ area.toLowerCase().replaceAll("[^a-z0-9]+", "_") }]]" + print "==== ${area} deprecations" + + for (deprecation in deprecations) { %> + +[[${ deprecation.anchor }]] +.${deprecation.title} +[%collapsible] +==== +*Details* + +${deprecation.body.trim()} +==== +<% +} +} +} %> diff --git a/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc b/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc new file mode 100644 index 0000000000000..eb3b4a7b4ae84 --- /dev/null +++ b/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc @@ -0,0 +1,34 @@ +[[release-highlights]] +== What's new in {minor-version} + +coming::[{minor-version}] + +Here are the highlights of what's new and improved in {es} {minor-version}! +ifeval::[\\{release-state}\\"!=\\"unreleased\\"] +For detailed information about this release, see the <> and +<>. +endif::[] +<% if (priorVersions.size > 0) { %> +// Add previous release to the list +Other versions: + +<% print priorVersions.join("\n| ") %> +<% } %> + +<% if (notableHighlights.empty == false) { %> +// tag::notable-highlights[] +<% for (highlight in notableHighlights) { %> +[discrete] +=== ${highlight.title} +${highlight.body.trim()} + +<% } %> +// end::notable-highlights[] +<% } %> + +<% for (highlight in nonNotableHighlights) { %> +[discrete] +=== ${highlight.title} +${highlight.body.trim()} + +<% } %> diff --git a/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc b/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc new file mode 100644 index 0000000000000..76a91e5d889e5 --- /dev/null +++ b/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc @@ -0,0 +1,13 @@ +[[es-release-notes]] += Release notes + +[partintro] +-- + +This section summarizes the changes in each release. + +<% existingVersions.each { print "* <>\n" } %> + +-- + +<% existingIncludes.each { print "include::release-notes/${ it }.asciidoc[]\n" } %> diff --git a/build-tools-internal/src/main/resources/templates/release-notes.asciidoc b/build-tools-internal/src/main/resources/templates/release-notes.asciidoc new file mode 100644 index 0000000000000..235f16d3d30aa --- /dev/null +++ b/build-tools-internal/src/main/resources/templates/release-notes.asciidoc @@ -0,0 +1,27 @@ +<% for (version in changelogsByVersionByTypeByArea.keySet()) { +%>[[release-notes-$version]] +== {es} version $version +<% if (version.qualifier == "SNAPSHOT") { %> +coming[$version] +<% } %> +Also see <>. +<% for (changeType in changelogsByVersionByTypeByArea[version].keySet()) { %> +[[${ changeType }-${ version }]] +[float] +=== ${ TYPE_LABELS[changeType] } +<% for (team in changelogsByVersionByTypeByArea[version][changeType].keySet()) { + print "\n${team}::\n"; + + for (change in changelogsByVersionByTypeByArea[version][changeType][team]) { + print "* ${change.summary} {es-pull}${change.pr}[#${change.pr}]" + if (change.issues != null && change.issues.empty == false) { + print change.issues.size() == 1 ? " (issue: " : " (issues: " + print change.issues.collect { "{es-issue}${it}[#${it}]" }.join(", ") + print ")" + } + print "\n" + } +} +} +} +%> diff --git a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java b/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java index 4caf3ac9f748b..104fa797be3ff 100644 --- a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ b/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java @@ -19,7 +19,9 @@ import static java.util.Arrays.asList; import static org.hamcrest.Matchers.contains; import static org.hamcrest.Matchers.empty; +import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.nullValue; public class VersionTests extends GradleUnitTestCase { @@ -31,16 +33,13 @@ public void testVersionParsing() { assertVersionEquals("7.0.1-alpha2", 7, 0, 1); assertVersionEquals("5.1.2-rc3", 5, 1, 2); assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2); - assertVersionEquals("6.1.2-beta1-SNAPSHOT", 6, 1, 2); assertVersionEquals("17.03.11", 17, 3, 11); } public void testRelaxedVersionParsing() { assertVersionEquals("6.1.2", 6, 1, 2, Version.Mode.RELAXED); assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2, Version.Mode.RELAXED); - assertVersionEquals("6.1.2-beta1-SNAPSHOT", 6, 1, 2, Version.Mode.RELAXED); assertVersionEquals("6.1.2-foo", 6, 1, 2, Version.Mode.RELAXED); - assertVersionEquals("6.1.2-foo-bar", 6, 1, 2, Version.Mode.RELAXED); assertVersionEquals("16.01.22", 16, 1, 22, Version.Mode.RELAXED); } @@ -103,16 +102,13 @@ public void testExceptionSyntax() { public void testLabels() { Version v = Version.fromString("1.2.3"); - assertThat(v.getQualifiers(), empty()); + assertThat(v.getQualifier(), nullValue()); v = Version.fromString("1.2.3-rc1"); - assertThat(v.getQualifiers(), contains("rc1")); - - v = Version.fromString("1.2.3-rc1-SNAPSHOT"); - assertThat(v.getQualifiers(), contains("rc1", "SNAPSHOT")); + assertThat(v.getQualifier(), equalTo("rc1")); v = Version.fromString("1.2.3-SNAPSHOT"); - assertThat(v.getQualifiers(), contains("SNAPSHOT")); + assertThat(v.getQualifier(), equalTo("SNAPSHOT")); } private void assertOrder(Version smaller, Version bigger) { diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/Version.java b/build-tools/src/main/java/org/elasticsearch/gradle/Version.java index 50ab65b178b7b..17c1739d7e7ed 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/Version.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/Version.java @@ -22,7 +22,7 @@ public final class Version implements Comparable { private final int minor; private final int revision; private final int id; - private final List qualifiers; + private final String qualifier; /** * Specifies how a version string should be parsed. @@ -40,26 +40,23 @@ public enum Mode { RELAXED } - private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)((?:-alpha\\d+|-beta\\d+|-rc\\d+)?(?:-SNAPSHOT)?)?"); + private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-alpha\\d+|-beta\\d+|-rc\\d+|-SNAPSHOT)?"); private static final Pattern relaxedPattern = Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)((?:-[a-zA-Z0-9_]+)*)?"); public Version(int major, int minor, int revision) { - this(major, minor, revision, List.of()); + this(major, minor, revision, null); } - public Version(int major, int minor, int revision, List qualifiers) { - Objects.requireNonNull(major, "major version can't be null"); - Objects.requireNonNull(minor, "minor version can't be null"); - Objects.requireNonNull(revision, "revision version can't be null"); + public Version(int major, int minor, int revision, String qualifier) { this.major = major; this.minor = minor; this.revision = revision; - // currently snapshot is not taken into account + // currently qualifier is not taken into account this.id = major * 10000000 + minor * 100000 + revision * 1000; - this.qualifiers = new ArrayList<>(qualifiers); + this.qualifier = qualifier; } public static Version fromString(final String s) { @@ -71,24 +68,18 @@ public static Version fromString(final String s, final Mode mode) { Matcher matcher = mode == Mode.STRICT ? pattern.matcher(s) : relaxedPattern.matcher(s); if (matcher.matches() == false) { String expected = mode == Mode.STRICT - ? "major.minor.revision[-(alpha|beta|rc)Number][-SNAPSHOT]" + ? "major.minor.revision[-(alpha|beta|rc)Number|-SNAPSHOT]" : "major.minor.revision[-extra]"; throw new IllegalArgumentException("Invalid version format: '" + s + "'. Should be " + expected); } - String labelString = matcher.group(4); - List labels; - if (labelString == null || labelString.isEmpty()) { - labels = List.of(); - } else { - labels = Arrays.asList(labelString.substring(1).split("-")); - } + String qualifier = matcher.group(4); return new Version( Integer.parseInt(matcher.group(1)), Integer.parseInt(matcher.group(2)), Integer.parseInt(matcher.group(3)), - labels + qualifier ); } @@ -162,8 +153,8 @@ protected int getId() { return id; } - public List getQualifiers() { - return qualifiers; + public String getQualifier() { + return qualifier; } @Override From 6e24def61fb7a89e5dce06fb8c9aa89c59a9ccc7 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 14 Jun 2021 15:25:49 +0100 Subject: [PATCH 13/22] Various fixes --- .../release/BreakingChangesGenerator.java | 16 ++++---- .../internal/release/ChangelogEntry.java | 25 +++++++----- .../release/ReleaseHighlightsGenerator.java | 4 +- .../release/ReleaseNotesIndexUpdater.java | 7 +++- .../templates/breaking-changes.asciidoc | 40 +++++++++---------- .../templates/release-highlights.asciidoc | 13 +++--- .../templates/release-notes-index.asciidoc | 1 - 7 files changed, 58 insertions(+), 48 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java index d8b427b069d8f..f42e77e005c03 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java @@ -9,18 +9,15 @@ package org.elasticsearch.gradle.internal.release; import groovy.text.SimpleTemplateEngine; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; -import java.io.Closeable; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintStream; import java.util.HashMap; import java.util.List; -import java.util.Locale; import java.util.Map; import java.util.Objects; import java.util.TreeMap; @@ -34,10 +31,15 @@ public class BreakingChangesGenerator { public static void update(File templateFile, File outputFile, List entries) throws IOException { final Version version = VersionProperties.getElasticsearchVersion(); - final Map> breakingChangesByArea = entries.stream() + final Map>> breakingChangesByNotabilityByArea = entries.stream() .map(ChangelogEntry::getBreaking) .filter(Objects::nonNull) - .collect(Collectors.groupingBy(ChangelogEntry.Breaking::getArea, TreeMap::new, Collectors.toList())); + .collect( + Collectors.groupingBy( + ChangelogEntry.Breaking::isNotable, + Collectors.groupingBy(ChangelogEntry.Breaking::getArea, TreeMap::new, Collectors.toList()) + ) + ); final Map> deprecationsByArea = entries.stream() .map(ChangelogEntry::getDeprecation) @@ -45,7 +47,7 @@ public static void update(File templateFile, File outputFile, List bindings = new HashMap<>(); - bindings.put("breakingChangesByArea", breakingChangesByArea); + bindings.put("breakingChangesByNotabilityByArea", breakingChangesByNotabilityByArea); bindings.put("deprecationsByArea", deprecationsByArea); bindings.put("isElasticsearchSnapshot", VersionProperties.isElasticsearchSnapshot()); bindings.put("majorDotMinor", version.getMajor() + "." + version.getMinor()); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java index e1f6e2980c23a..eea08483eaf27 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java @@ -191,6 +191,10 @@ public void setBody(String body) { this.body = body; } + public String getAnchor() { + return generatedAnchor(this.title); + } + @Override public boolean equals(Object o) { if (this == o) { @@ -277,10 +281,10 @@ public boolean equals(Object o) { } Breaking breaking = (Breaking) o; return notable == breaking.notable - && Objects.equals(area, breaking.area) - && Objects.equals(title, breaking.title) - && Objects.equals(details, breaking.details) - && Objects.equals(impact, breaking.impact); + && Objects.equals(area, breaking.area) + && Objects.equals(title, breaking.title) + && Objects.equals(details, breaking.details) + && Objects.equals(impact, breaking.impact); } @Override @@ -295,7 +299,8 @@ public String toString() { area, title, details, - impact, notable + impact, + notable ); } } @@ -342,9 +347,7 @@ public boolean equals(Object o) { return false; } Deprecation that = (Deprecation) o; - return Objects.equals(area, that.area) - && Objects.equals(title, that.title) - && Objects.equals(body, that.body); + return Objects.equals(area, that.area) && Objects.equals(title, that.title) && Objects.equals(body, that.body); } @Override @@ -361,7 +364,11 @@ public String toString() { private static String generatedAnchor(String input) { final List excludes = List.of("the", "is", "a"); - final String[] words = input.replaceAll("[^\\w]+", "_").replaceFirst("^_+", "").replaceFirst("_+$", "").split("_+"); + final String[] words = input.toLowerCase(Locale.ROOT) + .replaceAll("[^\\w]+", "_") + .replaceFirst("^_+", "") + .replaceFirst("_+$", "") + .split("_+"); return Arrays.stream(words).filter(word -> excludes.contains(word) == false).collect(Collectors.joining("_")); } } diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java index ebe83c9293c75..8d788583cea9b 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java @@ -9,15 +9,13 @@ package org.elasticsearch.gradle.internal.release; import groovy.text.SimpleTemplateEngine; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; -import java.io.Closeable; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintStream; import java.util.ArrayList; import java.util.HashMap; import java.util.List; diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index 902cb64bdcbe6..5d81deecd38a9 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -9,6 +9,7 @@ package org.elasticsearch.gradle.internal.release; import groovy.text.SimpleTemplateEngine; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; @@ -35,21 +36,23 @@ public static void update(File indexTemplate, File indexFile) throws IOException final List existingVersions = indexLines.stream() .filter(line -> line.startsWith("* < line.replace("* <>", "")) + .distinct() .collect(Collectors.toList()); final List existingIncludes = indexLines.stream() .filter(line -> line.startsWith("include::")) .map(line -> line.replace("include::release-notes/", "").replace(".asciidoc[]", "")) + .distinct() .collect(Collectors.toList()); - final String versionString = VersionProperties.getElasticsearch(); + final String versionString = version.toString(); if (existingVersions.contains(versionString) == false) { int insertionIndex = existingVersions.size() - 1; while (insertionIndex > 0 && Version.fromString(existingVersions.get(insertionIndex)).before(version)) { insertionIndex -= 1; } - existingVersions.add(insertionIndex, version.toString()); + existingVersions.add(insertionIndex, versionString); } final String includeString = version.getMajor() + "." + version.getMinor(); diff --git a/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc index 78b5cc03c1b96..909f443347f32 100644 --- a/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc +++ b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc @@ -9,14 +9,11 @@ your application to {es} ${majorDotMinor}. See also <> and <>. <% if (isElasticsearchSnapshot) { %> - coming[${version}] <% } %> //NOTE: The notable-breaking-changes tagged regions are re-used in the //Installation and Upgrade Guide - -<% if (breakingChangesByArea.empty == false) { %> - +<% if (breakingChangesByNotabilityByArea.isEmpty() == false) { %> [discrete] [[breaking-changes-${majorDotMinor}]] === Breaking changes @@ -32,20 +29,22 @@ Significant changes in behavior are deprecated in a minor release and the old behavior is supported until the next major release. To find out if you are using any deprecated functionality, enable <>. - <% -breakingChangesByArea.eachWithIndex { area, breakingChanges, i -> - print "\n" +[true, false].each { isNotable -> + def breakingChangesByArea = breakingChangesByNotabilityByArea.getOrDefault(isNotable, []) - if (breakingChanges.any { it.notable }) { - print "// tag::notable-breaking-changes[]\n" - } + breakingChangesByArea.eachWithIndex { area, breakingChanges, i -> + print "\n" - print "[discrete]\n" - print "[[breaking_${majorMinor}_${ area.toLowerCase().replaceAll("[^a-z0-9]+", "_") }]]" - print "==== ${area}" + if (isNotable) { + print "// tag::notable-breaking-changes[]\n" + } - for (breaking in breakingChanges) { %> + print "[discrete]\n" + print "[[breaking_${majorMinor}_${ area.toLowerCase().replaceAll("[^a-z0-9]+", "_") }]]\n" + print "==== ${area}\n" + + for (breaking in breakingChanges) { %> [[${ breaking.anchor }]] .${breaking.title} [%collapsible] @@ -56,15 +55,16 @@ ${breaking.details.trim()} *Impact* + ${breaking.impact.trim()} ==== -<% } +<% + } - if (breakingChanges.any { it.notable }) { - out.write("// tag::notable-breaking-changes[]\n"); + if (isNotable) { + out.write("// end::notable-breaking-changes[]\n"); + } } } -%> -<% } %> -<% if (deprecationsByArea.empty == false) { %> +} +if (deprecationsByArea.empty == false) { %> [discrete] [[deprecated-${majorDotMinor}]] diff --git a/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc b/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc index eb3b4a7b4ae84..40b828d609745 100644 --- a/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc +++ b/build-tools-internal/src/main/resources/templates/release-highlights.asciidoc @@ -12,23 +12,24 @@ endif::[] // Add previous release to the list Other versions: -<% print priorVersions.join("\n| ") %> -<% } %> +<% +print priorVersions.join("\n| ") +print "\n" +} -<% if (notableHighlights.empty == false) { %> +if (notableHighlights.empty == false) { %> // tag::notable-highlights[] <% for (highlight in notableHighlights) { %> [discrete] +[[${ highlight.anchor }]] === ${highlight.title} ${highlight.body.trim()} - <% } %> // end::notable-highlights[] <% } %> - <% for (highlight in nonNotableHighlights) { %> [discrete] +[[${ highlight.anchor }]] === ${highlight.title} ${highlight.body.trim()} - <% } %> diff --git a/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc b/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc index 76a91e5d889e5..0b62b9b3f1e01 100644 --- a/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc +++ b/build-tools-internal/src/main/resources/templates/release-notes-index.asciidoc @@ -7,7 +7,6 @@ This section summarizes the changes in each release. <% existingVersions.each { print "* <>\n" } %> - -- <% existingIncludes.each { print "include::release-notes/${ it }.asciidoc[]\n" } %> From f71547220989bd86260b98c550fba0f933cbac18 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Tue, 15 Jun 2021 14:13:27 +0100 Subject: [PATCH 14/22] Support 'security' and 'known-issue' entries --- .../internal/release/ChangelogEntry.java | 12 +++++----- .../release/ReleaseNotesGenerator.java | 22 ++++++++++------- .../release/ReleaseNotesIndexUpdater.java | 2 +- .../internal/release/ReleaseToolsPlugin.java | 8 +++---- ...k.java => ValidateChangelogEntryTask.java} | 24 +++++++++++++++---- .../src/main/resources/changelog-schema.json | 7 +++--- .../templates/release-notes.asciidoc | 20 +++++++++++++++- 7 files changed, 65 insertions(+), 30 deletions(-) rename build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/{ValidateYamlTask.java => ValidateChangelogEntryTask.java} (66%) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java index eea08483eaf27..08b03b35ccd63 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ChangelogEntry.java @@ -21,15 +21,15 @@ import java.util.stream.Collectors; /** - * This class models the contents of a changelog YAML file. It contains no validation of its own, - * because we check it against a JSON Schema document. See also: + * This class models the contents of a changelog YAML file. We validate it using a + * JSON Schema, as well as some programmatic checks in {@link ValidateChangelogEntryTask}. * */ public class ChangelogEntry { - private int pr; + private Integer pr; private List issues; private String area; private String type; @@ -49,11 +49,11 @@ public static ChangelogEntry parse(File file) { } } - public int getPr() { + public Integer getPr() { return pr; } - public void setPr(int pr) { + public void setPr(Integer pr) { this.pr = pr; } @@ -130,7 +130,7 @@ public boolean equals(Object o) { return false; } ChangelogEntry that = (ChangelogEntry) o; - return pr == that.pr + return Objects.equals(pr, that.pr) && Objects.equals(issues, that.issues) && Objects.equals(area, that.area) && Objects.equals(type, that.type) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java index 85b7f660214b3..5195654e21b1a 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java @@ -11,13 +11,10 @@ import groovy.text.SimpleTemplateEngine; import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; -import org.jetbrains.annotations.NotNull; import java.io.File; -import java.io.FileNotFoundException; import java.io.FileWriter; import java.io.IOException; -import java.io.PrintStream; import java.util.Comparator; import java.util.HashMap; import java.util.List; @@ -39,10 +36,10 @@ public class ReleaseNotesGenerator { static { TYPE_LABELS.put("breaking", "Breaking changes"); TYPE_LABELS.put("breaking-java", "Breaking Java changes"); + TYPE_LABELS.put("bug", "Bug fixes"); TYPE_LABELS.put("deprecation", "Deprecations"); - TYPE_LABELS.put("feature", "New features"); TYPE_LABELS.put("enhancement", "Enhancements"); - TYPE_LABELS.put("bug", "Bug fixes"); + TYPE_LABELS.put("feature", "New features"); TYPE_LABELS.put("regression", "Regressions"); TYPE_LABELS.put("upgrade", "Upgrades"); } @@ -82,17 +79,24 @@ private static Map>>> buil .findFirst() .get(), - // Generate a reverse-ordered map + // Generate a reverse-ordered map. Despite the IDE saying the type can be inferred, removing it + // causes the compiler to complain. () -> new TreeMap>>>(Comparator.reverseOrder()), // Group changelogs entries by their change type Collectors.groupingBy( - // Breaking changes come first in the output + // Entries with breaking info are always put in the breaking section entry -> entry.getBreaking() == null ? entry.getType() : "breaking", TreeMap::new, - // Group changelogs for each type by their team area - Collectors.groupingBy(ChangelogEntry::getArea, TreeMap::new, Collectors.toList()) + Collectors.groupingBy( + // `security` and `known-issue` areas don't need to supply an area + entry -> entry.getType().equals("known-issue") || entry.getType().equals("security") + ? "_all_" + : entry.getArea(), + TreeMap::new, + Collectors.toList() + ) ) ) ); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index 5d81deecd38a9..921e8680b1f7b 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -23,7 +23,7 @@ import java.util.stream.Collectors; /** - * This class ensures that the release notes index page has the appropriate anchor and include directive + * This class ensures that the release notes index page has the appropriate anchors and include directives * for the current repository version. It achieves this by parsing out the existing entries and writing * out the file again. */ diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java index a3d850b851aba..b1557fba03cc1 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java @@ -49,16 +49,16 @@ public void apply(Project project) { final Provider validateChangelogsAgainstYamlTask = project.getTasks() .register("validateChangelogsAgainstSchema", ValidateYamlAgainstSchemaTask.class, task -> { task.setGroup("Documentation"); - task.setDescription("Validates that all the changelog YAML files comply with the changelog schema"); + task.setDescription("Validate that the changelog YAML files comply with the changelog schema"); task.setInputFiles(yamlFiles); task.setJsonSchema(new File(project.getRootDir(), RESOURCES + "changelog-schema.json")); task.setReport(new File(project.getBuildDir(), "reports/validateYaml.txt")); }); - final TaskProvider validateChangelogsTask = project.getTasks() - .register("validateChangelogs", ValidateYamlTask.class, task -> { + final TaskProvider validateChangelogsTask = project.getTasks() + .register("validateChangelogs", ValidateChangelogEntryTask.class, task -> { task.setGroup("Documentation"); - task.setDescription("Validates that all the changelog YAML files are well-formed"); + task.setDescription("Validate that all changelog YAML files are well-formed"); task.setChangelogs(yamlFiles); task.dependsOn(validateChangelogsAgainstYamlTask); }); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateChangelogEntryTask.java similarity index 66% rename from build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java rename to build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateChangelogEntryTask.java index 1ba4033503258..5f030eb074653 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateYamlTask.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ValidateChangelogEntryTask.java @@ -25,12 +25,12 @@ /** * Performs additional checks on changelog files, beyond whether they conform to the schema. */ -public class ValidateYamlTask extends DefaultTask { +public class ValidateChangelogEntryTask extends DefaultTask { private final ConfigurableFileCollection changelogs; private final ProjectLayout projectLayout; @Inject - public ValidateYamlTask(ObjectFactory objectFactory, ProjectLayout projectLayout) { + public ValidateChangelogEntryTask(ObjectFactory objectFactory, ProjectLayout projectLayout) { this.changelogs = objectFactory.fileCollection(); this.projectLayout = projectLayout; } @@ -45,13 +45,27 @@ public void executeTask() { // We don't try to find all such errors, because we expect them to be rare e.g. only // when a new file is added. changelogs.forEach((path, entry) -> { - if ((entry.getType().equals("breaking") || entry.getType().equals("breaking-java")) && entry.getBreaking() == null) { + final String type = entry.getType(); + + if (type.equals("known-issue") == false && type.equals("security") == false) { + if (entry.getPr() == null) { + throw new GradleException("[" + path + "] must provide a [pr] number (only 'known-issue' and " + + "'security' entries can omit this"); + } + + if (entry.getArea() == null) { + throw new GradleException("[" + path + "] must provide an [area] (only 'known-issue' and " + + "'security' entries can omit this"); + } + } + + if ((type.equals("breaking") || type.equals("breaking-java")) && entry.getBreaking() == null) { throw new GradleException( - "[" + path + "] has type [breaking] and must supply a [breaking] section with further information" + "[" + path + "] has type [" + type + "] and must supply a [breaking] section with further information" ); } - if (entry.getType().equals("deprecation") && entry.getDeprecation() == null) { + if (type.equals("deprecation") && entry.getDeprecation() == null) { throw new GradleException( "[" + path + "] has type [deprecation] and must supply a [deprecation] section with further information" ); diff --git a/build-tools-internal/src/main/resources/changelog-schema.json b/build-tools-internal/src/main/resources/changelog-schema.json index f0ea57b3c5560..a2dfc5ecd306f 100644 --- a/build-tools-internal/src/main/resources/changelog-schema.json +++ b/build-tools-internal/src/main/resources/changelog-schema.json @@ -7,8 +7,7 @@ "type": "object", "properties": { "pr": { - "type": "integer", - "minimum": 1 + "type": "integer" }, "issues": { "type": "array", @@ -93,8 +92,10 @@ "deprecation", "enhancement", "feature", + "known-issue", "new-aggregation", "regression", + "security", "upgrade" ] }, @@ -121,8 +122,6 @@ } }, "required": [ - "pr", - "area", "type", "summary", "versions" diff --git a/build-tools-internal/src/main/resources/templates/release-notes.asciidoc b/build-tools-internal/src/main/resources/templates/release-notes.asciidoc index 235f16d3d30aa..35384c8f4ce66 100644 --- a/build-tools-internal/src/main/resources/templates/release-notes.asciidoc +++ b/build-tools-internal/src/main/resources/templates/release-notes.asciidoc @@ -5,7 +5,25 @@ coming[$version] <% } %> Also see <>. -<% for (changeType in changelogsByVersionByTypeByArea[version].keySet()) { %> +<% if (changelogsByVersionByTypeByArea[version]["security"] != null) { %> +[discrete] +[[security-updates-${version}]] +=== Security updates + +<% for (change in changelogsByVersionByTypeByArea[version].remove("security").remove("_all_")) { + print "* ${change.summary}\n" +} +} +if (changelogsByVersionByTypeByArea[version]["known-issue"] != null) { %> +[discrete] +[[known-issues-${version}]] +=== Known issues + +<% for (change in changelogsByVersionByTypeByArea[version].remove("known-issue").remove("_all_")) { + print "* ${change.summary}\n" +} +} +for (changeType in changelogsByVersionByTypeByArea[version].keySet()) { %> [[${ changeType }-${ version }]] [float] === ${ TYPE_LABELS[changeType] } From a3c3109e934c4c9f0b400c89bf4d0e4e8bc2eb6d Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Tue, 15 Jun 2021 14:31:44 +0100 Subject: [PATCH 15/22] Make it possible to test generator code --- .../release/ReleaseHighlightsGenerator.java | 18 ++++++++++-- .../release/ReleaseNotesGenerator.java | 28 +++++++++++++------ .../release/ReleaseNotesIndexUpdater.java | 23 +++++++++++---- 3 files changed, 52 insertions(+), 17 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java index 8d788583cea9b..764b408cb9760 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseHighlightsGenerator.java @@ -10,12 +10,15 @@ import groovy.text.SimpleTemplateEngine; +import com.google.common.annotations.VisibleForTesting; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Files; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -27,10 +30,19 @@ * Generates the release highlights notes, for changelog files that contain the highlight field. */ public class ReleaseHighlightsGenerator { - public static void update(File templateFile, File outputFile, List entries) throws IOException { + generateFile( + VersionProperties.getElasticsearchVersion(), + Files.readString(templateFile.toPath()), + entries, + new FileWriter(outputFile) + ); + } + + @VisibleForTesting + static void generateFile(Version version, String templateFile, List entries, FileWriter outputWriter) + throws IOException { final List priorVersions = new ArrayList<>(); - final Version version = VersionProperties.getElasticsearchVersion(); if (version.getMinor() > 0) { final int major = version.getMajor(); @@ -59,7 +71,7 @@ public static void update(File templateFile, File outputFile, List changelogs) throws IOException { - final var changelogsByVersionByTypeByArea = buildChangelogBreakdown(changelogs); - final FileWriter fileWriter = new FileWriter(outputFile); - final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + + final String templateString = Files.readString(templateFile.toPath()); + + generateFile(VersionProperties.getElasticsearchVersion(), templateString, changelogs, fileWriter); + } + + @VisibleForTesting + static void generateFile(Version version, String template, List changelogs, Writer outputWriter) throws IOException { + final var changelogsByVersionByTypeByArea = buildChangelogBreakdown(version, changelogs); final Map bindings = new HashMap<>(); bindings.put("changelogsByVersionByTypeByArea", changelogsByVersionByTypeByArea); bindings.put("TYPE_LABELS", TYPE_LABELS); try { - engine.createTemplate(templateFile).make(bindings).writeTo(fileWriter); + final SimpleTemplateEngine engine = new SimpleTemplateEngine(); + engine.createTemplate(template).make(bindings).writeTo(outputWriter); } catch (ClassNotFoundException e) { - throw new RuntimeException(e); + throw new GradleException("Failed to generate file from template", e); } } - private static Map>>> buildChangelogBreakdown(List changelogs) { - final Version elasticsearchVersion = VersionProperties.getElasticsearchVersion(); - + private static Map>>> buildChangelogBreakdown( + Version elasticsearchVersion, + List changelogs + ) { final Predicate includedInSameMinor = v -> v.getMajor() == elasticsearchVersion.getMajor() && v.getMinor() == elasticsearchVersion.getMinor(); diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index 921e8680b1f7b..cdf880ed02ab1 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -8,14 +8,15 @@ package org.elasticsearch.gradle.internal.release; +import com.google.common.annotations.VisibleForTesting; import groovy.text.SimpleTemplateEngine; - import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.io.Writer; import java.nio.file.Files; import java.util.HashMap; import java.util.List; @@ -30,16 +31,26 @@ public class ReleaseNotesIndexUpdater { public static void update(File indexTemplate, File indexFile) throws IOException { - final Version version = VersionProperties.getElasticsearchVersion(); - final List indexLines = Files.readAllLines(indexFile.toPath()); + final List existingIndexLines = Files.readAllLines(indexFile.toPath()); + FileWriter indexFileWriter = new FileWriter(indexFile); + generateFile( + VersionProperties.getElasticsearchVersion(), + existingIndexLines, + Files.readString(indexTemplate.toPath()), + indexFileWriter + ); + } - final List existingVersions = indexLines.stream() + @VisibleForTesting + static void generateFile(Version version, List existingIndexLines, String indexTemplate, Writer outputWriter) + throws IOException { + final List existingVersions = existingIndexLines.stream() .filter(line -> line.startsWith("* < line.replace("* <>", "")) .distinct() .collect(Collectors.toList()); - final List existingIncludes = indexLines.stream() + final List existingIncludes = existingIndexLines.stream() .filter(line -> line.startsWith("include::")) .map(line -> line.replace("include::release-notes/", "").replace(".asciidoc[]", "")) .distinct() @@ -71,7 +82,7 @@ public static void update(File indexTemplate, File indexFile) throws IOException try { final SimpleTemplateEngine engine = new SimpleTemplateEngine(); - engine.createTemplate(indexTemplate).make(bindings).writeTo(new FileWriter(indexFile)); + engine.createTemplate(indexTemplate).make(bindings).writeTo(outputWriter); } catch (ClassNotFoundException e) { throw new RuntimeException(e); } From f489015dca86eaf6e9e4fd76d10c94e39d9539a6 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Fri, 18 Jun 2021 14:47:42 +0100 Subject: [PATCH 16/22] Test changelog files --- docs/changelog/68214.yaml | 34 ++++++++++++++++++++++++++++++++++ docs/changelog/68564.yaml | 12 ++++++++++++ docs/changelog/68606.yaml | 11 +++++++++++ docs/changelog/blark.yaml | 4 ++++ docs/changelog/sekuritay.yaml | 4 ++++ 5 files changed, 65 insertions(+) create mode 100644 docs/changelog/blark.yaml create mode 100644 docs/changelog/sekuritay.yaml diff --git a/docs/changelog/68214.yaml b/docs/changelog/68214.yaml index 30be6b1941ba3..d9a585b07b556 100644 --- a/docs/changelog/68214.yaml +++ b/docs/changelog/68214.yaml @@ -7,3 +7,37 @@ type: enhancement summary: Update supported version for `date_nanos` versions: - v8.0.0 +highlight: + notable: true + title: Very notable change + body: Outstanding, well done everyone! +deprecation: + area: Aggregation + title: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + body: |- + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea + commodo consequat. Duis aute irure dolor in reprehenderit in voluptate + velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia deserunt + mollit anim id est laborum. +breaking: + area: Aggregation + title: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + details: |- + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea + commodo consequat. Duis aute irure dolor in reprehenderit in voluptate + velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia deserunt + mollit anim id est laborum. + impact: |- + Sed ut perspiciatis unde omnis iste natus error sit voluptatem + accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae + ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt + explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut + odit aut fugit, sed quia consequuntur magni dolores eos qui ratione + voluptatem sequi nesciunt. + notable: true diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml index 18ce3ff5b34f6..97255fe0ccd2f 100644 --- a/docs/changelog/68564.yaml +++ b/docs/changelog/68564.yaml @@ -16,3 +16,15 @@ breaking: the `_type` field within search requests has been removed. impact: If you include the `_type` field in search requests, you now need to remove it. + +highlight: + notable: false + title: Twatbasket + body: |- + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea + commodo consequat. Duis aute irure dolor in reprehenderit in voluptate + velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia deserunt + mollit anim id est laborum. diff --git a/docs/changelog/68606.yaml b/docs/changelog/68606.yaml index 6d9a56f2eba72..202e731fb037e 100644 --- a/docs/changelog/68606.yaml +++ b/docs/changelog/68606.yaml @@ -5,3 +5,14 @@ type: enhancement summary: Add text formatting support for multivalue versions: - v8.0.0 +highlight: + notable: false + title: arse badger + body: |- + Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod + tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim + veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea + commodo consequat. Duis aute irure dolor in reprehenderit in voluptate + velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint + occaecat cupidatat non proident, sunt in culpa qui officia deserunt + mollit anim id est laborum. diff --git a/docs/changelog/blark.yaml b/docs/changelog/blark.yaml new file mode 100644 index 0000000000000..221bb6ffa893a --- /dev/null +++ b/docs/changelog/blark.yaml @@ -0,0 +1,4 @@ +type: known-issue +summary: We done broke it gud, y'all +versions: + - 8.0.0 diff --git a/docs/changelog/sekuritay.yaml b/docs/changelog/sekuritay.yaml new file mode 100644 index 0000000000000..9037d0dc96185 --- /dev/null +++ b/docs/changelog/sekuritay.yaml @@ -0,0 +1,4 @@ +type: security +summary: ZOMG we sold your info to the Ruskies. Oops. +versions: + - 8.0.0 From d3ee9b75ee9f66447d2453d52dd34709e5c3f59f Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Thu, 24 Jun 2021 11:59:22 +0100 Subject: [PATCH 17/22] Review feedback --- .../release/BreakingChangesGenerator.java | 14 +++++++++++-- .../release/ReleaseHighlightsGenerator.java | 11 ++++------ .../release/ReleaseNotesGenerator.java | 8 +++---- .../release/ReleaseNotesIndexUpdater.java | 21 +++++++++++-------- .../templates/breaking-changes.asciidoc | 2 +- 5 files changed, 33 insertions(+), 23 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java index f42e77e005c03..691aa47d9ebbc 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/BreakingChangesGenerator.java @@ -10,12 +10,15 @@ import groovy.text.SimpleTemplateEngine; +import com.google.common.annotations.VisibleForTesting; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; import java.io.File; import java.io.FileWriter; import java.io.IOException; +import java.nio.file.Files; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -28,7 +31,14 @@ */ public class BreakingChangesGenerator { - public static void update(File templateFile, File outputFile, List entries) throws IOException { + static void update(File templateFile, File outputFile, List entries) throws IOException { + try (FileWriter output = new FileWriter(outputFile)) { + generateFile(Files.readString(templateFile.toPath()), output, entries); + } + } + + @VisibleForTesting + private static void generateFile(String template, FileWriter outputWriter, List entries) throws IOException { final Version version = VersionProperties.getElasticsearchVersion(); final Map>> breakingChangesByNotabilityByArea = entries.stream() @@ -57,7 +67,7 @@ public static void update(File templateFile, File outputFile, Listhighlight field. */ public class ReleaseHighlightsGenerator { - public static void update(File templateFile, File outputFile, List entries) throws IOException { - generateFile( - VersionProperties.getElasticsearchVersion(), - Files.readString(templateFile.toPath()), - entries, - new FileWriter(outputFile) - ); + static void update(File templateFile, File outputFile, List entries) throws IOException { + try (FileWriter output = new FileWriter(outputFile)) { + generateFile(VersionProperties.getElasticsearchVersion(), Files.readString(templateFile.toPath()), entries, output); + } } @VisibleForTesting diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java index 2c976e3c8e4a0..52995717a435a 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesGenerator.java @@ -48,12 +48,12 @@ public class ReleaseNotesGenerator { TYPE_LABELS.put("upgrade", "Upgrades"); } - public static void update(File templateFile, File outputFile, List changelogs) throws IOException { - final FileWriter fileWriter = new FileWriter(outputFile); - + static void update(File templateFile, File outputFile, List changelogs) throws IOException { final String templateString = Files.readString(templateFile.toPath()); - generateFile(VersionProperties.getElasticsearchVersion(), templateString, changelogs, fileWriter); + try (FileWriter output = new FileWriter(outputFile)) { + generateFile(VersionProperties.getElasticsearchVersion(), templateString, changelogs, output); + } } @VisibleForTesting diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java index cdf880ed02ab1..5403d1e03f303 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseNotesIndexUpdater.java @@ -8,8 +8,10 @@ package org.elasticsearch.gradle.internal.release; -import com.google.common.annotations.VisibleForTesting; import groovy.text.SimpleTemplateEngine; + +import com.google.common.annotations.VisibleForTesting; + import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; @@ -30,15 +32,16 @@ */ public class ReleaseNotesIndexUpdater { - public static void update(File indexTemplate, File indexFile) throws IOException { + static void update(File indexTemplate, File indexFile) throws IOException { final List existingIndexLines = Files.readAllLines(indexFile.toPath()); - FileWriter indexFileWriter = new FileWriter(indexFile); - generateFile( - VersionProperties.getElasticsearchVersion(), - existingIndexLines, - Files.readString(indexTemplate.toPath()), - indexFileWriter - ); + try (FileWriter indexFileWriter = new FileWriter(indexFile)) { + generateFile( + VersionProperties.getElasticsearchVersion(), + existingIndexLines, + Files.readString(indexTemplate.toPath()), + indexFileWriter + ); + } } @VisibleForTesting diff --git a/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc index 909f443347f32..38573747863e9 100644 --- a/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc +++ b/build-tools-internal/src/main/resources/templates/breaking-changes.asciidoc @@ -59,7 +59,7 @@ ${breaking.impact.trim()} } if (isNotable) { - out.write("// end::notable-breaking-changes[]\n"); + print "// end::notable-breaking-changes[]\n" } } } From 2d52eed74ced6afad4177b7d91c1313f10a13c90 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Fri, 9 Jul 2021 16:14:45 +0100 Subject: [PATCH 18/22] Run changelogs tasks via precommit --- .../gradle/internal/release/ReleaseToolsPlugin.java | 8 ++++---- build.gradle | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java index b1557fba03cc1..d7d85504a0178 100644 --- a/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java +++ b/build-tools-internal/src/main/java/org/elasticsearch/gradle/internal/release/ReleaseToolsPlugin.java @@ -10,6 +10,7 @@ import org.elasticsearch.gradle.Version; import org.elasticsearch.gradle.VersionProperties; +import org.elasticsearch.gradle.internal.conventions.precommit.PrecommitTaskPlugin; import org.elasticsearch.gradle.internal.precommit.ValidateYamlAgainstSchemaTask; import org.gradle.api.Plugin; import org.gradle.api.Project; @@ -20,8 +21,8 @@ import org.gradle.api.tasks.TaskProvider; import org.gradle.api.tasks.util.PatternSet; -import javax.inject.Inject; import java.io.File; +import javax.inject.Inject; /** * This plugin defines tasks related to releasing Elasticsearch. @@ -39,7 +40,7 @@ public ReleaseToolsPlugin(ProjectLayout projectLayout) { @Override public void apply(Project project) { - // project.getPluginManager().apply(PrecommitTaskPlugin.class); + project.getPluginManager().apply(PrecommitTaskPlugin.class); final Directory projectDirectory = projectLayout.getProjectDirectory(); final FileTree yamlFiles = projectDirectory.dir("docs/changelog") @@ -91,7 +92,6 @@ public void apply(Project project) { task.dependsOn(validateChangelogsTask); }); - // FIXME - // project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); + project.getTasks().named("precommit").configure(task -> task.dependsOn(validateChangelogsTask)); } } diff --git a/build.gradle b/build.gradle index c0930f2586462..7dd5e75b188b7 100644 --- a/build.gradle +++ b/build.gradle @@ -411,7 +411,7 @@ gradle.projectsEvaluated { } } -tasks.register("precommit") { +tasks.named("precommit") { dependsOn gradle.includedBuild('build-tools').task(':precommit') dependsOn gradle.includedBuild('build-tools-internal').task(':precommit') } From 1a0a734c5910094797f13a010b1fd5146a35666d Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Sat, 10 Jul 2021 21:14:42 +0100 Subject: [PATCH 19/22] Version parsing fixes --- .../test/java/org/elasticsearch/gradle/VersionTests.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java b/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java index 104fa797be3ff..599cc2b8b847c 100644 --- a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ b/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java @@ -17,8 +17,6 @@ import java.util.Set; import static java.util.Arrays.asList; -import static org.hamcrest.Matchers.contains; -import static org.hamcrest.Matchers.empty; import static org.hamcrest.Matchers.equalTo; import static org.hamcrest.Matchers.hasItems; import static org.hamcrest.Matchers.nullValue; @@ -100,7 +98,7 @@ public void testExceptionSyntax() { Version.fromString("foo.bar.baz"); } - public void testLabels() { + public void testQualifiers() { Version v = Version.fromString("1.2.3"); assertThat(v.getQualifier(), nullValue()); @@ -109,6 +107,9 @@ public void testLabels() { v = Version.fromString("1.2.3-SNAPSHOT"); assertThat(v.getQualifier(), equalTo("SNAPSHOT")); + + v = Version.fromString("1.2.3-SNAPSHOT-EXTRA", Version.Mode.RELAXED); + assertThat(v.getQualifier(), equalTo("SNAPSHOT-EXTRA")); } private void assertOrder(Version smaller, Version bigger) { From 2f0e9236109e772beb52a344cc65499cdb708259 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 12 Jul 2021 09:46:41 +0100 Subject: [PATCH 20/22] Actually commit my changes --- .../src/main/java/org/elasticsearch/gradle/Version.java | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/build-tools/src/main/java/org/elasticsearch/gradle/Version.java b/build-tools/src/main/java/org/elasticsearch/gradle/Version.java index 17c1739d7e7ed..a86e16ad740fd 100644 --- a/build-tools/src/main/java/org/elasticsearch/gradle/Version.java +++ b/build-tools/src/main/java/org/elasticsearch/gradle/Version.java @@ -7,9 +7,6 @@ */ package org.elasticsearch.gradle; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; import java.util.Objects; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -40,9 +37,9 @@ public enum Mode { RELAXED } - private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(-alpha\\d+|-beta\\d+|-rc\\d+|-SNAPSHOT)?"); + private static final Pattern pattern = Pattern.compile("(\\d+)\\.(\\d+)\\.(\\d+)(?:-(alpha\\d+|beta\\d+|rc\\d+|SNAPSHOT))?"); - private static final Pattern relaxedPattern = Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)((?:-[a-zA-Z0-9_]+)*)?"); + private static final Pattern relaxedPattern = Pattern.compile("v?(\\d+)\\.(\\d+)\\.(\\d+)(?:-([a-zA-Z0-9_]+(?:-[a-zA-Z0-9]+)*))?"); public Version(int major, int minor, int revision) { this(major, minor, revision, null); From 7b697c2dd9b7679d9689431eeff35fd5219e9c68 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Mon, 12 Jul 2021 17:26:10 +0100 Subject: [PATCH 21/22] Remove copy of VersionTests.java --- .../elasticsearch/gradle/VersionTests.java | 130 ------------------ .../elasticsearch/gradle/VersionTests.java | 57 +++++--- 2 files changed, 37 insertions(+), 150 deletions(-) delete mode 100644 build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java diff --git a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java b/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java deleted file mode 100644 index 599cc2b8b847c..0000000000000 --- a/build-tools-internal/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ /dev/null @@ -1,130 +0,0 @@ -package org.elasticsearch.gradle; - -/* - * 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 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 or the Server - * Side Public License, v 1. - */ - -import org.elasticsearch.gradle.internal.test.GradleUnitTestCase; -import org.junit.Rule; -import org.junit.rules.ExpectedException; - -import java.util.HashSet; -import java.util.List; -import java.util.Set; - -import static java.util.Arrays.asList; -import static org.hamcrest.Matchers.equalTo; -import static org.hamcrest.Matchers.hasItems; -import static org.hamcrest.Matchers.nullValue; - -public class VersionTests extends GradleUnitTestCase { - - @Rule - public ExpectedException expectedEx = ExpectedException.none(); - - public void testVersionParsing() { - assertVersionEquals("7.0.1", 7, 0, 1); - assertVersionEquals("7.0.1-alpha2", 7, 0, 1); - assertVersionEquals("5.1.2-rc3", 5, 1, 2); - assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2); - assertVersionEquals("17.03.11", 17, 3, 11); - } - - public void testRelaxedVersionParsing() { - assertVersionEquals("6.1.2", 6, 1, 2, Version.Mode.RELAXED); - assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2, Version.Mode.RELAXED); - assertVersionEquals("6.1.2-foo", 6, 1, 2, Version.Mode.RELAXED); - assertVersionEquals("16.01.22", 16, 1, 22, Version.Mode.RELAXED); - } - - public void testCompareWithStringVersions() { - assertTrue("1.10.20 is not interpreted as before 2.0.0", Version.fromString("1.10.20").before("2.0.0")); - assertEquals( - "7.0.0-alpha1 should be equal to 7.0.0-alpha1", - Version.fromString("7.0.0-alpha1"), - Version.fromString("7.0.0-alpha1") - ); - assertEquals( - "7.0.0-SNAPSHOT should be equal to 7.0.0-SNAPSHOT", - Version.fromString("7.0.0-SNAPSHOT"), - Version.fromString("7.0.0-SNAPSHOT") - ); - } - - public void testCollections() { - List aList = asList( - Version.fromString("5.2.0"), - Version.fromString("5.2.1-SNAPSHOT"), - Version.fromString("6.0.0"), - Version.fromString("6.0.1"), - Version.fromString("6.1.0") - ); - assertThat(aList, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); - - Set aSet = new HashSet<>( - asList( - Version.fromString("5.2.0"), - Version.fromString("5.2.1-SNAPSHOT"), - Version.fromString("6.0.0"), - Version.fromString("6.0.1"), - Version.fromString("6.1.0") - ) - ); - assertThat(aSet, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); - } - - public void testToString() { - assertEquals("7.0.1", new Version(7, 0, 1).toString()); - } - - public void testCompareVersions() { - assertEquals(0, new Version(7, 0, 0).compareTo(new Version(7, 0, 0))); - assertOrder(Version.fromString("19.0.1"), Version.fromString("20.0.3")); - } - - public void testExceptionEmpty() { - expectedEx.expect(IllegalArgumentException.class); - expectedEx.expectMessage("Invalid version format"); - Version.fromString(""); - } - - public void testExceptionSyntax() { - expectedEx.expect(IllegalArgumentException.class); - expectedEx.expectMessage("Invalid version format"); - Version.fromString("foo.bar.baz"); - } - - public void testQualifiers() { - Version v = Version.fromString("1.2.3"); - assertThat(v.getQualifier(), nullValue()); - - v = Version.fromString("1.2.3-rc1"); - assertThat(v.getQualifier(), equalTo("rc1")); - - v = Version.fromString("1.2.3-SNAPSHOT"); - assertThat(v.getQualifier(), equalTo("SNAPSHOT")); - - v = Version.fromString("1.2.3-SNAPSHOT-EXTRA", Version.Mode.RELAXED); - assertThat(v.getQualifier(), equalTo("SNAPSHOT-EXTRA")); - } - - private void assertOrder(Version smaller, Version bigger) { - assertEquals(smaller + " should be smaller than " + bigger, -1, smaller.compareTo(bigger)); - } - - private void assertVersionEquals(String stringVersion, int major, int minor, int revision) { - assertVersionEquals(stringVersion, major, minor, revision, Version.Mode.STRICT); - } - - private void assertVersionEquals(String stringVersion, int major, int minor, int revision, Version.Mode mode) { - Version version = Version.fromString(stringVersion, mode); - assertEquals(major, version.getMajor()); - assertEquals(minor, version.getMinor()); - assertEquals(revision, version.getRevision()); - } - -} diff --git a/build-tools/src/test/java/org/elasticsearch/gradle/VersionTests.java b/build-tools/src/test/java/org/elasticsearch/gradle/VersionTests.java index 37aa5cf9d21da..2dae3d9f70900 100644 --- a/build-tools/src/test/java/org/elasticsearch/gradle/VersionTests.java +++ b/build-tools/src/test/java/org/elasticsearch/gradle/VersionTests.java @@ -12,10 +12,15 @@ import org.junit.Rule; import org.junit.rules.ExpectedException; -import java.util.Arrays; import java.util.HashSet; +import java.util.List; import java.util.Set; +import static java.util.Arrays.asList; +import static org.hamcrest.Matchers.equalTo; +import static org.hamcrest.Matchers.hasItems; +import static org.hamcrest.Matchers.nullValue; + public class VersionTests extends GradleUnitTestCase { @Rule @@ -26,7 +31,6 @@ public void testVersionParsing() { assertVersionEquals("7.0.1-alpha2", 7, 0, 1); assertVersionEquals("5.1.2-rc3", 5, 1, 2); assertVersionEquals("6.1.2-SNAPSHOT", 6, 1, 2); - assertVersionEquals("6.1.2-beta1-SNAPSHOT", 6, 1, 2); assertVersionEquals("17.03.11", 17, 3, 11); } @@ -41,29 +45,30 @@ public void testRelaxedVersionParsing() { public void testCompareWithStringVersions() { assertTrue("1.10.20 is not interpreted as before 2.0.0", Version.fromString("1.10.20").before("2.0.0")); - assertTrue( + assertEquals( "7.0.0-alpha1 should be equal to 7.0.0-alpha1", - Version.fromString("7.0.0-alpha1").equals(Version.fromString("7.0.0-alpha1")) + Version.fromString("7.0.0-alpha1"), + Version.fromString("7.0.0-alpha1") ); - assertTrue( + assertEquals( "7.0.0-SNAPSHOT should be equal to 7.0.0-SNAPSHOT", - Version.fromString("7.0.0-SNAPSHOT").equals(Version.fromString("7.0.0-SNAPSHOT")) + Version.fromString("7.0.0-SNAPSHOT"), + Version.fromString("7.0.0-SNAPSHOT") ); } public void testCollections() { - assertTrue( - Arrays.asList( - Version.fromString("5.2.0"), - Version.fromString("5.2.1-SNAPSHOT"), - Version.fromString("6.0.0"), - Version.fromString("6.0.1"), - Version.fromString("6.1.0") - ).containsAll(Arrays.asList(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))) + List aList = asList( + Version.fromString("5.2.0"), + Version.fromString("5.2.1-SNAPSHOT"), + Version.fromString("6.0.0"), + Version.fromString("6.0.1"), + Version.fromString("6.1.0") ); - Set versions = new HashSet<>(); - versions.addAll( - Arrays.asList( + assertThat(aList, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); + + Set aSet = new HashSet<>( + asList( Version.fromString("5.2.0"), Version.fromString("5.2.1-SNAPSHOT"), Version.fromString("6.0.0"), @@ -71,9 +76,7 @@ public void testCollections() { Version.fromString("6.1.0") ) ); - Set subset = new HashSet<>(); - subset.addAll(Arrays.asList(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); - assertTrue(versions.containsAll(subset)); + assertThat(aSet, hasItems(Version.fromString("6.0.1"), Version.fromString("5.2.1-SNAPSHOT"))); } public void testToString() { @@ -97,6 +100,20 @@ public void testExceptionSyntax() { Version.fromString("foo.bar.baz"); } + public void testQualifiers() { + Version v = Version.fromString("1.2.3"); + assertThat(v.getQualifier(), nullValue()); + + v = Version.fromString("1.2.3-rc1"); + assertThat(v.getQualifier(), equalTo("rc1")); + + v = Version.fromString("1.2.3-SNAPSHOT"); + assertThat(v.getQualifier(), equalTo("SNAPSHOT")); + + v = Version.fromString("1.2.3-SNAPSHOT-EXTRA", Version.Mode.RELAXED); + assertThat(v.getQualifier(), equalTo("SNAPSHOT-EXTRA")); + } + private void assertOrder(Version smaller, Version bigger) { assertEquals(smaller + " should be smaller than " + bigger, -1, smaller.compareTo(bigger)); } From f2125e3991097dafb18d158971c4abf137541b05 Mon Sep 17 00:00:00 2001 From: Rory Hunter Date: Tue, 27 Jul 2021 20:27:56 +0100 Subject: [PATCH 22/22] Remove test yaml files --- docs/changelog/68214.yaml | 43 ----------------------------------- docs/changelog/68564.yaml | 30 ------------------------ docs/changelog/68606.yaml | 18 --------------- docs/changelog/68966.yaml | 7 ------ docs/changelog/69131.yaml | 8 ------- docs/changelog/69149.yaml | 20 ---------------- docs/changelog/69606.yaml | 7 ------ docs/changelog/69774.yaml | 8 ------- docs/changelog/70243.yaml | 7 ------ docs/changelog/blark.yaml | 4 ---- docs/changelog/sekuritay.yaml | 4 ---- 11 files changed, 156 deletions(-) delete mode 100644 docs/changelog/68214.yaml delete mode 100644 docs/changelog/68564.yaml delete mode 100644 docs/changelog/68606.yaml delete mode 100644 docs/changelog/68966.yaml delete mode 100644 docs/changelog/69131.yaml delete mode 100644 docs/changelog/69149.yaml delete mode 100644 docs/changelog/69606.yaml delete mode 100644 docs/changelog/69774.yaml delete mode 100644 docs/changelog/70243.yaml delete mode 100644 docs/changelog/blark.yaml delete mode 100644 docs/changelog/sekuritay.yaml diff --git a/docs/changelog/68214.yaml b/docs/changelog/68214.yaml deleted file mode 100644 index d9a585b07b556..0000000000000 --- a/docs/changelog/68214.yaml +++ /dev/null @@ -1,43 +0,0 @@ -pr: 68214 -issues: - - 68198 - - 67666 -area: SQL -type: enhancement -summary: Update supported version for `date_nanos` -versions: - - v8.0.0 -highlight: - notable: true - title: Very notable change - body: Outstanding, well done everyone! -deprecation: - area: Aggregation - title: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - body: |- - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate - velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. -breaking: - area: Aggregation - title: Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - details: |- - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate - velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. - impact: |- - Sed ut perspiciatis unde omnis iste natus error sit voluptatem - accusantium doloremque laudantium, totam rem aperiam, eaque ipsa quae - ab illo inventore veritatis et quasi architecto beatae vitae dicta sunt - explicabo. Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut - odit aut fugit, sed quia consequuntur magni dolores eos qui ratione - voluptatem sequi nesciunt. - notable: true diff --git a/docs/changelog/68564.yaml b/docs/changelog/68564.yaml deleted file mode 100644 index 97255fe0ccd2f..0000000000000 --- a/docs/changelog/68564.yaml +++ /dev/null @@ -1,30 +0,0 @@ -pr: 68564 -issues: - - 41059 - - 68311 -area: Search -type: breaking -summary: Remove support for `_type` in searches -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for `_type` in searches - area: Search - details: |- - Types are no longer allowed in requests in 8.0, so support for - the `_type` field within search requests has been removed. - impact: - If you include the `_type` field in search requests, you now need to remove it. - -highlight: - notable: false - title: Twatbasket - body: |- - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate - velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. diff --git a/docs/changelog/68606.yaml b/docs/changelog/68606.yaml deleted file mode 100644 index 202e731fb037e..0000000000000 --- a/docs/changelog/68606.yaml +++ /dev/null @@ -1,18 +0,0 @@ -pr: 68606 -issues: [] -area: SQL -type: enhancement -summary: Add text formatting support for multivalue -versions: - - v8.0.0 -highlight: - notable: false - title: arse badger - body: |- - Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod - tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim - veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea - commodo consequat. Duis aute irure dolor in reprehenderit in voluptate - velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint - occaecat cupidatat non proident, sunt in culpa qui officia deserunt - mollit anim id est laborum. diff --git a/docs/changelog/68966.yaml b/docs/changelog/68966.yaml deleted file mode 100644 index 5b4be2d3d3a81..0000000000000 --- a/docs/changelog/68966.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 68966 -issues: [] -area: SQL -type: enhancement -summary: Add xDBC and CLI support. QA CSV specs -versions: - - v8.0.0 diff --git a/docs/changelog/69131.yaml b/docs/changelog/69131.yaml deleted file mode 100644 index 59474e51dd932..0000000000000 --- a/docs/changelog/69131.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 69131 -issues: - - 54160 -area: Infra/REST API -type: enhancement -summary: Typed endpoints for Index and Get APIs -versions: - - v8.0.0 diff --git a/docs/changelog/69149.yaml b/docs/changelog/69149.yaml deleted file mode 100644 index 38f710a5cb229..0000000000000 --- a/docs/changelog/69149.yaml +++ /dev/null @@ -1,20 +0,0 @@ -pr: 69149 -issues: - - 55820 -area: Packaging -type: breaking -summary: Remove support for `JAVA_HOME` -versions: - - v8.0.0 -breaking: - notable: false - title: Remove support for `JAVA_HOME` - area: Packaging - details: |- - {es} no longer supports the `JAVA_HOME` environment variable. Note - that {es} does not treat `JAVA_HOME` being set as a failure, as it is - perfectly reasonable to have this configured at a system level. - impact: |- - If you rely on the `JAVA_HOME` environment variable to configure the - JDK for {es}, you now need to use the `ES_JAVA_HOME` environment - variable instead. diff --git a/docs/changelog/69606.yaml b/docs/changelog/69606.yaml deleted file mode 100644 index 8ccaf00b366f9..0000000000000 --- a/docs/changelog/69606.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 69606 -issues: [] -area: Infra/REST API -type: enhancement -summary: "Update and delete by query using size field" -versions: - - v8.0.0 diff --git a/docs/changelog/69774.yaml b/docs/changelog/69774.yaml deleted file mode 100644 index 9ded9795856f3..0000000000000 --- a/docs/changelog/69774.yaml +++ /dev/null @@ -1,8 +0,0 @@ -pr: 69774 -issues: - - 51816 -area: Infra/REST API -type: enhancement -summary: Allow for field declaration for future compatible versions -versions: - - v8.0.0 diff --git a/docs/changelog/70243.yaml b/docs/changelog/70243.yaml deleted file mode 100644 index c583858afe417..0000000000000 --- a/docs/changelog/70243.yaml +++ /dev/null @@ -1,7 +0,0 @@ -pr: 70243 -issues: [] -area: Infra/REST API -type: enhancement -summary: "Parsing: Validate that fields are not registered twice" -versions: - - v8.0.0 diff --git a/docs/changelog/blark.yaml b/docs/changelog/blark.yaml deleted file mode 100644 index 221bb6ffa893a..0000000000000 --- a/docs/changelog/blark.yaml +++ /dev/null @@ -1,4 +0,0 @@ -type: known-issue -summary: We done broke it gud, y'all -versions: - - 8.0.0 diff --git a/docs/changelog/sekuritay.yaml b/docs/changelog/sekuritay.yaml deleted file mode 100644 index 9037d0dc96185..0000000000000 --- a/docs/changelog/sekuritay.yaml +++ /dev/null @@ -1,4 +0,0 @@ -type: security -summary: ZOMG we sold your info to the Ruskies. Oops. -versions: - - 8.0.0