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

[discuss] make it ingest branching strategies #43536

Open
mattapperson opened this issue Aug 19, 2019 · 1 comment
Open

[discuss] make it ingest branching strategies #43536

mattapperson opened this issue Aug 19, 2019 · 1 comment
Labels

Comments

@mattapperson
Copy link
Contributor

@ruflin brought up a question about it make it ingest should work from a single branch or if we should have a “parent” feature branch with the ingest plugin that fleet and integrations are based on.

Both have equal pros and cons as I see it. It comes down to keeping multiple branches in sync, or more commit “noise” on a single branch. As both sides of the project are isolated into just a few folders, breaking things out due to launch timelines if need be is a minimal issue.

//cc @nchaulet @jasonrhodes @jfsiii

@mattapperson
Copy link
Contributor Author

From @ruflin:

I want to share a bit of background here on why branching needs discussion at all. Fleet and and the ingest project currently have 3 components in Kibana: Fleet, Ingest Manager, Integrations Manager. Both Fleet and Integrations Manager have dependencies on the Ingest Manager code. This rises the question on how development happens. The following options exist:

All 3 plugins in their own branches
Pro: Independent development
Pro: Independent Release possible
Con: Fleet and Integrations manager must keep rebasing on this branch (or merge it in)
Con: PR's touching ingest manager and other plugin need to be separated (this could also be a pro for clean separation, but could slow down development)
2 branches, either fleet or integrations manager with the ingest plugin branch
Pro: Only one team needs to keep rebasing
Con: One team might break the other teams code
Con: One team still needs to keep rebasing / merging
1 branch, all 3 plugins
Pro: Fast development as all components can be touched in 1 PR
Con: Potential problems on separate release because of dependencies
My personal preference at the moment is 1 branch as I think it will make the development simpler and quicker. But I'm worried about making sure, all the components can still be released separately. My thinking so far with my limited knowledge of Kibana: As all 3 are plugins, each plugin has it's complete separate tree of source files. If we want to release the integrations manager, we can copy all the files from the ingest manager and integrations manager and ship it. This could be done by branching out and removing all the fleet code base in this branch, like this we still keep the history. Obviously also the other way around, if Fleet ships first. Not sure how the second project then keeps a clean history instead of just 1 commit.

Overall I think it's a decision which must be made by the engineers contributing the code as you know best how painful which method is. My main requirement is that we can still release separately.

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

No branches or pull requests

2 participants