A curated list of everything related to trunk based development.
A short summary taken from trunkbaseddevelopment.com describes it as this:
A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’ *, resist any pressure to create other long-lived development branches by employing documented techniques, avoid merge hell, do not break the build, and live happily ever after.
For a more in-depth introduction to the idea, I highly recommend the linked site above by Paul Hammant.
Since I've been maintaining a list of sites, videos and blog posts on trunk based development, I figured it could be of more use if I made it public instead. It's simply a collection of links on this topic 😄 If you'd like to contribute, do send a pull request!
- Trunk-Based Development [website, 2017]
- Trunk-Based Development Economics [video, 2017]
- How Google Builds Web Frameworks [blog post, 2017]
- How Chromium Works [blog post, 2015]
- Feature Toggles [article, 2016]
- Branch By Abstraction [article, 2014]
- Why Google Stores Billions of Lines of Code in a Single Repository [article, 2016]
- Why Google Stores Billions of Lines of Code in a Single Repository [video, 2015]
- Go in a Monorepo [blog post, 2015]. Digital Ocean's use of monorepo for Go
- Cthulhu: Organizing Go Code in a Scalable Repo [blog post, 2017]. Describes Digital Ocean's monorepo.
- Billions of lines of code in a single repository, SRSLY? [video, 2016]
- Advantages and Disadvantages of a Monolithic Repository - A case study at Google [article, 2018]
- The largest Git repo on the planet [blog post, 2017]
Microsoft explaining how they moved the Windows code base to Git. - Scaling Mercurial at Facebook [blog post, 2014]
- Scaling Mercurial at Facebook: Insights from the Other Side [video, 2017]
- Scaling Source Control at Facebook [video, 2014]
- Still All on One Server: Perforce at Scale [paper pdf, 2011]
- Still All on One Server: Perforce at Scale [slides pdf, 2011]
- Git Virtual File System [video, 2017]
- Scaling Git at Microsoft [video, 2017]
- Scaling Git at Twitter [video, 2015]
- Git at Google: Making Big Projects (and Everyone Else) Happy [video, 2015]
- Bazel [website, 2017] by Google
- Buck [website, 2017] by Facebook
- Pants [website, 2017] by Twitter
- Crazy Fun Build [docs, 2015]. Used by Selenium, being phased out for Buck.
- Build in the Cloud: Distributing Build Outputs (at Google) [blog post, 2011]
- Build in the Cloud: Distributing Build Steps (at Google) [blog post, 2011]
- Build in the Cloud: How the Build System works (at Google) [blog post, 2011]
- Tools for Continuous Integration at Google Scale [video, 2012]
- Building Software at Google Scale Tech Talk [video, 2012]
- Building Software at Google Scale: Bazel [video, 2016]
- Bazel: Google’s extensible, multilingual, scalable build system [video, 2017]
- Building a Distributed Build System at Google Scale [video, 2016]
- Bazel for building Angular applications [video, 2018]
- Videos from BazelCon 2017 [video, 2017]
- Bazel - How to build at Google Scale? FOSDEM 2017 [video, 2017]
- Bazel - A Brief Overview [video, 2018]
- Skylark - The Bazel Extensibility Language [video, 2017]
- Your Build in a Datacenter - Remote Caching and Execution in Bazel [video, 2018]
- Pants and Monorepos [video, 2018]
- Build and Test Performance at Scale [video, 2017]
Pull requests are more than welcome. The common theme above are challenges that arise when scaling the number of developers while keeping a central infrastructure (be it VCS, build systems, CI servers and so on).
To the extent possible under law, Carl Byström has waived all copyright and related or neighboring rights to this work.