Écrire un message de commit

Les messages des commits dans SPIP suivent les spécifications des Commits Conventionnels. Ceci facilite la relecture a posteriori de l’historique du code, ainsi que l’analyse des PR.

Le corps du message doit être clair et explicatif : décrire le problème traité et les évolutions ou corrections apportées.

Structure d’un commit conventionnel

  1. Première ligne commençant par le type de commit, suivi de deux points (:), suivi d’un message résumant le commit.
  2. Le type peut éventuellement être complété par un scope entre parenthèses afin de préciser le composant ou la fonctionnalité modifiée.
  3. Optionnellement, on peut ajouter, après une ligne vide, un ou plusieurs paragraphes complémentaires décrivant plus en détail le commit. La syntaxe Markdown peut être utilisée.
  4. Enfin, une dernière ligne (séparée des précédentes par une ligne vide) doit contenir une référence au ticket auquel est lié le commit. La référence prend la forme suivant Refs: #XXX, ou Fix: #XXX pour fermer le ticket automatiquement lors de la fusion dans la branche de destination.

Exemple de commit conventionnel

Exemple de log de commit complet :

fix: réparer le lien vers la licence GPL dans le pied des pages du privé

en le remplaçant par un simple lien vers le site officiel gnu.org

Fix: #5328

Liste des types de commit

Convention utilisée dans SPIP.

TypeSignification
build Modifie un script de compilation du programme ou modifie des dépendances externes. Indique également une montée en version.
change Modifie l’implémentation d’une fonctionnalité — peut modifier des signatures de fonctions (≠ refactor)
chore Travail de fond n’altérant pas le code (sortir une version, regénérer du code compilé)
ci Relatif à l’intégration continue
deprecate Déprécier (sans l’enlever) une fonctionnalité
docs Relatif à la documentation (docs, readme, changelog)
feat Ajoute une fonctionnalité
fix Corrige un problème
i18n Relatif aux traductions et chaînes de langue
perf Améliore la performance d’algorithme ou du programme
refactor Réécriture de code, sans en modifier l’implémentation
remove Suppression de code ou de fonctionnalité (déprécié auparavant)
revert Annule une modification précédente (commit)
security Relatif à la sécurité
style Relatif aux règles d’écriture du code (Coding Standard)
test Relatifs aux tests du logiciel

Pour aller plus loin

Se référer au site www.conventionnalecommits.

Auteur Maïeul Publié le : Mis à jour : 15/12/24