Skip to main content
Se hai intenzione di manutenere a lungo un pacchetto Laravel, prepara subito la cronologia delle modifiche e la procedura di release. Sistemare il release management previene omissioni nella comunicazione dei breaking change e la personalizzazione eccessiva delle attività di rilascio.
Questa pagina è la sorella di Sviluppo di pacchetti Laravel. Per la strategia di compatibilità con Laravel/PHP consulta Gestire la compatibilità tra versioni dei pacchetti.

Come scrivere il CHANGELOG.md

Il CHANGELOG è la fonte primaria dove gli utenti leggono “cosa, quando, in quale versione è cambiato”. Adottando il formato Keep a Changelog uniformi la struttura delle categorie in tutto il team.

Regole di base

  • Titola le versioni nella forma ## [x.y.z] - YYYY-MM-DD
  • Usa le categorie Added / Changed / Deprecated / Removed / Fixed / Security
  • Metti in fondo i link di confronto per poter seguire le differenze
  • Le modifiche non ancora rilasciate finiscono in ## [Unreleased]
Come release note usa direttamente la sezione corrispondente del CHANGELOG. Concentrando la fonte informativa in un solo luogo, i contenuti restano allineati tra README, GitHub Releases e annunci sui social.

Semantic Versioning (SemVer)

Il Semantic Versioning usa MAJOR.MINOR.PATCH con questi criteri.
  • MAJOR: cambiamenti che rompono la retrocompatibilità (breaking change)
  • MINOR: aggiunte di funzionalità retrocompatibili
  • PATCH: fix retrocompatibili

Esempi di scelta per un pacchetto Laravel

Il supporto a Laravel 13 si tratta diversamente in base al contenuto della modifica. Verifica sempre i contenuti dell’upgrade di Laravel nella Upgrade Guide. Le release più recenti sono su laravel/framework releases. Se ci sono breaking change sulle API che il pacchetto usa, devi riprogettare la policy di compatibilità.
Innalzare il requisito minimo di PHP o rimuovere API pubbliche sono, dal punto di vista degli utenti, breaking change. Anche se coincidono con l’adattamento a un nuovo major di Laravel, trattali come release MAJOR.

Tag Git e GitHub Releases

Prima crei il tag Git e lo pushi su origin.
Poi, dalla schermata di creazione release di GitHub, selezioni il tag v2.1.0 e lo pubblichi. Nel corpo incolli la sezione ## [2.1.0] del CHANGELOG.
1

Fai merge su main del commit di release

Fai merge su main con tutti i test verdi.
2

Crea e pusha il tag Git

Crea un tag nella forma vX.Y.Z e pushalo su origin.
3

Pubblica la GitHub Release

Come titolo usa il nome del tag; come corpo la sezione corrispondente del CHANGELOG.

Release automatiche con GitHub Actions

Usando push: tags: come trigger puoi pubblicare automaticamente le GitHub Releases al momento della creazione del tag. Con softprops/action-gh-release puoi riutilizzare direttamente i contenuti di CHANGELOG.md.
Impostando needs: test sul job release puoi bloccare la pubblicazione se i test falliscono. Mantieni sempre questo gate, sia con release manuali che automatiche.

Come gestire i breaking change

Progetta i breaking change perché possano essere adottati in modo graduale. Prima deprechi, poi rimuovi nella MAJOR successiva: così riduci il costo di migrazione per gli utenti.

1. Segnala la deprecazione a livello di codice

2. Documenta la guida di migrazione

In UPGRADE.md o in una pagina dedicata metti in sequenza le modifiche che gli utenti devono applicare.

3. Lascia note di migrazione tra le versioni major

Quando fai un salto MAJOR, collega tra loro Removed nel CHANGELOG e la guida di migrazione. L’utente vede in un colpo “cosa è stato rimosso” e “come sistemarlo”.

Pagine correlate

Sviluppo di pacchetti Laravel

Rivedi le basi di implementazione centrate sui service provider.

Gestire la compatibilità tra versioni dei pacchetti

Riorganizza compatibilità Laravel/PHP e criteri di uso di SemVer.

Testare pacchetti Laravel con Orchestra Testbench

Verifica le strategie di test e l’implementazione necessarie prima di ogni release.
Ultima modifica il 13 luglio 2026