Workflows
Release Train Workflow
Ship on a fixed cadence so releases are schedule-driven rather than feature-driven, improving predictability across teams.
- Teams turning commands into repeatable routines
- Readers who need sequencing, branch, and sync discipline
- Basic understanding of fetch, pull, push, and branches
- A sense of how and why branches diverge
- Copying a workflow without checking branch state
- Choosing the wrong integration path on shared branches
Citations & Further Reading
- ReleaseTrain [Blog]
- git-scm.com — Git tag [Official]
- Git branch [Official]
What you will learn
- Understand the core purpose of Release Train Workflow
- Master the basic usage and common options of Release Train Workflow
- Ship on a fixed cadence so releases are schedule-driven rather than feature-driven, improving predictability across teams.
- Understand key concepts: Where this works best
- Know when to use this feature and when to avoid it
Release train is about predictability, not raw speed. Teams ship on fixed departure times so features catch the next train instead of moving the train itself.
Start with a problem
Your team is collaborating on a project, branches are growing, merges are becoming more frequent — but there's no stable collaboration rhythm. Everyone syncs code their own way, and conflicts are piling up.
Where this works best
- multiple teams share release dependencies
- release plans are frequently disrupted by late feature requests
- external stakeholders need reliable shipping timelines
Recommended implementation steps
1. Set train cadence
Example: one departure every two weeks with publicly known freeze points.
2. Define intake criteria
- feature complete and validated
- migration or docs ready
- risk assessment approved
Missed readiness moves to the next train by default.
3. Cut release branch and tag candidate
git switch -c release/2026w15
git tag -a v2026.15.0-rc1 -m "train 2026w15 rc1"
4. During train window, accept blocker-level changes only
Avoid opportunistic “while we are here” additions.
5. Ship on time and review train metrics
Track on-time rate and carry-over rate (items moved to next train).
Holding trains for extra scope destroys the very predictability the model is designed to provide.
Common mistakes
Mistake 1: delaying train to maximize payload
Train models optimize cadence reliability, not per-release fullness.
Mistake 2: no explicit intake criteria
This creates late-cycle negotiation and friction.
Mistake 3: tracking release count but not schedule reliability
Without on-time confidence, cadence is just noise.
- Choose a fixed release frequency.
- Define three to five intake gates.
- Define freeze point and exception path.
- Track on-time and carry-over metrics per train.
Good follow-up reads
Code freeze and release candidate workflowRelease branch workflowPost-release multi-branch backporting
Try it yourself
- Practice the release-train-workflow command in a test repository and observe state changes before and after
- Experiment with different options and compare the output differences
- Simulate a real scenario where you would need to use this, and walk through the full process
Further reading
Keep going on the same topic: