Choosing a Workflow

Choosing a Workflow for BookNest

The three workflows differ mainly in how long work stays away from main:

Trunk-based development, GitHub 29 flow and Git 1,932 flow compared
Trunk-based GitHub flow Git flow
Permanent branches main main main and develop
Typical branch life Hours Days Days to weeks
Review Pairing or quick review Pull request Pull request
Unfinished work Behind feature flags On its branch On its branch
Releases Tags on main Deploy from main release/* branches
Fits Continuous deployment Web apps, small teams Versioned, multi-release products

BookNest is a web service deployed from one branch, maintained by a small team, with one older release line (1.1) still supported. Sam settles on trunk-based development with GitHub flow's review step: short <type>/<topic> branches reviewed as pull requests, landed on main as signed, linear commits, released with tags, and a release/x.y branch only for a version that needs a fix after main has moved on.