Categories:
Aura Release Train Manager
Release Train Manager (RTM) implementation and architecture
Introduction to RTM development methodology
The “release train” software development methodology is a way of planning the delivery of software according to a predetermined and regular schedule, as if it were a “train timetable”. This schedule is public for all the teams that must contribute to the delivery and represents a commitment on their part, as the schedule must be adhered to.
If we use the metaphor: “the train will take the passengers who are ready to travel”, i.e., only the software that is ready to be integrated will be integrated. For this it is necessary to work on the different functionalities in parallel and in isolation without affecting the rest.
We start from a prioritized backlog. The tasks will enter the implementation phase in order of priority.
-
Github is used for the organization of the process. See here the details of Github as orchestrator.
-
The file and properties for the configuration of branches is included in Branch configuration.
-
Learn how locales files and the POEditor project are managed in RTM: Managing locales.
RTM overview
The important thing when we are working on a new feature is to be able to completely isolate the development, environment and testing. To do this, environments will be generated per feature and git branches will be used for the different repositories involved.
- INIT: initial processing of a feature (select repos involved, create branches on those repos and create environment).
- TF (Tests Feature): daily smoke tests on feat/new-feature branches.
- TFPR (Tests Feature PR): full regression tests on the master merge and the feat/new-feature branch.
- TM (Tests Master): complete daily/weekly regression tests on the master branches.
- PR Fx (PR Feature): PRs on the feat/new-feature branch.
- PR Mx (PR Master): PRs on the master branch.