Trunk-Based Development Concepts and Experiences from Trenches

Trunk-Based Development Concepts and Experiences from Trenches

Trunk-Based Development Concepts and Experiences from trenches Prof. Eng. Nicolás Paez @inicopaez Context @inicopaez http://nicopaez.com.ar/tbd-survey @inicopaez Trunk-based Development? @inicopaez Don’t know Don’t trust Don’t need @inicopaez What is Trunk-Based Development? @inicopaez Trunk-based Development A source-control branching model, where developers collaborate on code in a single branch called ‘trunk’, resist any pressure to create other long-lived development branches by employing documented techniques. They therefore avoid merge hell, do not break the build, and live happily ever after. Paul Hammant @inicopaez Why is it important? @inicopaez Trunk-based Development It is required for CI/CD It makes life easier @inicopaez Vocabulary @inicopaez Codeline A particular sequence of versions of the code base. It can end in a tag, be a branch, or be lost in git's reflog. tag branch branch @inicopaez Mainline A single, shared, branch that acts as the current state of the product v1 master f1 @inicopaez Continuous Delivery Continuous Integration Trunk-based Development @inicopaez Extraído del libro Extreme Programming Explained Trunk-based development Red de Prácticas de XP @inicopaez https://martinfowler.com/articl es/continuousIntegration.html Martin Fowler @inicopaez @inicopaez Release != Deploy @inicopaez Challenges (myths / doubts) @inicopaez Branch usage Parallel development Spikes / PoC Environment management @inicopaez Merge conflicts @inicopaez Merge-Requests @inicopaez Techniques / Strategies @inicopaez Feature toggles @inicopaez XP Practices Small Teams => 8 Devs => 8 branches Pair-Programming => 4 branches Mob-Programming => 1 branch @inicopaez Roll-forward @inicopaez Branch for release vs. Release from trunk @inicopaez Strangulation & Branch by Abstraction @inicopaez Client Provider Client Abstraction Provider Provider Branch by Abstraction @inicopaez How I practice it @inicopaez One branch for development & releasing @inicopaez Pair/Mob Programming all time for production code @inicopaez BDD / TDD (london style) @inicopaez Semantic version + commit-id embedded in binary GET /api/health => { “version”:”1.0.35-6ef4976”} @inicopaez Resources https://blog.nicopaez.com/2020/03/20/todos-contra-master-trunk-based -development/ https://trunkbaseddevelopment.com/book/ https://blog.nicopaez.com/2020/07/05/continuous-delivery-como-una-ci nta-transportadora/ https://www.youtube.com/watch?v=ZnVMsZX3WU0 https://martinfowler.com/articles/branching-patterns.html @inicopaez The End Nicolás Paez [email protected] @inicopaez blog.nicopaez.com @inicopaez.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    35 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us