-
Notifications
You must be signed in to change notification settings - Fork 39
[RFC] Create a 0.x branch #1007
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
Comments
Hi @seankao-az - thanks for this suggestion ! I would like to offer another approach: Follow OpenSearch release cadence including the versioning semantics - so we are aligned with OpenSearch project. Why is this good:
All the benefits mentioned above are kept
Why is this not so good:The only negative implication IMO is that we will need to release in a time interval that is not always aligned with our work. Fortunately, this is the case for many other opensearch projects and by adapting the time frame of the general project we will be able to adopt its processes and schedules and enjoy its benefits Branch naming strategyIn a similar way to OpenSearch supporting 3 branches :
|
I think it's a good thing we don't tie with the OpenSearch versions. We only upgrade our dependency for OpenSearch when there's new feature or fixes when we need it. |
+1 to separating versioning from OpenSearch version. That force us to make release every time when OpenSearch release new version. |
I share the same thought, especially this Flink project doesn't exist in the form of OpenSearch plugin, like what https://github.com/opensearch-project/sql do, I don't see the necessity for the coupling in release version. |
I think this makes sense. For deployment, is there any concern just using the main branch? |
Separating main and 0.x makes sense to me. One use case is to align with Spark major version upgrades. For example, main can track Spark 4.0, while 0.x continues to track Spark 3.x. |
@penghuo |
I think the main discussion point is actually how we can maintain continuous deployment, which means keep the deployable branch. The proposed approach to create 0.x branch and backport only stable changes from main branch has following cons.
Instead of having unstable main branch and stable 0.x branch, should we rather avoid merging unstable changes to main branch? I think we want to follow GitHub-Flow (ref) if we need collaboration or multiple PRs to complete single feature. |
We had a discussion about this in an internal meeting, here's the notes: As @ykmr1224 mentioned above: Long-term we're hoping to move Spark and other projects to a fully continuous deployment model, so we would like if we could develop directly on a
For (1), the tendency is toward this proposal as written. The benefit is that has precedent with other projects in the org. It will also introduce a lot of the operational backporting overhead that we've seen our other projects. For (2), I'm not sure what mechanism we can use to ensure One alternative that I'd like to see discussed more is, instead of tracking the "release" branch separately, tracking the "breaking changes" branch separately. i.e. push these changes to |
The idea @Swiddis mentioned above makes sense, but I am concerned that it could cause confusion as we take different approach in If you agree with having |
Also going to leave this comment for +1s for a |
Closing as there is no major objection and already got three I'll setup the tag and automation. |
Problem Overview
Our current branching strategy faces several challenges:
Proposed Solution
Implement a new branching strategy inspired by OpenSearch branching:
We'll maintain three primary branches:
The workflow is as follows:
Benefits for this approach:
The text was updated successfully, but these errors were encountered: