La specifica Conventional Commits è una convenzione applicata ai messaggi di commit che fornisce un insieme semplice di regole per creare una cronologia di commit esplicita.
Questa convenzione descrive le feature, i fix, i breaking change, ecc. presenti nei messaggi di commit.
Nel progetto albe-web-components siamo soliti usare un sottoinsieme delle opzioni possibili stabilite dalla specifica.
Il messaggio di commit dovrebbe seguire la seguente struttura:
<type>(optional JIRA story code): <description>
Ecco una breve spiegazione dei vari campi.
TYPE
Anche se la specifica ammette molti valori possibili come type, per albe-web-components utilizziamo solo i seguenti:
fix: se il commit corregge un bug;feat: se il commit introduce una nuova funzionalità;chore: se il commit non modifica il codice (ad esempio aggiornamenti di dipendenze);docs: se il commit introduce o migliora la documentazione.
Un commit che include un ! dopo type/scope introduce una modifica incompatibile (BREAKING CHANGE, corrispondente a MAJOR nel versionamento semantico). Un BREAKING CHANGE può far parte di commit di qualsiasi tipo.
NOTA IMPORTANTE! La libreria che utilizziamo per creare automaticamente il changelog prende in considerazione solamente i commit di tipo feat o fix. È opportuno quindi, nella maggior parte dei casi, che ad uno sviluppo corrisponda almeno un commit dei due tipi appena citati, affinché il changelog tenga traccia di quanto implementato.
Fonte: commit-and-tag-version - FAQ - Why do my refactor, chore etc changes not appear in the changelog?
OPTIONAL JIRA STORY CODE
Il campo optional JIRA story code (racchiuso tra parentesi tonde) può essere fornito come riferimento preciso alla storia JIRA dalla quale scaturisce lo sviluppo.
Commit message solo con descrizione
feat: simple commit description
Commit message con ! per evidenziare un breaking change
feat!: commit message with breaking change
Commit message con optional JIRA story code
feat(DS-959): in this commit message an optional JIRA story code is provided
Commit message con optional JIRA story code e ! per evidenziare un breaking change
feat(DS-959)!: in this commit message an optional JIRA story code is provided and a breaking change is specified