-
Notifications
You must be signed in to change notification settings - Fork 920
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
[RFC] What is a breaking change in OpenSearch Dashboards? #4416
Comments
I'm also curious as to what are considered breaking in terms of visual changes.
|
these are good questions, looks like community would love to get clarification. |
Firstly thanks for bringing up the topic @davidlago, this is a conversation ive been wanting to have for a while. To talk about breaking change we need to talk about semver as a whole though. Dashboards today is not semver compliant. This does not mean that dashboards introduces breaking changes, but it does not comply with the sever spec, particularly the first requirement for semver:
So what is it that OSD follows today? Here's my current understanding:
This being said this is a half measure and we should simply comply with the semver spec. Questions like this are addressed by the spec and is also a widely adopted spec in software development. As @seraphjiang proposed, I would like to hear proposals for what the public api that Dashboard supports should be. |
IMO:
|
My $0.0.2 :
Also based on my own exp, just blocking a dependency bump for CVE fixes due to it has breaking changes (while actually it doesn't impact our public APIs) is truely painfulllll ლ(゚д゚ლ) |
Here are two questions to the community of users and developers:
|
@ZilongX but what is the public API? Is it defined somehwere? |
@AMoo-Miki I think you meant "minor version." Under semver, breaking changes are major (1.x - > 2.x), features are minor (2.8 -> 2.9), and bug fixes are patches (2.8.0 -> 2.8.1). |
I think we are discussing two definitions: Loose definitionA breaking change is defined more broadly as any modification that alters the user experience in a substantial way. Pros
Cons
A bit tighter defintionA breaking change is defined as any modification that directly breaks the functionality of plugins. Pros
Cons
I think we should let our customers to decide their priorities, be it maintaining the use of certain plugins at an older OSD version maybe due to some production concerns, or keeping their products at higher security standards. But we should provide them the options. This way we also provide plugin owners options, be it working on older OSD platform for their user concerns or developing newer versions to align with the latest platform standards. |
@joshuarrrr created a definition in the context of a proposal to do an SDK that stabilizes the Dashboards interfaces for plugins. He pieces together several considerations that are worth looking at: opensearch-project/opensearch-dashboards-sdk-js#41 (comment) |
Thanks for sharing, @wbeckler (and @joshuarrrr / @kavilla for the thoughts on that issue). It seems like several of the points hinge on the explicit definition of a contract (either via formal API/SDK specs, or explicit documentation). If the result of this RFC is that we come out the other end with just that, being more explicit about what the contract looks like, in my book that's a win. This is captured in the last 2 questions from the top of this issue:
|
Coming from a discussion in our latest community meeting, it seems like we might not have a clear definition understood by all participants of what constitutes a breaking change (which will necessitate a major version bump). What are the APIs and contracts that we are officially supporting? what is everything else?
A couple of questions that hopefully will get this RFC going:
The outcome of this RFC should be a decision on what we consider a breaking change, that then we can put out there in the website/repos/other and reference when making these kind of decisions. This will also inform users and help them understand the level of risk when building on assumptions that are not considered part of the declared interface, as those will be subject to change without being considered breaking.
The text was updated successfully, but these errors were encountered: