Skip to content
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

Updated COMPATIBILITY.md #169

Closed
wants to merge 1 commit into from
Closed
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: 16 additions & 18 deletions COMPATIBILITY.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,25 +3,23 @@

## Compatibility with OpenSearch

The below matrix shows the compatibility of the [`opensearch-ruby`](https://rubygems.org/gems/opensearch-ruby) with versions of [`OpenSearch`](https://opensearch.org/downloads.html#opensearch).
The OpenSearch Ruby client is comprised of three gems:
- [`opensearch-transport`](https://rubygems.org/gems/opensearch-transport) - the transport layer
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@nhtruong Do you think we also need to include the individual gem versions as well for compatibility? May be their compatibility with the main gem opensearch-ruby. For example, this file mentions the compatibility of opensearch-ruby with OpenSearch. And each individual gem folder has compatibility matrix showing compatibility with opensearch-ruby gem.

WDYT?

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You're right. Lemme do some more research on the git history and add them. It's a bit tricky but once we have these 3 gems merged into, it will be...history!

- [`opensearch-api`](https://rubygems.org/gems/opensearch-api) - the API definitions
- [`opensearch-ruby`](https://rubygems.org/gems/opensearch-ruby) - the client itself that ties the two above together

| OpenSearch Version | Client Version |
| --- | --- |
| 1.0.0 | 1.0.0 |
| 1.0.1 | 1.0.0 |
| 1.1.0 | 1.0.0 |
| 1.2.0 | 1.0.0 |
| 1.2.1 | 1.0.0 |
| 1.2.2 | 1.0.0 |
| 1.2.3 | 1.0.0 |
| 1.2.4 | 1.0.0 |
| 1.3.0 | 1.0.0 |
| 1.3.1 | 1.0.0 |
| 1.3.2 | 1.0.0 |
| 1.3.3 | 1.0.0 |
| 2.0.0 | 2.0.2 |
| 2.0.1 | 2.0.2 |
The vast majority of changes to OpenSearch are reflected in the API definitions, and the `opensearch-api` gem is updated to reflect those changes. The transport layer is updated only when there are changes to the underlying HTTP library, or when there are changes to the OpenSearch API that require changes to the transport layer.

Below is the table of OpenSearch versions and the **recommended minimum versions** of `opensearch-api` and the corresponding `opensearch-ruby` and `opensearch-transport`:

| OpenSearch Version | `opensearch-api` Version | `opensearch-ruby` Version | `opensearch-transport` Version |
|--------------------|--------------------------|---------------------------|--------------------------------|
| 1.x | 1.0 | 1.0 | 1.0 |
| 2.1 | 2.1 | 2.1 | 2.0 |
| 2.2 | 2.1 | 2.1 | 2.0 |
| 2.3 | 2.1 | 2.1 | 2.0 |
| 2.4 | 2.2 | 2.1 | 2.0 |

## Upgrading

Major versions of OpenSearch introduce breaking changes that require careful upgrades of the client. While `opensearch-ruby-client` 2.0.2 works against the latest OpenSearch 1.x, certain deprecated features removed in OpenSearch 2.0 have also been removed from the client. Please refer to the [OpenSearch documentation](https://opensearch.org/docs/latest/clients/index/) for more information.
Major versions of OpenSearch introduce breaking changes that require careful upgrades of the client. While `opensearch-api` 2.x works against the latest OpenSearch 1.x, certain deprecated features removed in OpenSearch 2.0 have also been removed from the client. Please refer to the [OpenSearch documentation](https://opensearch.org/docs/latest/clients/index/) for more information.