Sto lavorando su alcuni progetti in cui mi piacerebbe fornire un changelog accurato ad ogni rilascio, ma non ho trovato un metodo per raccogliere il log delle modifiche che avrebbe funzionato senza problemi. Il problema è soprattutto quando il tempo tra le versioni è lungo e ogni versione viene fornita con molte funzionalità e correzioni di bug e quando il software ha diversi rami sviluppati contemporaneamente.
Alcune opzioni che ho considerato:
- Costruisci il log delle modifiche dai messaggi di commit e richiedi agli sviluppatori di scrivere i messaggi come se stessero scrivendo una riga per il registro delle modifiche (cosa che effettivamente farebbero).
- Potrebbe non funzionare quando ci sono più filiali e la fusione tra filiali (potrebbe essere difficile sapere quali commit sono finiti nel rilascio).
- Richiedere che per ogni modifica del codice ci sia un ticket corrispondente nel sistema di tracciamento dei bug. Il log delle modifiche potrebbe essere scritto in base ai ticket.
- Gli sviluppatori potrebbero ritenere frustrante effettuare un ticket anche per modifiche minori, soprattutto se il ticket richiede più tempo rispetto alla correzione del bug.
- Richiede che gli sviluppatori aggiornino sempre il log delle modifiche (come file di testo nella root del progetto) nello stesso momento in cui apportano modifiche al codice.
- Sembra che il lavoro manuale possa essere automatizzato.
- Chiedere al project manager di prendere il diff della versione corrente e quella precedente e scrivere il log delle modifiche in quel punto in base a ciò che vedono che è stato modificato.
- Lavoro extra per il responsabile del rilascio e potrebbe non essere ovvio quale effetto pratico di un cambiamento è semplicemente guardando il codice.
- Spedire solo le funzionalità che sono state pianificate per il rilascio; puoi scrivere il registro delle modifiche anche prima di iniziare la codifica.
- Non è un'opzione reale a meno che tu non stia utilizzando il modello a cascata.
Ho usato ognuno di questi o una loro variazione in passato, ma sono stati troppo inaffidabili, laboriosi o rigidi. Qualcuno ha una bacchetta magica o buone idee su come risolvere il problema?