Votre changelog reprend les fonctionnalités que vous avez réalisé entre deux versions, ça tombe bien, votre historique git contient ces informations 🙂 On va voir comment les extraire de git pour générer automatiquement un changelog exhaustif et fiable.
Sommaire
Le principe
Pour faciliter la maintenance de votre projet, il est d’usage d’avoir des commits parlants afin que tous les développeurs puissent connaître les raisons d’un changement.
On va simplement appliquer une norme aux messages de nos commits:
Un bugfix commencera par fix:
Une feature commencera par feat:
etc..
Des outils permettent d’automatiser cette tâche comme commitzen:
Exemple:
Quand vous préparez une release, vous allez normalement créer un tag pour votre version.
Des utilitaires vont simplement lire les messages des commits qui ont eu lieu entre vos tags et vont déterminer lesquels écrire dans le changelog en fonction de leur préfixe, c’est tout !
Exemple concret
Si j’écrivais dans mon changelog à la main jusqu’à la version v0.1.0 et qu’à partir de la prochaine version v0.2.0 je veux qu’il soit généré automatiquement:
Le changelog a été édité pour la version v0.2.0 uniquement, c’est donc très facile à mettre en place car ça n’affecte pas les informations de vos précédentes versions !
Mise en place
Choisissez une convention de nommage et un outil adapté, c’est tout !
J’ai mis dans les exemples précédents un usage avec Commitzen car c’est ce que j’utilise au quotidien actuellement (et j’en suis satisfait) mais d’autres options existent.
Photo by Yancy Min on Unsplash
Contexte
Je suis développeur au quotidien et j'aime développer en dehors du travail également.
Parfois, il peut m’arriver de faire un kata entre midi et deux par exemple. J'aime bien du coup garder une trace de mon exercice ou si je n’ai pas le temps pour le continuer plus tard. Pour ça, j’utilise Git avec un dépôt distant. Rien de particulier ju...
On va prendre un cas concret: j’ai fait un commit et en relisant ma merge request, je me rend compte que certains fichiers ne devraient pas y être:
Dans mon cas c’est le fichier src/test/java/com/globaldashboard/unit/dependencies/domain/PomUrlTest.java
...
Dans une application Spring, sauf exceptions, les Beans sont proxifiés. En d’autres mots, on n'interagit pas directement avec eux et ce mécanisme est à la base de l’AOP.
Beaucoup de mécanismes s'appuient sur l’AOP (les Transactions par exemple) et conn...
Prérequis
Il faut que vous ayez déjà installé un JDK. Exécutez la commande:
java --version
Si vous avez bien un output de ce type avec cette commande, vous pouvez continuer.
Dans le cas contraire, il faudra installer un JDK.
...