Skip to content

[DOCS] Release notes 9.0 main #2638

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
Apr 14, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
34 changes: 0 additions & 34 deletions CHANGELOG-9.x.md

This file was deleted.

4 changes: 3 additions & 1 deletion docs/reference/transport.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,11 @@ Currently these libraries are supported:
* [Typhoeus](https://github.com/typhoeus/typhoeus)
* [HTTPClient](https://rubygems.org/gems/httpclient)
* [Net::HTTP::Persistent](https://rubygems.org/gems/net-http-persistent)
* [Excon](https://github.com/excon/faraday-excon)
* [Async::HTTP](https://github.com/socketry/async-http-faraday)

::::{note}
Use [Typhoeus](https://github.com/typhoeus/typhoeus) v1.4.0 or up since older versions are not compatible with Faraday 1.0.
If using [Typhoeus](https://github.com/typhoeus/typhoeus), v1.4.0 or up is needed, since older versions are not compatible with Faraday 1.0.
::::


Expand Down
31 changes: 24 additions & 7 deletions docs/release-notes/breaking-changes.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,11 +14,28 @@ Breaking changes can impact your Elastic applications, potentially disrupting no
% **Action**<br> Steps for mitigating deprecation impact.
% ::::

% ## 9.0.0 [elasticsearch-ruby-client-900-breaking-changes]
## 9.0.0 [elasticsearch-ruby-client-900-breaking-changes]

% ::::{dropdown} Title of breaking change
% Description of the breaking change.
% For more information, check [PR #](PR link).
% **Impact**<br> Impact of the breaking change.
% **Action**<br> Steps for mitigating deprecation impact.
% ::::
### Scroll APIs need to send scroll_id in request body

Sending the `scroll_id` as a parameter has been deprecated since version 7.0.0. It needs to be specified in the request body for `clear_scroll` and `scroll`.

**Impact**<br>

Client code using `clear_scroll` or `scroll` APIs and the deprecated `scroll_id` as a parameter needs to be updated.

**Action**<br>

If you are using the `clear_scroll` or `scroll` APIs, and sending the `scroll_id` as a parameter, you need to update your code to send the `scroll_id` as part of the request body:
```ruby
# Before:
client.clear_scroll(scroll_id: scroll_id)
# Now:
client.clear_scroll(body: { scroll_id: scroll_id })

# Before:
client.scroll(scroll_id: scroll_id)
# Now:
client.scroll(body: { scroll_id: scroll_id })
```
% ::::
6 changes: 5 additions & 1 deletion docs/release-notes/deprecations.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,10 @@ Over time, certain Elastic functionality becomes outdated and is replaced or rem

Review the deprecated functionality for Elasticsearch Ruby 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).

## 9.0.0 [elasticsearch-ruby-client-900-deprecations]

_No deprecations_

% ## Next version [elasticsearch-ruby-client-versionnext-deprecations]

% ::::{dropdown} Deprecation title
Expand All @@ -23,4 +27,4 @@ Review the deprecated functionality for Elasticsearch Ruby Client. While depreca
% For more information, check [PR #](PR link).
% **Impact**<br> Impact of deprecation.
% **Action**<br> Steps for mitigating deprecation impact.
% ::::
% ::::
31 changes: 30 additions & 1 deletion docs/release-notes/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -24,4 +24,33 @@ To check for security updates, go to [Security announcements for the Elastic sta

### Features and enhancements [elasticsearch-ruby-client-900-features-enhancements]

### Fixes [elasticsearch-ruby-client-900-fixes]
Ruby 3.2 and up are tested and supported for 9.0. Older versions of Ruby have reached their end of life. We follow Ruby’s own maintenance policy and officially support all currently maintained versions per [Ruby Maintenance Branches](https://www.ruby-lang.org/en/downloads/branches/). The required Ruby version is set to `2.6` to keep compatiblity wit JRuby 9.3. However, we only test the code against currently supported Ruby versions.

#### Gem

The size of both `elasticsearch` and `elasticsearch-api` gems is smaller than in previous versions. Some unnecessary files that were being included in the gem have now been removed. There has also been a lot of old code cleanup for the `9.x` branch.

#### Elasticsearch Serverless

With the release of `9.0`, the [Elasticsearch Serverless](https://github.com/elastic/elasticsearch-serverless-ruby) client has been discontinued. You can use this client to build your Elasticsearch Serverless Ruby applications. The Elasticsearch Serverless API is fully supported. The CI build for Elasticsearch Ruby runs tests to ensure compatibility with Elasticsearch Serverless.

#### Elasticsearch API

* The source code is now generated from [`elasticsearch-specification`](https://github.com/elastic/elasticsearch-specification/), so the API documentation is much more detailed and extensive. The value `Elasticsearch::ES_SPECIFICATION_COMMIT` is updated with the commit hash of elasticsearch-specification in which the code is based every time it's generated.
* The API code has been updated for compatibility with Elasticsearch API v 9.0.
* `indices.get_field_mapping` - `:fields` is a required parameter.
* `knn_search` - This API has been removed. It was only ever experimental and was deprecated in v`8.4`. It isn't supported in 9.0, and only works when the header `compatible-with=8` is set. The search API should be used for all knn queries.
* The functions in `utils.rb` that had names starting with double underscore have been renamed to remove these (e.g. `__listify` to `listify`).
* **Namespaces clean up**: The API namespaces are now generated dynamically based on the elasticsearch-specification. As such, some deprecated namespace files have been removed from the codebase:
* The `rollup` namespace was removed. The rollup feature was never GA-ed, it has been deprecated since `8.11.0` in favor of downsampling.
* The `data_frame_deprecated`, `remote` namespace files have been removed, no APIs were available.
* The `shutdown` namespace was removed. It is designed for indirect use by ECE/ESS and ECK. Direct use is not supported.

##### Testing

The gem `elasticsearch-api` migrated away from the Elasticsearch REST API tests and test runner in CI. We now run the [Elasticsearch Client tests](https://github.com/elastic/elasticsearch-clients-tests/) with the [Elasticsearch Tests Runner](https://github.com/elastic/es-test-runner-ruby). This gives us more control on what we're testing and makes the Buildkite build way faster in Pull Requests and scheduled builds.

### Fixes [elasticsearch-ruby-client-900-fixes]

* Some old rake tasks that were not being used have been removed. The rest were streamlined, the `es` namespace has been streamlined to make it easier to run Elasticsearch with Docker during development. The `docker` task namespace was merged into `es`.
* Elasticsearch's REST API Spec tests can still be ran with `rake test:deprecated:rest_api` and setting the corresponding value for the environment variable `TEST_SUITE` ('platinum' or 'free').
6 changes: 5 additions & 1 deletion docs/release-notes/known-issues.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,10 @@ navigation_title: "Known issues"

# Elasticsearch Ruby Client known issues [elasticsearch-ruby-client-known-issues]

## 9.0.0

_No known issues_

% Use the following template to add entries to this page.

% :::{dropdown} Title of known issue
Expand All @@ -17,4 +21,4 @@ navigation_title: "Known issues"
% **Resolved**
% On [Month/Day/Year], this issue was resolved.

:::
% :::
82 changes: 0 additions & 82 deletions elasticsearch-api/lib/elasticsearch/api/actions/knn_search.rb

This file was deleted.

2 changes: 1 addition & 1 deletion elasticsearch-api/lib/elasticsearch/api/version.rb
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,6 @@
module Elasticsearch
module API
VERSION = '9.0.0'.freeze
ES_SPECIFICATION_COMMIT = '1403bac9354d232024184bd992ecc76aaa9e68fa'.freeze
ES_SPECIFICATION_COMMIT = '2a24e33865256e85eaa8e2de9e793646f147c4df'.freeze
end
end
35 changes: 0 additions & 35 deletions elasticsearch-api/spec/unit/actions/knn_search_spec.rb

This file was deleted.

2 changes: 1 addition & 1 deletion elasticsearch-api/spec/unit/perform_request_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@
spec.module_namespace.flatten.first == 'rollup' ||
[
'scroll', 'clear_scroll', 'connector.last_sync', 'inference.put_eis', 'esql.get_query',
'esql.list_queries'
'esql.list_queries', 'knn_search'
].include?(spec.endpoint_name)

# These are the path parts defined by the user in the method argument
Expand Down