Suite à mon dernier post sur le conventional commits, je vous explique comment j’automatise l’utilisation de conventional commits.
Commitlint
Pour commencer nous avons l’outil Commitlint qui permet de faire du linting sur les message de commit.
Le principe est de remonter toutes les erreurs de format afin d’aider le développeur à rédiger un message de commit respectant le conventional commit.
Pour rendre le lint automatique, je couple Commitlint à husky afin de lancer la commande de lint à chaque fois qu’un développeur effectue un commit.
Pour celle et ceux qui ne seront pas familier avec husky voici un article qui présente l’outil : https://medium.com/@saravanan109587/husky-the-secret-weapon-for-developers-who-want-to-write-better-code-3289b06ee4d0#:~:text=Husky is a tool that,your code and prevent errors.
Voici le lien vers la documentation de commitlint : https://commitlint.js.org/
Commitlint CLI (Command Line Interface)
Il est possible d’utiliser un CLI avec commitlint en installant le package NPM suivant : @commitlint/cli.
La CLI permet de donner un template aux développeurs afin qu’ils ne doivent pas se référer à la documentation à chaque fois que ces derniers rédigent un message de commit.
Pour obtenir la CLI il suffit d’exécuter la commande suivante une fois le package installé
npm run cz
Voici à quoi ressemble la CLI :
Personnellement, je passe par un script npm me permettant de lancer la CLI de la façon suivante :
npm commit
Outil pour le pair/mob programing
Étant un fervent partisan du pair/mob progaming, j’utilise le wrapper https://www.npmjs.com/package/cz-conventional-changelog-coauthors qui me permet d’avoir la possibilité d’ajouter des co-auteur à mes commits.
Pour cela, il suffit d’ajouter un fichier de configuration .czrc à la racine de votre projet puis renseigner l’ensemble des nom/prénom et adresse mail des différents membres de l’équipe.
Ainsi à chaque fois que vous faites un commit, vous pouvez facilement ajouter tous les membres ayant participé au développement en les sélectionnant dans la CLI de commit.
Voici les lignes qui sont ajoutées dans la CLI
Voici un exemple de mon fichier de configuration
// .czrc
{
"path": "cz-conventional-changelog-coauthors",
"defaultCoAuthors": [
{
"name": "Elon Musk",
"email": "elon.musk@spacex.com"
},
{
"name": "Jeff Bezos",
"email": "jeff.bezos@amazon.com"
}
]
}
Conclusion
Voilà les différents outils que j’utilise pour respecter le conventional commits sans le moindre effort. N’hésitez pas à me partager vos outils permettant de respecter le conventional commits si vous en utilisez d’autres que moi !