generated from Arquisoft/wiq_0
-
Notifications
You must be signed in to change notification settings - Fork 0
ADR 07 ‐ Usage of Trunk Based Development
Pablo García-Ovies Pérez edited this page Mar 11, 2024
·
2 revisions
- Proposed
- Accepted - Superseeds ADR 01
- Superseded
As we have encountered some problems using "A Succesful Git Branching Model" because of the branch division by functionality, due to the need of having the latest version of all the features of the system to be able to test one of them, we need to use a work methodology that enables us to work without major problems with all the latest functional versions of the modules altogether.
From now on, we will be using Trunk Based Development, being all of us able to work on a single branch that can be always merged with develop in case last updates are needed.
-
Benefits:
- All features available: All the services hosting the differents features will be ready to use in their lastest functional version.
- Merges into develop more gradually: Develop branch will be iteratively increasing as the everyday work will be pushed to it as soon as there is a functional and lightly tested version of the feature being implemented.
-
Trade-offs:
- Tracking difficulties: Tracking the evolution and history of single features will be more problematic as all the work related may be in different branches and mixed with other features.
- Increased need of testing and code quality: Due to the develop branch being merged more times and from different branches, it will be mandatory to improve significantly the quality of the code and to ensure the features being merged are acuatlly working as expected.
- Merges into develop must be done, unless justified, by a PR in which other team members assigned or knowing the feature involved are mandatory supervisors.
- Code being pushed to develop while not working properly or not complying enough with quality constraints must be paired with the creation of an Issue explaining clearly the lacking stuff.