diff --git a/docs/reference/release-highlights.md b/docs/reference/release-highlights.md index 645fcf83e..b39ed9c2f 100644 --- a/docs/reference/release-highlights.md +++ b/docs/reference/release-highlights.md @@ -9,3 +9,6 @@ These are the important new features and changes in minor releases. Every releas For a list of detailed changes, including bug fixes, please see the [GitHub project realease notes](https://github.com/elastic/elasticsearch-java/releases). +### 9.0.0 [release-highlights-900] + +[Release Notes](/release-notes/9-0-0.md) diff --git a/docs/release-notes/9-0-0.md b/docs/release-notes/9-0-0.md new file mode 100644 index 000000000..745426c92 --- /dev/null +++ b/docs/release-notes/9-0-0.md @@ -0,0 +1,433 @@ +--- +navigation_title: "9.0.0" +--- +# Elasticsearch Java Client 9.0.0 [elasticsearch-java-client-900] + +Discover what changed in the 9.0.0 version of the java client. + +### Breaking Changes [elasticsearch-java-client-900-breaking-changes] + +::::{dropdown} Server accurate aggregation number values +In previous versions of the client, when the server returned number that was both always present and could be `null` (for example Aggregation results), the client would default to `0` and deserialize the number into a primitive data type instead of an Object. This design choice was changed in this version, changing the fields type to support `null` and be coherent with the server response. + +For more information, check the [relevant issue](https://github.com/elastic/elasticsearch-java/issues/843). + +**Impact**
The following classes are affected: +- **elasticsearch._types.aggregations.ArrayPercentilesItem** + - `value`: modified from `double` to `Double`, now optional +- **elasticsearch._types.aggregations.ExtendedStatsAggregate** + - `stdDeviation`: modified from `double` to `Double`, now optional + - `stdDeviationPopulation`: modified from `double` to `Double`, now optional + - `stdDeviationSampling`: modified from `double` to `Double`, now optional + - `sumOfSquares`: modified from `double` to `Double`, now optional + - `variance`: modified from `double` to `Double`, now optional + - `variancePopulation`: modified from `double` to `Double`, now optional + - `varianceSampling`: modified from `double` to `Double`, now optional +- **elasticsearch._types.aggregations.SingleMetricAggregateBase** + - `value`: modified from `double` to `Double`, now optional +- **elasticsearch._types.aggregations.StandardDeviationBounds** + - `lower`: modified from `double` to `Double`, now optional + - `lowerPopulation`: modified from `double` to `Double`, now optional + - `lowerSampling`: modified from `double` to `Double`, now optional + - `upper`: modified from `double` to `Double`, now optional + - `upperPopulation`: modified from `double` to `Double`, now optional + - `upperSampling`: modified from `double` to `Double`, now optional +- **elasticsearch._types.aggregations.StatsAggregate** + - `avg`: modified from `double` to `Double`, now optional + - `max`: modified from `double` to `Double`, now optional + - `min`: modified from `double` to `Double`, now optional +- **elasticsearch._types.aggregations.StringStatsAggregate** + - `avgLength`: modified from `double` to `Double`, now optional + - `entropy`: modified from `double` to `Double`, now optional + - `maxLength`: modified from `int` to `Integer`, now optional + - `minLength`: modified from `int` to `Integer`, now optional +- **elasticsearch._types.aggregations.TTestAggregate** + - `value`: modified from `double` to `Double`, now optional + +**Action**
Steps for mitigating deprecation impact: +- Make sure to handle the possible `null` value correctly to avoid NullPointerException +- Remove any workaround that was [previously suggested](https://discuss.elastic.co/t/java-api-client-single-metric-aggregation-zero-or-null-deserializer/356207) to understand whether the `0` returned was actually `0` or `null` + +:::: + +::::{dropdown} Script builder update +The `Script` class used to only support inline string scripts, now it can also support other formats like `mustache`. + +For more information, check the [relevant issue](https://github.com/elastic/elasticsearch-java/issues/876). + +**Impact**
The following classes are affected: +- **elasticsearch._types.Script** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch._types.ScriptTransform** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch._types.StoredScript** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.core.msearch_template.TemplateConfig** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.core.RenderSearchTemplateRequest** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.core.search.PhraseSuggestCollateQuery** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.core.SearchTemplateRequest** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.ingest.ScriptProcessor** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.watcher.ScriptCondition** + - `source`: modified from `String` to `elasticsearch._types.ScriptSource` +- **elasticsearch.ingest.ProcessorBase** + - `if_`: modified from `String` to `elasticsearch._types.Script` + +**Action**
Since the `Script` builder now supports two variants (string and object), the builder has to be updated to specify the type. +Example with `PutScript`: +- Old string script + ```java + esClient.putScript(p -> p + .id("my-script") + .script(s -> s + .lang("painless") + .source("Math.log(_score * 2) + params['my_modifier']") + ) + ); + ``` +- New string script + ```java + esClient.putScript(p -> p + .id("my-script") + .script(s -> s + .lang("painless") + .source(so -> so + .scriptString("Math.log(_score * 2) + params['my_modifier']") + ) + ) + ); + ``` +- New object script + ```java + esClient.putScript(p -> p + .id("my-script") + .script(s -> s + .lang("mustache") + .source(so -> so + .scriptTemplate(st -> st + .query(q -> q + .match(m -> m + .field("message") + .query("{{query_string}}") + ) + ) + ) + ) + ) + ); + ``` +:::: + +::::{dropdown} Support for include_named_queries_score +`include_named_queries_score` is a query parameter that can be enabled for `SearchRequest` and changes the type of `matched_queries` in `SearchResponse.hits.hits` from List to Map. Previous versions of the client didn't support the options, since the json deserialize couldn't know which response type to expect. To support the feature, new versions of the client will always treat `matched_queries` as a Map, where the values are null in case the original field was returned as a list. + +For more information, check the [relevant issue](https://github.com/elastic/elasticsearch-java/issues/634). + +**Impact**
The following classes are affected: +- **elasticsearch.core.search.Hit** + - `matchedQueries`: modified from `List` to `Map` + +**Action**
Reading `matched_queries` will be different since it's now a Map, so instead of iterating on the List values now the Map's KeySet has to be iterated to obtain the same result as before. + +:::: + +::::{dropdown} Package change for EsqlFormat +Breaking change caused by refactoring the ESQL package. + +**Impact**
The following classes are affected: +- **elasticsearch.esql.QueryRequest** + - `format`: modified from `elasticsearch.esql.query.EsqlFormat` to `elasticsearch.esql.EsqlFormat` + +**Action**
Change the import from `elasticsearch.esql.query.EsqlFormat` to `elasticsearch.esql.EsqlFormat` + +:::: + +::::{dropdown} Body name and getter change for Responses +Response types should have had a specific body name and getter matching the body type, but in previous versions of the client it was just called `valueBody`. + +**Impact**
The following classes are affected: +- **elasticsearch.ssl.CertificatesResponse** + - `valueBody` is now `certificates` +- **elasticsearch.snapshot.RepositoryVerifyIntegrityResponse** + - `valueBody` is now `result` +- **elasticsearch.snapshot.GetRepositoryResponse** + - `valueBody` is now `repositories` +- **elasticsearch.inference.TextEmbeddingResponse** + - `valueBody` is now `inferenceResult` +- **elasticsearch.cluster.StateResponse** + - `valueBody` is now `state` +- **elasticsearch.cat.TransformsResponse** + - `valueBody` is now `transforms` +- **elasticsearch.cat.ThreadPoolResponse** + - `valueBody` is now `threadPools` +- **elasticsearch.cat.TemplatesResponse** + - `valueBody` is now `templates` +- **elasticsearch.cat.TasksResponse** + - `valueBody` is now `tasks` +- **elasticsearch.cat.SnapshotsResponse** + - `valueBody` is now `snapshots` +- **elasticsearch.cat.ShardsResponse** + - `valueBody` is now `shards` +- **elasticsearch.cat.SegmentsResponse** + - `valueBody` is now `segments` +- **elasticsearch.cat.RepositoriesResponse** + - `valueBody` is now `repositories` +- **elasticsearch.cat.RecoveryResponse** + - `valueBody` is now `recoveryRecords` +- **elasticsearch.cat.PluginsResponse** + - `valueBody` is now `plugins` +- **elasticsearch.cat.PendingTasksResponse** + - `valueBody` is now `pendingTasks` +- **elasticsearch.cat.NodesResponse** + - `valueBody` is now `nodes` +- **elasticsearch.cat.NodeattrsResponse** + - `valueBody` is now `nodeAttributes` +- **elasticsearch.cat.MlTrainedModelsResponse** + - `valueBody` is now `trainedModels` +- **elasticsearch.cat.MlJobsResponse** + - `valueBody` is now `jobs` +- **elasticsearch.cat.MlDataFrameAnalyticsResponse** + - `valueBody` is now `dataFrameAnalytics` +- **elasticsearch.cat.MlDatafeedsResponse** + - `valueBody` is now `datafeeds` +- **elasticsearch.cat.MasterResponse** + - `valueBody` is now `masters` +- **elasticsearch.cat.IndicesResponse** + - `valueBody` is now `indices` +- **elasticsearch.cat.HealthResponse** + - `valueBody` is now `healthRecords` +- **elasticsearch.cat.FielddataResponse** + - `valueBody` is now `fielddataRecords` +- **elasticsearch.cat.CountResponse** + - `valueBody` is now `countRecords` +- **elasticsearch.cat.ComponentTemplatesResponse** + - `valueBody` is now `componentTemplates` +- **elasticsearch.cat.AllocationResponse** + - `valueBody` is now `allocations` +- **elasticsearch.cat.AliasesResponse** + - `valueBody` is now `aliases` + +**Action**
Replace the `valueBody()` getter with the specific getter depending on the class used. + +:::: + +::::{dropdown} Map to NamedValue indicesBoost, dynamicTemplates +`indicesBoost` and `dynamicTemplates` were wrongly mapped as `List`, but the server doesn't actually accept more than one value in both cases, so the type has been changed to `List`. + +**Impact**
The following classes are affected: +- **elasticsearch.core.SearchRequest** + - `indicesBoost`: modified from `List>` to `List>` +- **elasticsearch.async_search.SubmitRequest** + - `indicesBoost`: modified from `List>` to `List>` +- **elasticsearch.indices.PutMappingRequest** + - `dynamicTemplates`: modified from `List>` to `List>` + +**Action**
Change the builder to use the correct type. +Example with `SearchRequest`: +- Old + ```java + esClient.search(s -> s + .index("*") + .indicesBoost(Map.of("index", 1.0)) + ,Void.class); + ``` +- New + ```java + esClient.search(s -> s + .index("*") + .indicesBoost(NamedValue.of("index", 1.0)) + ,Void.class); + ``` + +:::: + +::::{dropdown} Removed deprecated classes +The Elasticsearch server does not accept these requests anymore, or they were replaced with a more specific request. + +**Impact**
The following classes are affected: +- **elasticsearch._types.analysis.LanguageAnalyzer**: removed +- **elasticsearch.nodes.NodeReloadError**: removed +- **elasticsearch.search_application.list.SearchApplicationListItem**: removed +- **elasticsearch.inference.\***: + - **InferenceRequest**, **InferenceResponse**, **InferenceResult**, **InferenceResultVariant**: removed as part of a complete refactor of the Inference API + +**Action**
Find out which are the new requests accepted by the 9.0.0 version of the server. + +:::: + +::::{dropdown} Miscellaneous changes +The reason for these changes is to better reflect what the Elasticsearch server actually accepts/sends, or to fix bugs. + +**Impact**
The following classes are affected: +- **elasticsearch._types.analysis.FingerprintAnalyzer** + - `maxOutputSize`: modified from `int` to `Integer`, now optional +- **elasticsearch._types.query_dsl.SpanTermQuery** + - `value`: modified from `String` to `elasticsearch._types.FieldValue` +- **elasticsearch.async_search.SubmitRequest** + - `maxConcurrentShardRequests`: modified from `Long` to `Integer` +- **elasticsearch.core.msearch.RequestItem** + - `body`: modified from `elasticsearch.core.msearch.MultisearchBody` to `elasticsearch.core.search.SearchRequestBody` +- **elasticsearch.core.MsearchRequest** + - `maxConcurrentSearches`: modified from `Long` to `Integer` + - `maxConcurrentShardRequests`: modified from `Long` to `Integer` +- **elasticsearch.core.SearchRequest** + - `maxConcurrentShardRequests`: modified from `Long` to `Integer` +- **elasticsearch.fleet.FleetSearchRequest** + - `maxConcurrentShardRequests`: modified from `Long` to `Integer` +- **elasticsearch.graph.VertexInclude** + - `boost`: modified from `double` to `Double`, now optional +- **elasticsearch.security.RoleMappingRule** + - `field`: modified from `elasticsearch.security.FieldRule` to `util.NamedValue` +- **elasticsearch._types.mapping.DenseVectorProperty** + - `elementType`: modified from `String` to `elasticsearch._types.mapping.DenseVectorElementType` + - `similarity`: modified from `String` to `elasticsearch._types.mapping.DenseVectorSimilarity` +- **elasticsearch._types.mapping.DynamicTemplate** + - `runtime`: modified from `elasticsearch._types.mapping.Property` to `elasticsearch._types.mapping.RuntimeField` +- **elasticsearch._types.mapping.ObjectProperty** + - `subobjects`: modified from `Boolean` to `elasticsearch._types.mapping.Subobjects` +- **elasticsearch._types.mapping.TypeMapping** + - `subobjects`: modified from `Boolean` to `elasticsearch._types.mapping.Subobjects` +- **elasticsearch.ccr.follow_info.FollowerIndexParameters** + - `maxOutstandingReadRequests`: modified from `int` to `Long`, now optional + - `maxOutstandingWriteRequests`: modified from `int` to `Integer`, now optional + - `maxReadRequestOperationCount`: modified from `int` to `Integer`, now optional + - `maxWriteBufferCount`: modified from `int` to `Integer`, now optional + - `maxWriteRequestOperationCount`: modified from `int` to `Integer`, now optional +- **elasticsearch.ccr.FollowRequest** + - `maxOutstandingWriteRequests`: modified from `Long` to `Integer` + - `maxReadRequestOperationCount`: modified from `Long` to `Integer` + - `maxWriteBufferCount`: modified from `Long` to `Integer` + - `maxWriteRequestOperationCount`: modified from `Long` to `Integer` +- **elasticsearch.core.ScriptsPainlessExecuteRequest** + - `context`: modified from `String` to `elasticsearch.core.scripts_painless_execute.PainlessContext` +- **elasticsearch.indices.get_data_lifecycle.DataStreamWithLifecycle** + - `lifecycle`: modified from `elasticsearch.indices.DataStreamLifecycle` to `elasticsearch.indices.DataStreamLifecycleWithRollover` +- **elasticsearch.ml.TrainedModelDeploymentNodesStats** + - `routingState`: modified from `elasticsearch.ml.TrainedModelAssignmentRoutingTable` to `elasticsearch.ml.TrainedModelAssignmentRoutingStateAndReason` +- **elasticsearch.search_application.PutRequest** + - `searchApplication`: modified from `elasticsearch.search_application.SearchApplication` to `elasticsearch.search_application.SearchApplicationParameters` + + +**Action**
+For types that went from the primitive type to the matching Object, make sure to handle the possible null value. +For `msearch.RequestItem`, `MultisearchBody` was just an alias to map `SearchRequestBody`, so it can be replaced without other changes. +For `DenseVectorProperty`, choose the Enum value that matches the old String. +:::: + + +### Features and enhancements [elasticsearch-java-client-900-features-enhancements] + +::::{dropdown} New ElasticsearchClient builder +ElasticsearchClient now can be created with just a few lines of code: +```java +ElasticsearchClient esClient = ElasticsearchClient.of(b -> b + .host(serverUrl) + .apiKey(apiKey) +); +``` +The classic version of the builder is still available. +:::: + +::::{dropdown} New Rest5Client +A new version of the transport layer, based on the Apache HttpClient 5 is now available to use, as an alternative to the legacy `RestClient`. +More information on the dedicated section: [Rest5Client](/reference/transport/rest5-client/index.md). +:::: + +::::{dropdown} BulkIngester retry policy +Retry logic can now be enabled allowing the BulkIngester to retry operations that failed with error 429 (too many requests), hoping that the error will recover and the request will go through. Users can configure the desired backoff policy using the backoffPolicy() method in the BulkIngester builder: +```java +BulkIngester ingester = BulkIngester.of(b -> b + .client(client) + ... + .listener(listener) + .flushInterval(1000, TimeUnit.MILLISECONDS) + .backoffPolicy(BackoffPolicy.constantBackoff(50L, 8)) +``` +This is an example of constant backoff, meaning the single failed operation will be retried 8 times every 50 milliseconds. +:::: + +::::{dropdown} Default class for methods requiring TDocument +Some requests in the client require a second parameter to define the result class, for example search, meaning the compiler will complain while the query is being written, which can be annoying. We added overload methods that use Void.class as default type, so that the correct type can be eventually added later into writing the query. +Example with `SearchRequest`: +- Old: + ```java + esClient.search(s -> s + .index("my-index") + .query(q -> q + .matchAll(m -> m) + ) + ,Object.class); + ``` +- New: + ```java + esClient.search(s -> s + .index("my-index") + .query(q -> q + .matchAll(m -> m) + ) + ); + ``` +:::: + +::::{dropdown} Builder setters overloads with variant type + + +Added more setters allowing to build requests with a specific type variant instead of having to use the parent class and then select the desired variant later. + +Example with `Query`, where the `query` field can now accept a `MatchAllQuery` (or any other variant) directly: + +- Old: + ```java + esClient.search(s -> s + .index("my-index") + .query(q -> q + .matchAll(m -> m) + ) + ); + ``` +- New: + ```java + esClient.search(s -> s + .index("my-index") + .query(MatchAllQuery.of(m -> m)) + ); + ``` +Example with `Aggregation`, where the `aggregations` field can now accept `AverageAggregation` (or any other variant) directly: +- Old: + ```java + // using functional builder shortcut + esClient.search(s -> s + .aggregations("agg", a -> a + .avg(av -> av + .field("price") + ) + ) + ); + + // using Aggregation class builder + esClient.search(s -> s + .aggregations("agg", Aggregation.of(ag -> ag + .avg(av -> av + .field("price")) + ) + ) + ); + ``` +- New: + ```java + esClient.search(s -> s + .aggregations("agg", AverageAggregation.of(av -> av + .field("price")) + ) + ); + ``` +:::: + + +### Deprecations [elasticsearch-java-client-900-deprecations] + +Nothing was deprecated in this version of the client. diff --git a/docs/release-notes/breaking-changes.md b/docs/release-notes/breaking-changes.md deleted file mode 100644 index c8f965290..000000000 --- a/docs/release-notes/breaking-changes.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -navigation_title: "Breaking changes" -mapped_pages: - - https://www.elastic.co/guide/en/elasticsearch/client/java-api-client/current/breaking-changes-policy.html ---- - -# Elasticsearch Java Client breaking changes [elasticsearch-java-client-breaking-changes] -Breaking changes can impact your Elastic applications, potentially disrupting normal operations. Before you upgrade, carefully review the Elasticsearch Java Client breaking changes and take the necessary steps to mitigate any issues. To learn how to upgrade, check [Upgrade](docs-content://deploy-manage/upgrade.md). - -## Breaking changes policy [elasticsearch-java-client-breaking-changes-policy] -The Java API Client source code is generated from a [formal specification of the Elasticsearch API](https://github.com/elastic/elasticsearch-specification). This API specification is large, and although it is tested against hundreds of Elasticsearch test files, it may have discrepancies with the actual API that result in issues in the Java API Client. - -Fixing these discrepancies in the API specification results in code changes in the Java API Client, and some of these changes can require code updates in your applications. - -This section explains how these breaking changes are considered for inclusion in Java API Client releases. - -### Breaking changes in patch releases [elasticsearch-java-client-breaking-changes-patch-releases] -Some issues in the API specification are properties that have an incorrect type, such as a `long` that should be a `string`, or a required property that is actually optional. These issues can cause the Java API Client to not work properly or even throw exceptions. - -When a specification issue is discovered and resolved, it may require code updates in applications using the Java API Client. Such breaking changes are considered acceptable, *even in patch releases* (e.g. 7.17.0 → 7.17.1), as they introduce stability to APIs that may otherwise be unusable. - -### Breaking changes in minor releases [elasticsearch-java-client-breaking-changes-minor-releases] -Along with these bug fixes, the API specification is constantly refined, more precise type definitions are introduced to improve developer comfort and remove ambiguities. The specification of often-used APIs is fairly mature, so these changes happen generally on less often used APIs. These changes can also cause breaking changes requiring code updates which are considered *acceptable in minor releases* (e.g. 8.0 → 8.1). - -### Breaking changes in major releases [elasticsearch-java-client-breaking-changes-major-releases] -Major releases (e.g. 7.x → 8.x) can include larger refactorings of the API specification and the framework underlying the Java API Client. These refactorings are considered carefully and done only when they unlock new important features or new developments. - -### Elasticsearch API stability guarantees [elasticsearch-java-client-api-stability-guarantees] -All Elasticsearch APIs have stability indicators, which imply potential changes. If an API is `stable` only additional non-breaking changes are added. In case of `experimental` APIs, breaking changes can be introduced any time, which means that these changes, will also be reflected in the Java API Client. - -% ## Next version [elasticsearch-java-client-versionnext-breaking-changes] - -% ::::{dropdown} Title of breaking change -% Description of the breaking change. -% For more information, check [PR #](PR link). -% **Impact**
Impact of the breaking change. -% **Action**
Steps for mitigating deprecation impact. -% :::: - -% ## 9.0.0 [elasticsearch-java-client-900-breaking-changes] - -% ::::{dropdown} Title of breaking change -% Description of the breaking change. -% For more information, check [PR #](PR link). -% **Impact**
Impact of the breaking change. -% **Action**
Steps for mitigating deprecation impact. -% :::: \ No newline at end of file diff --git a/docs/release-notes/deprecations.md b/docs/release-notes/deprecations.md deleted file mode 100644 index e8cf68db2..000000000 --- a/docs/release-notes/deprecations.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -navigation_title: "Deprecations" ---- -# Elasticsearch Java Client deprecations [elasticsearch-java-client-deprecations] -Over time, certain Elastic functionality becomes outdated and is replaced or removed. To help with the transition, Elastic deprecates functionality for a period before removal, giving you time to update your applications. - -Review the deprecated functionality for Elasticsearch Java Client. While deprecations have no immediate impact, we strongly encourage you update your implementation after you upgrade. To learn how to upgrade, check out [Upgrade](docs-content://deploy-manage/upgrade.md). - -% ## Next version - -% ::::{dropdown} Deprecation title -% Description of the deprecation. -% For more information, check [PR #](PR link). -% **Impact**
Impact of deprecation. -% **Action**
Steps for mitigating deprecation impact. -% :::: - -% ## 9.0.0 [elasticsearch-java-client-900-deprecations] - -% ::::{dropdown} Deprecation title -% Description of the deprecation. -% For more information, check [PR #](PR link). -% **Impact**
Impact of deprecation. -% **Action**
Steps for mitigating deprecation impact. -% :::: \ No newline at end of file diff --git a/docs/release-notes/index.md b/docs/release-notes/index.md index 7ab8b0050..70b0defaa 100644 --- a/docs/release-notes/index.md +++ b/docs/release-notes/index.md @@ -9,19 +9,3 @@ mapped_pages: Review the changes, fixes, and more in each version of Elasticsearch Java Client. To check for security updates, go to [Security announcements for the Elastic stack](https://discuss.elastic.co/c/announcements/security-announcements/31). - -% Release notes include only features, enhancements, and fixes. Add breaking changes, deprecations, and known issues to the applicable release notes sections. - -% ## version.next [felasticsearch-java-client-next-release-notes] - -% ### Features and enhancements [elasticsearch-java-client-next-features-enhancements] -% * - -% ### Fixes [elasticsearch-java-client-next-fixes] -% * - -## 9.0.0 [elasticsearch-java-client-900-release-notes] - -### Features and enhancements [elasticsearch-java-client-900-features-enhancements] - -### Fixes [elasticsearch-java-client-900-fixes] \ No newline at end of file diff --git a/docs/release-notes/known-issues.md b/docs/release-notes/known-issues.md index de523e426..831cfd66b 100644 --- a/docs/release-notes/known-issues.md +++ b/docs/release-notes/known-issues.md @@ -5,16 +5,4 @@ navigation_title: "Known issues" # Elasticsearch Java Client known issues [elasticsearch-java-client-known-issues] -% Use the following template to add entries to this page. - -% :::{dropdown} Title of known issue -% **Details** -% On [Month/Day/Year], a known issue was discovered that [description of known issue]. - -% **Workaround** -% Workaround description. - -% **Resolved** -% On [Month/Day/Year], this issue was resolved. - -::: \ No newline at end of file +We handle all of our issues in our [Github repo](https://github.com/elastic/elasticsearch-java/issues). diff --git a/docs/release-notes/toc.yml b/docs/release-notes/toc.yml index a41006794..73ad0ca9a 100644 --- a/docs/release-notes/toc.yml +++ b/docs/release-notes/toc.yml @@ -1,5 +1,4 @@ toc: - file: index.md - file: known-issues.md - - file: breaking-changes.md - - file: deprecations.md \ No newline at end of file + - file: 9-0-0.md