What is trunk-based development

What is

Trunk-based development(TBD) 是一種軟體開發策略,就像是 git-flow
利用主幹開發可以完整的呈現軟體開發的歷程,像是在 master 上重現 bug。

what's trunk

Trunk-Based Development For Smaller Teams

workflow for smaller teams

Scaled Trunk-Based Development

workflow for scale

Key Points

在這個策略有一些很重要的重點

Developers

  • 一般而言,只能在 master 上 commit
  • 確保每一個 commit 是可以正常運作的
  • 準缺的拆分每個 commit

Release

  • release 時會從 master create a release branch 像是 release-1.1
  • 一旦 release 後就不太會更動,除非是一些 bug fix
  • release branch 完成它的任務時就可以被砍掉了
  • 所有 bug fix 都應該發生在 master 再使用 cherry-pick 到 release branch

Conclusion

我覺得 TBD 對於 release 是非常友善的,但是很考驗 developers 的能力,像是拆分 commit 並確保每個 commit 是能正常的運行。相較 git-flow 不會出現 merge conflict。