Ce document décrit une méthode d’organisation pour les développements en lots, en particulier en cas de collaboration entre deux équipes.
Contexte
Dans cet exemple, on suppose que la Team 1 souhaite faire faire une grosse évolution appelée “Import” sur une application existante, que celle-ci a été découpée en 4 lots et qu’elle sera prise en charge par l’équipe OI.
Principe général
La branche oi-imports-lots
permettra de merger les différentes branches de développement (oi-import-lot1
, oi-import-lot2
, oi-import-lot3
, etc.).
Il est important de respecter les noms des branches données ici pour qu’on puisse s’y retrouver.
Procédure
Etape 0 : Créer la branche du développement dans son ensemble
Créer une nouvelle branche oi-import-lots
sur le repo de l’application.
Etape 1 : Marche à suivre pour le lot 1
Team OI :
- Créer une branche
oi-import-lot1
depuis la branchesoi-import-lots
- Commiter et pusher sur la branche
oi-import-lot1
- Créer une PR de la branche
oi-import-lot1
vers la brancheoi-import-lots
nommé “Merge oi-import-lot1 into oi-import-lots” - Demander une review au responsable technique de la Team 1
Team 1 :
- Faire la review du code demandée par la Team OI
- Organiser une réunion pour éclaircir certain point si nécessaire
Team OI :
- Commit et pusher les modifications demandées par les reviewers
Team 1 :
- Approuver la PR “Merge de la branche oi-import-lot1 dans oi-import-lots”
A cette étape, il est possible de faire un test fonctionnel en faisant un git checkout oi-impor-lots
après avoir installé l’application via git sur un environnement de test.
Etape 2 : Marche à suivre pour le lot 2
Team OI :
- Créer une branche
oi-import-lot2
depuis la branchesoi-import-lots
- Commiter et pusher sur la branche
oi-import-lot 2
- Créer une PR de la branche
oi-import-lot2
vers la brancheoi-import-lots
nommée “Merge oi-import-lot2 into oi-import-lots” - Demander une review au responsable technique de la Team 1
Team 1 :
- Faire la review du code demander par la Team OI
- Organiser une réunion pour éclaircir certain point si nécéssaire
Team OI :
- Commit et pusher les modifications demandées par les reviewers
Team 1 :
- Approuver la PR “Merge de la branche oi-import-lot2 dans oi-import-lots”
A cette étape, il est possible de faire un test fonctionnel en faisant un git checkout oi-import-lots
après avoir installer l’application via git sur un environnement de test.
Etape X : Marche à suivre pour le lot X
Même marche à suivre pour les lots restants.
Remarques
Lorsque le développement prend du temps (sur plusieurs sprints par exemple), on peut avoir besoin de récupérer les développements poussés sur la branche principale par d’autres développeurs (pour récupérer un fix nécessaire à la suite du développement ou pour limiter les conflits lors du merge final). Pour ce faire, il est recommandé de faire un premier merge de la branche principale (master) vers la branche principale du développement (oi-import-lots) puis un second merge vers la branche spécifique (oi-import-lot2).
git checkout master
git pull # Bien penser à puller pour récupérer l'ensemble des derniers développements sur la branche local
git checkout oi-import-lots
git merge master
# corriger les éventuels conflits, git commit + git push
git checkout oi-import-lot2
git merge oi-import-lots
# corriger les éventuels conflits, git commit + git push
Si, lors du développement du lot 2 une erreur dans le lot 1 est remonté, il faudra que le développeur corrige l’erreur dans son lot courant pour éviter les conflits.
Une fois la totalité des lots mergés sur la branche oi-import-lots, cette branche est traité par la team 1 comme n’importe quelle autre branche (PR sur la branche de développement, etc )