You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
@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.
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.
@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
The text was updated successfully, but these errors were encountered: