Trunk-Based Development
Fun fact, Git doesn't scale for colossal monorepos.
Always rebase onto
main
before continuing work.Trunk-based development is a no-merge, no-squash, rebase-only workflow that influences many of our conventions and tooling. Understanding this philosophy and its purpose is crucial to having contributions merged in quickly and easily.
Motivation
- We want to ship extremely fast, with outstanding quality and with extreme reliability.
- Our core team size is extremely small (three at time of writing). Bandwidth for review labor is extremely limited.
- We hate doing repetitive work and want to let technology do the heavy lifing.
- Code is read far more often than it is written.
- Time spent debugging is time spent not shipping features.
- Majority of time is generally spent debugging.
Therefore, optimize to reduce debugging and wasted effort.