Skip to content

[PROPOSAL] Feature branching #469

Open
@kavilla

Description

What/Why

What are you proposing?

Feature branching in this repo to match the feature branching within OpenSearch Dashboards. Here is a list of feature branches within the repo:

https://github.com/opensearch-project/OpenSearch-Dashboards/branches/all?query=feature

What problems are you trying to solve?

There is a workflow within OpenSearch Dashboards for every pull request that checks out this repo from the corresponding target branch name and then run the tests within this repo.

So if the target branch from the pull request into OpenSearch Dashboards was main, the workflow will checkout the functional test repo on the main branch and run the targeted tests. If it was 2.x it will checkout this repo's 2.x branch, and so-on.

However, when developers work on a feature branch there is no corresponding feature branch in this repo exists with the same name so the workflow fails.

Solution

Create a feature branch within this repo of the corresponding name when the feature branch is created within OpenSearch Dashboards so that the workflow works. The added benefit to this is that developers can work on a feature branch without being blocked by review times so that they can develop quickly and the raise PRs without interruptingmain as well. One major con, is that if we are not active on the checking on the content of the feature branches then when the feature branch is ready to be reviewed it might be a large review that takes a lot of time to review to avoid any issues. But we have accepted the risk and rely on the CI to hold the bar to feature branches. Another con is which branch to branch off of, which I think should always be main but I understand a lot of repos don't work off of main for OpenSearch Dashboards and OpenSearch. Finally, keeping the feature branch in sync, which I believe we do in in the core repo by request or having the developers for the feature branch create a merge PR into their branch.

Other

I have gone ahead and created the feature branches for a couple of the existing branches. If we are uncomfortable with this approach and prefer other methods (or maybe not supporting this at all) then we can easily delete these branches.

If we are comfortable with this approach we should add it apart of some runbook for maintainers to create feature branches in both repos when requested so. @ashwin-pc @tianleh.

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions