Il modello
Trunk-based development (TBD) mantiene un singolo branch di lunga durata — il tronco, di solito main — e integra tutto frequentemente, idealmente molte volte al giorno.
Due varianti
- TBD puro - tutti committano direttamente al tronco.
- Branch di breve durata - i branch vivono poche ore.
Perche TBD funziona
- I conflitti emergono giornalmente.
- Il tronco e sempre rilasciabile.
- Niente merge "big bang".
- L'integrazione continua diventa letterale.
La sfida: feature incomplete
- Feature flag - merga il codice spento.
- Branch by abstraction - introduce un'interfaccia.
- Keystone interfaces - collega il nuovo percorso per ultimo.
Una giornata tipica
git checkout main
git pull --rebase
git checkout -b quick-fix
git rebase main
git push -u origin quick-fix
git checkout main
git pull --rebase
git branch -d quick-fix
Garanzie richieste
- Test veloci - sotto i 10 minuti idealmente.
- Check pre-merge bloccano commit rotti.
- Rollback automatizzato o feature flag.
Release
- Release dal tronco.
- Branch di release.
git tag -a v1.4.0 -m "Release 1.4.0"
git push origin v1.4.0
Componente culturale
TBD e tanto cultura quanto workflow.