Table des matières

Changelog et commit

Lors de la contribution aux projets de Khaganat1), il est important de générer des “changelogs” de bonne qualité.

Pour cela, quelques règles sont à respecter. En particulier, nos changelogs sont automatisés, créés via les commits ; cela demande d'utiliser une syntaxe particulière.

Un peu de vocabulaire

Définir ce qu'est un changelog, un commit, renvoyer aux liens idoines, pour les plus débutantes.

Rédaction d'un commit

Extrait de https://port.numenaute.org/khaganat/mmorpg_khanat/khanat_gamedev_guide et amendé.

Les messages de commit se rédigent en anglais de façon à faciliter la collaboration internationale.

La structure est la suivante :

<type>(portée, facultative): sujet
<ligne vide> (si élément suivant présent)
Corps de description plus complète (un ou plusieurs paragraphes), facultatif
<ligne vide> (si élément suivant présent)
<pied de page>, facultatif

Voir les exemples plus bas.

Les types

Les types de commits possibles sont les suivants (par ordre alphabétique):

Le cas échéant, il est possible d’ajouter de nouveaux types selon les besoins (se référer à la convention Angular ou Keep a Changelog par exemple). Il faut alors penser à modifier les scripts de génération de changelog en conséquence (ainsi que les conséquences sur les séquences de versionnement), et documenter ces nouveaux types ici.

Le type doit être écrit en minuscule, sans espace.

La portée (facultatif)

Indiquée entre parenthèses, en minuscule sans espace, elle permet de préciser éventuellement sur quel partie du code la modification porte. Elle peut être choisie dans cette liste :

Certaines portées sont spécifiques à certains logiciels :

D’autres portées peuvent être ajoutées à la liste au fur et à mesure des besoins.

Rupture de compatibilité

Si le commit entraîne une rupture de compatibilité dans le code, le type doit se voir accoler un point d’exclamation avant les deux points, quel que soit son type (entraîne un changement de type majeur dans le versionnement). Il faut alors également lui ajouter un pied de page avec la mention « BREAKING CHANGE: » suivi de la mention de l’endroit où la rupture s’opère.

Le sujet

Laissant une espace après les deux points, il ne comporte pas de majuscule au début ni de point à la fin. Le sujet doit décrire en peu de mot le changement qu’opère le nouveau code.

Exemples de première ligne correcte :

feat(ui)!: change methods for IG windows, close #18
fix(core): address collision problems for player, close #37
feat: add color wheel for windows background, close #16

Corps de description

Facultatif, il permet de décrire de façon détaillée ce qui a motivé les choix opérés et mettre l’emphase sur les améliorations espérées par rapport à l’ancien état.

Pied de page

Il peut comporter deux éléments :

1)
Du moins ce qui demande d'utiliser Git.