### Trunk Based Development ![](début.JPG) La vraie intégration continue ? --- ## Qui t'es toi ? [@vaceletm](http://twitter.com/vaceletm)
--- ## Un peu d'histoire * SCCS ➡️ RCS ➡️ CVS ➡️ Subversion * ClearCase, BitKeeper, Perforce --- ## Et ~~Dieu~~ Linus créa la Branche Monotone (2003), Git (2005), Mercurial (2005)
--- ## Git flow (2010)
Source
https://nvie.com/posts/a-successful-git-branching-model/
--- ## Note of reflection > If your team is doing continuous delivery of software, I would suggest to adopt a
much simpler workflow
instead of trying to shoehorn git-flow into your team Vincent Driessen, March 5, 2020 --- ## Github flow ![](github.png)
Source:
https://guides.github.com/introduction/flow/
--- ## Merge Hell ![](merge.png) --- ## Trunk Based Development ![](tbd.png)
Source:
https://trunkbaseddevelopment.com/
--- ## Et en vrai ? La solution la plus simple: tout le monde commit dans ~~master main~~ trunk * Facile * Nécessite une grosse confiance * Livraison continue compliquée quand `trunk` casse --- ## Plus de contrôle Avec des Pull Requests ou des Merge Requests * Un peu plus compliqué * Introduit la Revue de Code * Mais, y a des branches! --- ## Outil dédié Gerrit impose un workflow par commit * Montée en compétence plus difficile * Gros focus sur la Revue de Code * Moins populaire que Github --- ## Au jour le jour ? * Atomicité des incréments de code * ~~master main~~ trunk toujours "vert" * Continuellement déployable --- ## Découpe ? ![](taskboard.png) --- ## Effets de bord * Le fonctionnel est exposé tôt * Le code doit être pensé intégré * C'est codé, c'est livré ! --- ## Pas livrable ! Livré ne veut pas dire activé Feature Flags ou Feature Flipping (conceptuellement c'est une branche) --- ## Résumé * Fait remonter les problèmes au plus tôt * Réduit la pression de livrer (90% vs 0%) * Nécessite une bonne ingénierie --- ## Et si on en fait pas ? Raccourcir les branches > Pull master fréquemment --- ### That's all folks [![](fin.JPG)](https://roti.express/r/ag20-020)
ROTI.express