Cette page est la sœur de Développement de packages Laravel. Pour la stratégie de compatibilité Laravel/PHP, consultez Gestion de la compatibilité de versions de package.
Rédiger le CHANGELOG.md
Le CHANGELOG est l’information de première main permettant à vos utilisateurs de vérifier « ce qui a changé, quand et dans quelle version ». En adoptant le format Keep a Changelog, vous uniformisez au sein de l’équipe la structure des catégories.Règles de base
- Utilisez le titre
## [x.y.z] - YYYY-MM-DDpour chaque version. - Utilisez les catégories
Added / Changed / Deprecated / Removed / Fixed / Security. - Placez les liens Compare en pied de fichier pour permettre de suivre les diffs.
- Empilez les changements non encore publiés sous
## [Unreleased].
Versionnement sémantique (SemVer)
Le Semantic Versioning utiliseMAJOR.MINOR.PATCH selon les critères suivants :
- MAJOR : changement qui rompt la rétrocompatibilité (Breaking change).
- MINOR : ajout de fonctionnalité rétrocompatible.
- PATCH : correction de bug rétrocompatible.
Exemples de décision pour un package Laravel
Le traitement d’un support Laravel 13 varie selon la nature du changement.| Changement | Version recommandée |
|---|---|
Maintien du support Laravel 12 existant tout en ajoutant ^13.0 | MINOR |
Abandon du support Laravel 11/12 et ne conserver que ^13.0 | MAJOR |
| Correction d’un bug ne survenant qu’avec Laravel 13 | PATCH |
Tags Git et GitHub Releases
Créez d’abord un tag Git, puis poussez-le vers origin.v2.1.0 et publiez. Copiez la section ## [2.1.0] du CHANGELOG dans le corps.
Release automatique via GitHub Actions
Déclencher surpush: tags: permet d’automatiser la publication de la GitHub Release dès la création d’un tag. Avec softprops/action-gh-release, vous pouvez injecter directement le contenu du CHANGELOG.md dans le corps.
Ajouter
needs: test au job release permet d’empêcher la publication en cas d’échec des tests. Que la release soit manuelle ou automatique, conservez impérativement cette barrière.Gérer les Breaking changes
Concevez les changements cassants pour permettre une migration progressive. En dépréciant d’abord puis en supprimant à la MAJOR suivante, vous réduisez le coût de migration pour vos utilisateurs.1. Signaler la dépréciation dans le code
2. Documenter le guide de migration
DansUPGRADE.md ou une page dédiée, décrivez pas à pas les changements que vous demandez aux utilisateurs.
3. Laisser des notes de migration entre versions majeures
Lors d’une montée de MAJOR, liez mutuellement la sectionRemoved du CHANGELOG et le guide de migration. Les utilisateurs peuvent alors suivre en une seule fois « ce qui a été supprimé » et « comment corriger ».
Pages associées
Développement de packages Laravel
Passez en revue les fondations de l’implémentation autour du service provider.
Gestion de la compatibilité de versions de package
Structurez vos critères de décision autour de la compatibilité Laravel/PHP et l’usage de SemVer.
Tester des packages Laravel avec Orchestra Testbench
Passez en revue la stratégie de test nécessaire avant chaque release et son implémentation.