-
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
Add CI on whether a change will break plugins #3740
Comments
@ylwu-amzn you'll probably have a lot of thoughts on this one! |
I agree that the plugin repositories should be notified for any corresponding changes they have to make, caused by the changes in this core repository. While I have concern with the solution that "adding CI that attempts to run tests for plugins as part of a PR". Maybe as @amitgalitz suggested, starting running routine build on OpenSearch with all plugins (with the script in https://github.com/opensearch-project/opensearch-build), once OpenSearch bumps version is more feasible. So that nothing in this repository will be stuck when there is a plugin not bumping their OpenSearch version, and we can monitor the build separately. In addition, I'm having a high expectation on decoupling the OpenSearch version and plugin version. With that achievement, adding such CI or PR check to validate the plugins compatibility will be much easier. 😄 |
hi, @dblock thanks for creating this issue to improve our release process. I think plugin team should be aware of such breaking changes as early as possible. Adding CI to run some/all plugins can help catch any breaking part easily. Just have some concern that adding CI in OpenSearch core means it will take much longer time and sometimes the breaking change is expected like change I think plugin team should make sure they keep same version in |
While running the entirety of CI takes a long time, just doing build and unit tests likely would take less time than the OpenSearch core tests which would run in parallel. Plugin integration tests are also very flaky, so I think that introducing CI in core to build and maybe run unit tests would help catch these issues immediately. Also, the breaking change would be caught by the person introducing the change, and they will be the most informed on what the plugin owners will need to fix. It may also help to catch cases where a core change breaks plugins without knowing it. I think that tlfeng brings up a valid point but once we have all plugins on the same branching and we are using automatic version bumps then waiting on plugins to bump versions shouldn't be a big problem. |
It seems like the change would be to adopt building 'canary' plugin within OpenSearch where changes are restricted to major versions. This canary plugin is that it would be good at spotting some issues, like gradle changes; however, it will miss other changes like dependencies or internal interface changes. The only true way to know if things have been broke is what I've seen called the 'scream test', with plugins adopting |
@dblock Does the check compatibility workflow solve this problem? |
@andrross Yes, I think so, for plugins we ship together! Closing. |
Is your feature request related to a problem? Please describe.
In #2692 we have backported a Gradle upgrade to 7.4.2 that broke plugins. It was late in the game for 2.1 release and shouldn't have. Had I known that it will break plugins we wouldn't have merged it.
Describe the solution you'd like
Add CI that attempts to run tests for one/some/all the plugins to execute as part of a PR. This way we will know that "this PR will break plugins like so".
The text was updated successfully, but these errors were encountered: