To Branch or Not to Branch?

From CitconWiki
Jump to: navigation, search

This session discussed whether no not code should be branched and its impact on CI.

Don't branch!

  • Jeff Frederick: "Branching is deferred integration" You are deferring the discovering of problems. There is a deliberate choice of stability over early discovery of problems.
  • The only needs to branch are habit and because the tools make it possible
  • Everyone thinks all the time. Any commits go to prod

Good Reasons to Branch

  • Feedback on multiple commits
  • Branching structure mirrors org strucutre, so if one branch goes red, you know.
  • If you're devoliping something that's not a web app and users subscribe to a release / dev channel (ie. Firefox)
  • Need a version deployed to a separate environments for separate business purposes
  • To backport features and forward port bugfixes.

Additional Topics Discussed

  • Use feature toggles
  • A few examples of how branching works in
  • Jenkins will kick off tests and only promote to the QA if the tests pass.
  • Pipe Organ theory if there is one branch