What Is Trunk-Based Development?
To create high-quality software, we must be able to trace any changes and, if necessary, roll them back. In trunk-based development, developers frequently merge minor updates into a shared repository, often referred to as the core or trunk (usually the main or master branch). Within trunk-based development, developers create short-lived branches with only a few commits. This approach helps ensure a smooth flow of production releases, even as the team size and codebase complexity increase.
- Main branch usage - Engineers actively collaborate on the main/master branch, integrating their changes frequently
- Short-lived feature branches - Goal is to complete work on these branches quickly and merge them back into the main/master branch
- Frequent integration - Engineers perform multiple integrations daily
- Reduced branching complexity - Maintain simple branching structures and naming conventions
- Early detection of issues - Integrations aid in identifying issues and bugs during the development phase
- Continuous Delivery/Deployment - Changes are always in a deployable state
- Feature toggles - Feature flags used to hide incomplete or work-in-progress features
Benefits of Trunk-Based Development
Here are some benefits of trunk-based development: