Skip to main content

Convention de commit

Convention de message de commit Git

info

Ceci est adapté de la convention de commit d'Angular.

TL;DR :

Les titres de commit doivent correspondre à l'expression régulière suivante :

/^(revert: )?(feat|fix|docs|style|refactor|perf|test|workflow|build|ci|chore|types|wip)(\(.+\))?: .{1,72}/;

Format complet du message

Un message de commit se compose d'un en-tête, d'un corps et d'un pied de page. L'en-tête comporte un type, une portée et un sujet :

<type>(<scope>): <subject>
<BLANK LINE>
<body>
<BLANK LINE>
<footer>

L'en-tête est obligatoire et la portée de l'en-tête est facultative.

Annulation

Si le commit annule un commit précédent, il doit commencer par revert:, suivi de l'en-tête du commit annulé. Dans le corps, il doit indiquer : This reverts commit <hash>., où le hash est le SHA du commit annulé.

Type

Si le préfixe est feat, fix ou perf, il apparaîtra dans le changelog. Cependant, s'il y a un quelconque BREAKING CHANGE, le commit apparaîtra toujours dans le changelog.

Les autres préfixes sont laissés à votre discrétion. Les préfixes suggérés sont docs, chore, style, refactor et test pour les tâches non liées au changelog.

Portée

La portée indique dans quelle section de l'application les modifications ont eu lieu, telle que SlashCommand, ContextMenu ou MessageComponents

Sujet

Le sujet contient une description succincte de la modification :

  • Utilisez l'impératif, au présent : « change », pas « changed » ni « changes »
  • ne mettez pas de majuscule à la première lettre
  • ne terminez pas votre message par un point (.)

Corps

Comme dans le sujet, utilisez l'impératif, au présent Le corps doit inclure la motivation de la modification et la différence avec le comportement précédent.

Le pied de page doit contenir toute information sur les Breaking Changes et c'est également l'endroit pour référencer les issues GitHub que ce commit Closes (clôt).

Les Breaking Changes doivent commencer par les mots BREAKING CHANGE: suivis d'un espace ou de deux retours à la ligne. Le reste du message de commit est ensuite utilisé pour cela.