Conventional Commits
Ah, i Conventional Commits! La salvezza di chi è stanco di leggere commit del tipo “fix stuff” o il classico “piccole modifiche” (sappiamo tutti che non sono mai piccole). Questa specifica aggiunge significato semantico ai messaggi dei commit, trasformando la storia del progetto da un romanzo horror a un documentario ben strutturato.
🏗️ Struttura Base
Se pensavi che scrivere commit fosse noioso, aspetta di vedere questa elegante struttura (sì, è ironia, ma ti ci abituerai):
<tipo>[scope opzionale]: <descrizione>
[corpo opzionale]
[footer opzionale]🎯 Tipi principali (aka “Come Non Perdere la Testa”)
feat✨: nuova funzionalità (quando finalmente aggiungi quella feature che il cliente chiede da mesi)fix🐛: correzione di un bug (ops!)docs📚: modifiche alla documentazione (sì, anche questa è importante)style💅: modifiche di formattazione (perché gli spazi sono importanti)refactor🔧: refactoring del codice (quando fai pulizia senza che nessuno se ne accorga)test🧪: aggiunta o modifica di test (meglio tardi che mai)chore🧹: modifiche a build, tool, config, etc. (il lavoro sporco che nessuno vuole fare)
🔄 Integrazione con Jira
Perché non far parlare i tuoi commit direttamente con Jira? È come avere un interprete personale:
|
|
Questo permette di:
- Tracciare facilmente i commit relativi a specifici ticket
- Generare automaticamente changelog
- Mantenere una chiara relazione tra codice e task
🛠️ Validazione con Cocogitto
Cocogitto è come avere un severo ma giusto professore che controlla i tuoi commit. Per MacOS (gli altri sistemi sono nel manuale, non facciamo favoritismi 😉):
brew install cocogittoPer altri sistemi operativi, fare riferimento alla documentazione ufficiale.
Configurazione Base
Creare un file .cog.toml nella root del progetto:
|
|
🪝 Git Hooks per la Validazione
Perché fidarsi dell’autocontrollo quando puoi forzare le buone abitudini? Ecco come:
Creare una directory .githooks nella root del progetto:
|
|
Creare il file .githooks/commit-msg:
|
|
Renderlo eseguibile:
|
|
Configurare Git per utilizzare la nuova directory degli hook:
|
|
Questo approccio permette di:
- Versionare gli hook insieme al codice
- Condividere gli hook con il team
- Mantenere gli script separati dalla directory
.git
✨ Benefici (o “Perché Non Dovresti Ignorare Tutto Questo”)
DevEx Migliorata 🚀:
- Ricerca facilitata nella storia dei commit
- Generazione automatica di changelog
- Versionamento semantico automatico
Conformità ✅:
- Standard condiviso nel team
- Validazione automatica
- Integrazione con strumenti CI/CD
Tracciabilità 🔍:
- Correlazione diretta con i ticket
- Storia del progetto chiara e strutturata
- Facilità nel review process
💡 Best Practices (aka “Regole d’Oro”)
- La brevità è l’anima dei commit (max 50 caratteri, non il tuo romanzo)
- Usa l’imperativo presente (come se stessi dando ordini al codice)
- Riferimento al ticket = karma positivo
- Il corpo del commit è come un diario, ma professionale