opensearch-project / OpenSearch

🔎 Open source distributed and RESTful search engine.
https://opensearch.org/docs/latest/opensearch/index/
Apache License 2.0
9.04k stars 1.67k forks source link

[Feature Request] Plugin version compatibility across minor versions #14560

Open saratvemulapalli opened 1 week ago

saratvemulapalli commented 1 week ago

Is your feature request related to a problem? Please describe

As a plugin developer, I am forced to bump up when opensearch core has bumped a minor version. I would like my plugin to work across multiple minor versions of OpenSearch. We have relaxed the patch versions with https://github.com/opensearch-project/OpenSearch/issues/1707 but I see value for few plugins where the interface has not changed and they continue to work with new/older minor version of OpenSearch.

Describe the solution you'd like

I would like a plugin to define its compatibility with OpenSearch as a semver range. Eg:In plugin-descriptor.properties we define dependencies={ opensearch: "~2.3.0" } which says the plugin is compatible with all versions >= 2.3.0 up to 3.0.0. There was an attempt to make it possible in OpenSearch via extensions but I've learnt moving from plugins to extensions is hard and takes a while. Would love some feedback from the community to see if this is valuable for plugin developers and operators.

Related component

Plugins

Describe alternatives you've considered

No response

Additional context

No response

andrross commented 1 week ago

@saratvemulapalli What all is missing to implement this after #11441?

I believe there is interest in this feature:

saratvemulapalli commented 1 week ago

Thanks @andrross. I believe we need:

  1. an ability to test a plugin compatibility across minor versions. Though we have added support for cross-patch versions in https://github.com/opensearch-project/OpenSearch/pull/11441, the test framework has not changed.
  2. The plugin validation checks in opensearch-plugins cli and OpenSearch plugins service should relax the minor version compatibility check

Also we do not have a plugin in the opensearch-project org using this feature even for patch versions. I know this is hard for few plugins but I would like to start with an application class plugin like ML-Commons.

peternied commented 4 days ago

[Triage - attendees 1 2 3] @saratvemulapalli Thanks for creating this issue