-
Notifications
You must be signed in to change notification settings - Fork 1.9k
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
Remove patch version check for plugin compatibility #6837
Remove patch version check for plugin compatibility #6837
Conversation
Gradle Check (Jenkins) Run Completed with:
|
Codecov ReportAttention:
Additional details and impacted files@@ Coverage Diff @@
## main #6837 +/- ##
============================================
- Coverage 71.34% 70.68% -0.66%
- Complexity 58964 59163 +199
============================================
Files 4890 4810 -80
Lines 277477 283488 +6011
Branches 40308 40877 +569
============================================
+ Hits 197961 200397 +2436
- Misses 62976 66651 +3675
+ Partials 16540 16440 -100 ☔ View full report in Codecov by Sentry. |
server/src/test/java/org/opensearch/plugins/PluginsServiceTests.java
Outdated
Show resolved
Hide resolved
We need to discuss whether relaxing plugin compatibility versions is a breaking change. If it is, then we need this behavior to be configurable and default to @saratvemulapalli wdyt? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Lets also take care of adding tests to: https://github.com/opensearch-project/OpenSearch/blob/main/distribution/tools/plugin-cli/src/test/java/org/opensearch/plugins/InstallPluginCommandTests.java
This internally uses PluginsService.java
verifyCompatibility
.
Good question, looking at Semver[1] That said, for developers who are using this feature we really want to "caution" that its only for users "who know what they are doing". Because there are risks associated with relaxing patch versions and might up into runtime problems. @abseth-amzn we could add another parameter |
Gradle Check (Jenkins) Run Completed with:
|
c9b2dc5
to
19fc7d5
Compare
Gradle Check (Jenkins) Run Completed with:
|
Gradle Check (Jenkins) Run Completed with:
|
Compatibility status:
|
Gradle Check (Jenkins) Run Completed with:
|
31f210a
to
0a1b8f1
Compare
Compatibility status:
|
Gradle Check (Jenkins) Run Completed with:
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm opposed to this change as is (a boolean that says that a plugin is compatible with patch versions of OpenSearch). I tried to say it in #6837 (review) above. The tl;dr is:
- If a plugin is authored for OpenSearch 2.8+, a boolean will say it's also compatible with 2.7, but it will not work.
- A boolean cannot evolve into a semver range in the future, so it's not a good foundation to build upon.
I would be ok with a semver compatible range that can be declared by a plugin, even if only a subset of it is implemented. As a plugin author I'd like to write ">= 2.5"
, "~> 2.5"
, etc., in the plugin manifest. I would be ok if the implementation doesn't support more complex syntax in v1, but I want to make sure we can add support for any semver syntax in the future without having to change the developer/plugin interface.
Signed-off-by: Abhilasha Seth <[email protected]> Signed-off-by: Abhilasha Seth <[email protected]>
Signed-off-by: Abhilasha Seth <[email protected]>
Signed-off-by: Abhilasha Seth <[email protected]>
Signed-off-by: Abhilasha Seth <[email protected]>
Signed-off-by: Abhilasha Seth <[email protected]>
Signed-off-by: Abhilasha Seth <[email protected]>
0a1b8f1
to
4b2dffc
Compare
Compatibility status:Checks if related components are compatible with change 4b2dffc Incompatible componentsSkipped componentsCompatible componentsCompatible components: [https://github.com/opensearch-project/security-analytics.git, https://github.com/opensearch-project/observability.git, https://github.com/opensearch-project/job-scheduler.git, https://github.com/opensearch-project/ml-commons.git, https://github.com/opensearch-project/opensearch-oci-object-storage.git, https://github.com/opensearch-project/custom-codecs.git, https://github.com/opensearch-project/sql.git, https://github.com/opensearch-project/security.git, https://github.com/opensearch-project/cross-cluster-replication.git, https://github.com/opensearch-project/notifications.git, https://github.com/opensearch-project/asynchronous-search.git, https://github.com/opensearch-project/geospatial.git, https://github.com/opensearch-project/index-management.git, https://github.com/opensearch-project/reporting.git, https://github.com/opensearch-project/neural-search.git, https://github.com/opensearch-project/common-utils.git, https://github.com/opensearch-project/anomaly-detection.git, https://github.com/opensearch-project/k-nn.git, https://github.com/opensearch-project/performance-analyzer-rca.git, https://github.com/opensearch-project/alerting.git, https://github.com/opensearch-project/performance-analyzer.git] |
❌ Gradle check result for 4b2dffc: FAILURE Please examine the workflow log, locate, and copy-paste the failure(s) below, then iterate to green. Is the failure a flaky test unrelated to your change? |
@abseth-amzn Please address my comment. |
Closing in favor of #11441 |
Signed-off-by: Abhilasha Seth [email protected]
Description
As a first step towards supporting semVer range of compatible versions for plugins, we are starting with relaxing the patch version check (for default compatibility range).
Issues Resolved
#1707
Check List
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.
For more information on following Developer Certificate of Origin and signing off your commits, please check here.