Accueil Technologies Conventional Commits : une meilleure compréhension des commits
Conventional Commits Une meilleure compréhension des commits

Conventional Commits : une meilleure compréhension des commits

par Jérémy PASTOURET

Que vous soyez développeur, Lead-dev, DevOps…. vous faites affaire avec un gestionnaire de version de code, que ce soit Git ou SVN. Et pour chaque changement dans le code, il faut écrire des objets afin de soumettre (commit) les modifications de code. A l’heure actuelle, il n’y a pas de règle stricte sur la manière d’écrire cet objet. Mais il existe des Conventional Commits qui répondent à cette problématique.

Que sont les Conventional Commits ?

Qu'est ce que le Conventional Commits

Il s’agit d’une convention qui définit un ensemble de règles afin d’écrire des messages de commits propres. Cette convention apporte aussi une structure d’écriture basée sur SemVer (Semantic Versionning). SemVer est une autre convention dédiée à la définition d’une nouvelle version (Majeur, Mineur, Patch…).

Exemple de message avec Conventional Commits

docs: correct spelling of CHANGELOG

Grâce à ce message, on comprend rapidement qu’une modification a été apportée à la documentation.

Exemples de version avec SemVer

SemVer - exemples

Si vous souhaitez plus d’exemples, ou bien tester SemVer par vous-même, je vous propose de consulter cette RegEx en ligne.

Les règles de base des Conventional Commits

classiques

La convention suit cette structure :

<type>[optional scope]: <description>

[optional body]

[optional footer]
  • Le type permet de donner l’idée général du commit.
  • Le scope est facultatif : il permet d’indiquer la portée de la modification. Par exemple : l’interface graphique.
  • La description est obligatoire et contient un court résumé des modifications effectuées.
  • Le body est optionnel : il permet de décrire dans le détail ce qui a été fait.
  • Le footer est optionnel : il contient des méta-données, comme un numéro de bug, un PR (pull-request)…

Les avantages des Conventional Commits

modernes

La compréhension

En appliquant cette convention, vous comprendrez mieux vos commits. L’exemple typique, c’est de se rendre compte au bout d’un mois qu’il y a eu une régression dans le code. Une fonctionnalité a disparu. A ce moment là, vous décidez de consulter l’historique des Git commits. Dans ce cas, il y a deux possibilités : soit vous tombez sur le bon commit, soit vous devez lire chaque modification dans chaque commit.

Les Conventional Commits ont pour objectif d’éviter cela. Le but : rendre l’historique des commits plus compréhensif. Grâce à certains mots-clés spécifiques, vous comprendrez rapidement quel était le but de tel ou tel commit.

Automatisation de tâches

Le second avantage à utiliser des mots-clés, c’est qu’un programme peut les reconnaître facilement et en déduire certaines choses.

Vous pouvez par exemple générer un Changelog en une seule commande. L’idée étant d’analyser vos commits et de les catégoriser en 3 rubriques :

  • Les mises à jours de fonctionnalités.
  • Les bugs réparés.
  • Les nouvelles fonctionnalités.

Ces trois rubriques sont ensuite indiquées dans un fichier nommé Changelog.md. De cette manière, lorsque vous générez une nouvelle version / release, toutes ces informations y sont indiquées.

Et en mettant tout à bout, vous pouvez créer une nouvelle version en un seul clic. En appliquant les Conventional Commits + SemVer + un script, vous pouvez tout automatiser.

Conclusion

Bannière conclusion

Maintenant que vous connaissez les principes de base, vous pouvez vous imprégner de cette manière d’écrire les commits. Dans un second article, je vous montrerai les différents types existants, les points importants du body / description, ainsi que quelques exemples de bons commits. En attendant de découvrir cet article, je vous conseille celui-ci : Astuces de Git n°1 : Lancer des tests ou des scripts pour valider un Git Commit.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.