Procédure de patch sur une version en prod

Cette procédure est conçue pour le cas suivant :

  • une version x.y.z est déployée en production
  • cette version contient un bug
  • des commits de développement ont été pushés sur le repository entre la version en prod et la date actuelle (si ce n’est pas le cas, il suffit de commiter le fix et de faire une nouvelle version patch standard)

La version en prod x.y.z correspond nécessairement à un tag du source-control (sinon, y’a eu un raté!).

git checkout app-name_x.y.z

A partir de là, en dev, on est iso-prod: le bug doit pouvoir être reproduit, et le fix nécessaire développé.
Créer une nouvelle branche “x.y” (sans le z, qui justement correspond aux versions patch).

git branch x.y
git checkout x.y

Développer le fix et commiter/pusher (ca le fera sur la branche).

Tagger une nouvelle version avec un numéro de patch supérieur: le pipeline CI devrait construire et déployer l’image corrigée.


Après le déploiement du fix, il convient de copier le commit de fix sur la branche ‘main’ afin que celle-ci profite également de la correction.

Un moyen simple est le cherry-picking. Noter le hash du commit (visible via git log, ou sur Gitlab), puis, en repassant sur la main:

git checkout main
git cherry-pick <commit-hash>
git push


Feature flags

Feature flags allow to develop new features along with the existing ones, only using the new ones according to some conditions (configuration, etc.), allowing not to use them in production for example. A good way to develop in parallel of the existant without breaking it, definitely should have considered that for the Angular development, instead of coding it in a long-term hard-to-merge branch.

I found following article most interesting on the subject and felt like sharing it:

https://martinfowler.com/articles/feature-toggles.html