|
| 1 | +[[release_notes_80]] |
| 2 | +=== 8.0.0 Release notes |
| 3 | + |
| 4 | +[discrete] |
| 5 | +[[release_notes_800pre1]] |
| 6 | +=== 8.0.0.pre1 Release notes |
| 7 | + |
| 8 | +[discrete] |
| 9 | +==== Client |
| 10 | + |
| 11 | +The code for the dependency `elasticsearch-transport` has been promoted to https://github.com/elastic/elastic-transport-ruby/[its own repository] and the project and gem have been renamed to https://rubygems.org/gems/elastic-transport[`elastic-transport`]. This gem now powers https://rubygems.org/gems/elasticsearch[`elasticsearch`] and https://rubygems.org/gems/elastic-enterprise-search[`elastic-enterprise-search`]. The `elasticsearch-transport` gem won't be maintained after `7.16`, in favour of `elastic-transport`. |
| 12 | + |
| 13 | +[discrete] |
| 14 | +==== API |
| 15 | + |
| 16 | +[discrete] |
| 17 | +===== X-Pack Deprecation |
| 18 | + |
| 19 | +X-Pack has been deprecated. The `elasticsearch-xpack` gem will no longer be maintained after `7.16`. The "X-Pack" integration library codebase was merged into `elasticsearch-api`. All the functionality is available from `elasticsearch-api`. The `xpack` namespace was removed for accessing any APIs other than `_xpack` (`client.xpack.info`) and `_xpack/usage` (`client.xpack.usage`). But APIs which were previously available through the `xpack` namespace e.g.: `client.xpack.machine_learning` are now only available directly: `client.machine_learning`. |
| 20 | + |
| 21 | +[discrete] |
| 22 | +===== Parameter checking was removed |
| 23 | + |
| 24 | +The code in `elasticsearch-api` will no longer validate all the parameters sent. It will only validate the required parameters such as those needed to build the path for the request. But other API parameters are going to be validated by Elasticsearch. This provides better forwards and backwards compatibility in the client. |
| 25 | + |
| 26 | +[discrete] |
| 27 | +===== Response object |
| 28 | + |
| 29 | +In previous versions of the client, calling an API endpoint would return the JSON body of the response. With `8.0`, we are returning a new Response object `Elasticsearch::API::Response`. It still behaves like a Hash to maintain backwards compatibility, but adds the `status` and `headers` methods from the `Elastic::Transport:Transport::Response` object: |
| 30 | + |
| 31 | +[source,ruby] |
| 32 | +------------------------------------ |
| 33 | +elastic_ruby(main)> response = client.info |
| 34 | +=> #<Elasticsearch::API::Response:0x000055752b0c50a8 |
| 35 | + @response= |
| 36 | + #<Elastic::Transport::Transport::Response:0x000055752b0c50f8 |
| 37 | + @body= |
| 38 | + {"name"=>"instance", |
| 39 | + "cluster_name"=>"elasticsearch-8-0-0-SNAPSHOT-rest-test", |
| 40 | + "cluster_uuid"=>"oIfRARuYRGuVYybjxQJ87w", |
| 41 | + "version"=> |
| 42 | + {"number"=>"8.0.0-SNAPSHOT", |
| 43 | + "build_flavor"=>"default", |
| 44 | + "build_type"=>"docker", |
| 45 | + "build_hash"=>"7e23c54eb31cc101d1a4811b9ab9c4fd33ed6a8d", |
| 46 | + "build_date"=>"2021-11-04T00:21:32.464485627Z", |
| 47 | + "build_snapshot"=>true, |
| 48 | + "lucene_version"=>"9.0.0", |
| 49 | + "minimum_wire_compatibility_version"=>"7.16.0", |
| 50 | + "minimum_index_compatibility_version"=>"7.0.0"}, |
| 51 | + "tagline"=>"You Know, for Search"}, |
| 52 | + @headers={"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"}, |
| 53 | + @status=200>> |
| 54 | +elastic_ruby(main)> response.status |
| 55 | +=> 200 |
| 56 | +elastic_ruby(main)> response.headers |
| 57 | +=> {"X-elastic-product"=>"Elasticsearch", "content-type"=>"application/json", "content-length"=>"567"} |
| 58 | +elastic_ruby(main)> response['name'] |
| 59 | +=> "instance" |
| 60 | +elastic_ruby(main)> response['tagline'] |
| 61 | +=> "You Know, for Search" |
| 62 | +------------------------------------ |
0 commit comments