Changelog, dépréciations et migrations
Le CHANGELOG.md du plugin est un contrat opérationnel de release, pas seulement une liste de fonctionnalités.
Entrée de release obligatoire
Chaque version publiée doit indiquer :
- les ajouts/corrections utiles aux opérateurs et intégrateurs ;
- la compatibilité PHP/Sylius/Sylius InvoicingPlugin ;
- Breaking changes —
Noneou la liste explicite ; - Manual actions —
Noneou les étapes opérateur exactes ; - Migration compatibility —
rolling-compatibleoumaintenance required; - les notes de rollback lorsque la compatibilité rolling ne suffit pas ;
- les limitations connues lorsqu’elles affectent une adoption sûre.
Dépréciations
Une entrée de dépréciation doit identifier :
- le contrat déprécié ;
- son remplacement supporté ;
- l’horizon de suppression lorsqu’il est connu ;
- la migration/action que les intégrateurs peuvent réaliser avant suppression.
Un point d’extension documenté ne doit pas disparaître silencieusement.
Migrations Doctrine
Les migrations de schéma sont des migrations forward par défaut. Elles doivent préserver l’historique fiscal/de conformité et être conçues selon la compatibilité de rollout déclarée par la release.
Une migration nécessitant une fenêtre de maintenance ou une transformation de données doit être accompagnée d’instructions de release exactes. Une migration Doctrine down n’est pas une stratégie de rollback automatique pour des données fiscales de production.
Changements de compatibilité
Modifier les contraintes package est significatif pour une release même sans changement de code applicatif. Une évolution de plage supportée doit mettre à jour :
- le
composer.jsondu plugin ; - la matrice CI/clean-install ;
- la section compatibilité du changelog ;
- la documentation publique de compatibilité.
Gate de publication
Avant de publier une version/un tag, l’entrée de release doit être finalisée et les gates release, tag et clean-install externe doivent être verts. Aucun tag ne doit être promu avec des informations de rupture ou migration encore provisoires.