-
Notifications
You must be signed in to change notification settings - Fork 62
Description
What kind of business use case are you trying to solve? What are your requirements?
Currently plugins follow a branching strategy where they work on main for the next development iteration, effectively working on 2 versions at the same time. For example, at the time of writing plugins are working on 2.0 (main) and 1.3.2 (1.3). In contrast, OpenSearch works on 3 releases at the same time. Currently on 3.0 (main), 2.0 (2.x), and 1.3.2 (1.3).
What is the problem? What is preventing you from meeting the requirements?
- There's no OpenSearch 3.0 with all plugins continuously integrating, causing late integration, and bugs discovered during integration instead continuously.
- Features and fixes (e.g. CVEs) from
mainbranches may need to be selectively backported into multiple 1.x and 2.x releases. Without an intermediate 1.x or 2.x branch there are as many merge conflicts as branches. - Without a 2.x branch, developers don't have an easy way to express "backport to any next 2.x release" and must be aware of the state of the next 2.x (e.g. does it accept new features?).
- Workflows are different between OpenSearch core and plugins, which is confusing.
- Authors of breaking changes in OpenSearch for the next major release don't have a place to fix downstream plugins, even if they wanted to.
- https://github.com/opensearch-project/.github/blob/main/RELEASING.md#plugin-branching is incorrect.
What are you proposing? What do you suggest we do to solve the problem or improve the existing situation?
Follow OpenSearch core branching, described in #35. Create 1.x and 2.x branches, do not create 2.0 as a branch of main, instead create main -> 2.x -> 2.0. Maintain working CI for 3 releases at any given time.
- Implement OpenSearch core branching strategy alerting-dashboards-plugin#290
- Implement OpenSearch core branching strategy alerting#493
- Implement OpenSearch core branching strategy anomaly-detection-dashboards-plugin#290
- Implement OpenSearch core branching strategy anomaly-detection#614
- Implement OpenSearch core branching strategy asynchronous-search#159
- Implement OpenSearch core branching strategy common-utils#202
- Implement OpenSearch core branching strategy cross-cluster-replication#451
- Implement OpenSearch core branching strategy reporting#396
- Implement OpenSearch core branching strategy dashboards-visualizations#96
- Implement OpenSearch core branching strategy geospatial#94
- Implement OpenSearch core branching strategy index-management-dashboards-plugin#216
- Implement OpenSearch core branching strategy index-management#416
- Implement OpenSearch core branching strategy job-scheduler#205
- Implement OpenSearch core branching strategy k-NN#451
- Implement OpenSearch core branching strategy ml-commons#366
- Implement OpenSearch core branching strategy notifications#481
- Implement OpenSearch core branching strategy observability#869
- Implement OpenSearch core branching strategy performance-analyzer#241
- Implement OpenSearch core branching strategy performance-analyzer-rca#199
- Implement OpenSearch core branching strategy security-dashboards-plugin#1034
- Implement OpenSearch core branching strategy security#1951
- Implement OpenSearch core branching strategy sql#692
- [BUG] Split multiple plugins into their own repositories dashboards-maps#95
Exit Criteria
- main is building 3.0
- 2.x is building next 2.x, which is currently 2.4.0
- 2.3 is building next 2.3, which is 2.3.1
- manifests in https://github.com/opensearch-project/opensearch-build/tree/main/manifests include all 3