Changelog obligatoire sur bump de dependance¶
Des qu'un package.json contient une modification de version d'une dependance (entree de dependencies, devDependencies, peerDependencies ou optionalDependencies), la description de la PR DOIT inclure une section ## Changelog qui decrit les changements de la lib upstream et leur impact sur le code du monorepo.
Cette rule ne concerne pas le champ "version" de nos propres packages (on ne versionne pas les workspaces en interne).
DO¶
- Ajouter une section
## Changelogdans la description de PR pour chaque dependance bumpee - Format :
### <nom-de-la-lib> @ <ancienne-version> → <nouvelle-version>puis une liste- <type>: <description>(feat:,fix:,perf:,chore:,breaking:) - Resumer les changements upstream en se basant sur le CHANGELOG / les release notes de la lib, pas juste "bump"
- Mentionner explicitement les breaking changes et ce qui a du etre adapte dans le monorepo (fichiers / modules touches)
- Si plusieurs libs sont bumpees dans la meme PR, une section
###par lib - Quand tu crees / mets a jour une PR (
gh pr create/gh pr edit) et que le diff touchedependencies/devDependencies/peerDependenciesd'unpackage.json, generer la section## Changelogautomatiquement
DO NOT¶
- DO NOT bumper une dependance sans decrire l'impact dans la description de PR
- DO NOT se contenter de "bump zod" ou "update deps" comme description
- DO NOT oublier de flaguer un breaking change quand le major de la lib est incremente
- DO NOT appliquer cette rule aux changements du champ
"version"d'un de nos packages workspace
Exemple¶
## Summary
Bump Zod de 3.23.8 vers 4.0.0 pour profiter des nouvelles API et du parsing plus rapide.
## Changelog
### zod @ 3.23.8 → 4.0.0
- feat: nouveau `z.iso.datetime()` utilise dans `api-communication/schemas/date.ts`
- feat: `z.discriminatedUnion` accepte maintenant des unions imbriquees — simplifie `FundingEvent` schema
- perf: parsing ~2x plus rapide sur les gros payloads (benchmarks a l'appui sur `/funding` endpoints)
- breaking: `z.string().email()` remplace par `z.email()` — migration effectuee dans `projects/api/src/__new/modules/**`
- breaking: `.refine()` ne passe plus le `ctx` en 2e argument — utiliser `z.superRefine()` la ou necessaire
Verification avant push¶
Avant gh pr create / gh pr edit, si git diff <base>..HEAD -- '**/package.json' contient une modification qui va au-dela du simple champ racine "version" (bump / ajout / retrait de dependance, changement de scripts, d'engines, etc.), verifier que la description contient bien ## Changelog. Sinon, l'ajouter avant de creer / mettre a jour la PR.