Skip to content
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

Auto create release version branch from .x branch on start of release cycle process #4005

Closed
bbarani opened this issue Sep 12, 2023 · 5 comments
Assignees
Labels
enhancement New Enhancement

Comments

@bbarani
Copy link
Member

bbarani commented Sep 12, 2023

Is your feature request related to a problem? Please describe

We currently wait for individual repo managers to create the release branch before switching the build manifest to point to appropriate release branch for building a release candidate corresponding to specific OpenSearch version.

Acceptance criteria:

  1. Add a workflow to create a new branch if doesn't exist.
  2. Run the workflow from source branch to target branch when required.
  3. Get the repo list from the Input Manifest/ Build Manifest and create the release branch the repos in the list.

Describe the solution you'd like

Implement an automated workflow to create the release branch from .x branch for corresponding OpenSearch and OpenSearch dashboards release version branch on beginning of release process.

Describe alternatives you've considered

Manually creating the release branch from .x branch.

Additional context

No response

@bbarani bbarani added enhancement New Enhancement untriaged Issues that have not yet been triaged labels Sep 12, 2023
@gaiksaya
Copy link
Member

One of the major concern with this is even though we cut major.minor branch from major.x branch, who approves the changes that are going in?

Considering worst case scenario if a feature was pushed to next release or was intended for future minor release (example: 2.13.0 with 2.10.0 going on) how would we cherry-pick or decide what commits go in the 2.10 branch?

Are we okay with this edge case and add a check point in our component release issue to verify the release branch has expected changes aimed for ongoing release?

@bbarani
Copy link
Member Author

bbarani commented Sep 13, 2023

@gaiksaya We need to get inputs from all teams participating in a release before we finalize this process. Creating branch automatically from .x has its own advantages and dis-advantages based on the usage of .x branch by corresponding teams. Lets use this issue is to discuss, brainstorm and analyze the feasibility of automating the release branch creation process.

@Divyaasm Divyaasm removed the untriaged Issues that have not yet been triaged label Oct 10, 2023
@prudhvigodithi
Copy link
Member

We can have on demand workflow that can be kicked off by a release manager after the code cut off date, the workflow will auto cut the release branch (a logic that can auto detect from <VERSION>.x to actual RELEASE_VERSION 2.x-2.12.0) for all the repos part of the input manifest. Along with creation of branch it should also update the release specific input manifests ref to use that new release branch and raise a PR to get it merged to main branch of the build repo, here is a sample manual PR raised which can be automated with the same workflow.
Thank you

@prudhvigodithi
Copy link
Member

The Jenkins job should have the following flow.

  • An input as manifests (a comma separated manifests for both OS and OSD), sourceBranch, taretBranch`.
  • Identify the repos from the release specific input manifest (as a fallback a release manager can use previous release manifest) coming from the above manifests parameter .
  • Git clone with a repo write access user git clone https://<PAT>@github.com/username/repo.git.
  • Check if the release branch exists.
  • Skip the repo if the branch exists.
  • If no branch, create a branch and push to repo.
  • Re-run the workflow when the new components (new plugins onboarded) added to the release input manifest.

@Divyaasm
Copy link
Collaborator

Closed via #4520

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New Enhancement
Projects
None yet
Development

No branches or pull requests

4 participants