Creare il changelog con Git

Che sia una buona idea?

 Thu, 01/10/2019 - 11:12

Penso di non essere il solo ad aver imprecato nel dover elencare tutte le modifiche fatte prima del rilascio di una nuova versione del progetto. Mi son reso conto che annotarsele manualmente di volta in volta su un documento (magari condiviso con il resto del team) non è una buona soluzione: sembra strano ma qualche modifica ti sfugge sempre per quanto tu voglia essere diligente.

Mentre stavo proprio compilando il suddetto documento, ho avuto una strana sensazione. Come quando parti da casa in fretta e furia per andare ad un appuntamento, sul più bello che sei in viaggio ti accorgi di aver dimenticato lo smartphone sopra il comodino in carica. Ecco lo sapevo, sono un asino!

Ma perché devo annotarmi le modifiche quando ho già i commenti aggiunti facendo git commit di ogni mia modifica?

Da questa illuminazione ecco che il comando git log diventa mio amico, soprattutto se utilizzato assieme all'opzione --pretty=format: con cui posso impaginare l'output in modo da ottenere una lista in formato Markdown.

In pratica salvo in un file log.md l'elenco di tutti i commit fatti dall'ultima versione rilasciata in ordine dal più vecchio al più recente

$ git log master 2.0.0...2.0.1 --pretty=format:'* [view commit](https://github.com/robertoperuzzo/my-repo/commit/%H) - %s' --reverse > log.md

ottenuto ciò, non farò altro che prendere il contenuto di questo file e aggiungerlo al changelog del progetto, nulla di più. Sinceramente non so se questa sia il modo migliore per generare automaticamente il changelog visto che tramite qualche ricerca in rete, mi sono accorto che esistono alcuni progetti nati proprio per questo, ad esempio gitchangelog. Ma di sicuro è un primo passo per togliermi un peso dallo stomaco.

Se qualcuno ha qualche altro tool da suggerirmi, sarà ben accetto!