Changeset
Crée des fichiers de changeset pour le monorepo Astro. Les changesets déclarent les packages modifiés, le type de bump semver et un message orienté utilisateur qui devient l'entrée du CHANGELOG.
Chaque PR qui modifie un package nécessite un changeset. Seules les modifications dans examples/* sont exemptées.
Création du fichier
Exécute pnpm changeset --empty depuis la racine du dépôt. Cela crée un fichier .md nommé aléatoirement dans .changeset/ avec un préambule vide — pas besoin d'inventer un nom de fichier ni d'inspecter le répertoire. Modifie ensuite le fichier généré pour ajouter le bump du package et le message.
Format
---
'<nom-du-package>': patch
---
<message du changeset>
- Les noms de package doivent correspondre exactement au champ
namedupackage.jsondu package (ex.'astro','@astrojs/node') - Types de bump :
patch,minoroumajor - Un seul fichier de changeset peut couvrir plusieurs packages
- Les bumps
majoretminorsur le package centralastrosont bloqués par la CI et nécessitent une révision par un mainteneur
Rédaction du message
Le message du changeset est une entrée publique du CHANGELOG. Rédige-le pour les utilisateurs d'Astro, pas pour les relecteurs de code.
Commence par un verbe au présent qui complète la phrase "Cette PR..." :
- Ajoute, Supprime, Corrige, Met à jour, Refactorise, Améliore, Déprécie
Décris le changement tel qu'une personne construisant un site Astro le vivra, et non comment il a été implémenté en interne :
// Trop axé sur l'implémentation
Enregistre des erreurs utiles si le contenu est invalide
// Mieux — impact utilisateur
Ajoute la journalisation des erreurs de configuration des collections de contenu.
Mises à jour patch
Une ligne suffit généralement. Pas de ponctuation finale sauf si tu écris plusieurs phrases.
---
'astro': patch
---
Corrige un bug où l'audit de la barre d'outils signalait incorrectement les images comme étant au-dessus de la ligne de flottaison
---
'astro': patch
---
Refactorise la gestion interne des styles et scripts pour les collections de contenu afin d'améliorer les performances de build
Aide le lecteur à déterminer si le changement le concerne. Inclus le nom de l'API spécifique (avec le formatage par backticks) lorsque le changement est lié à une option ou une fonction reconnaissable. Quand l'API n'est pas orientée utilisateur, décris le cas d'usage ou le résultat final à la place :
// Vague
Améliore la génération des solutions de repli automatiques
// Clair — le lecteur peut voir si cela l'affecte
Améliore la génération automatique des `fallbacks` pour l'API expérimentale Fonts
Nouvelles fonctionnalités (minor)
Commence par "Ajoute", nomme la nouvelle API et décris ce que les utilisateurs peuvent désormais faire. Inclus un exemple de code si utile :
---
'astro': minor
---
Ajoute une nouvelle propriété optionnelle `timeout` pour la directive `client:idle`
Cette valeur vous permet de spécifier un temps d'attente maximal, en millisecondes, avant d'hydrater un composant d'UI framework.
```astro
<Button client:idle={{ timeout: 500 }} />
```
Les nouvelles fonctionnalités sont une occasion de rédiger une description plus riche qui peut alimenter des articles de blog. Voir la documentation des changesets d'Astro pour des conseils sur les entrées plus longues.
Changements cassants (major)
Utilise des verbes comme "Supprime", "Modifie" ou "Déprécie". Doit inclure des instructions de migration. Utilise des exemples de code avec diff lorsque c'est approprié :
---
'astro': major
---
Supprime le support de la propriété `path` pour les langages personnalisés Shiki. Le fichier JSON du langage doit désormais être importé et passé à l'option à la place.
```diff
// astro.config.js
+ import customLang from './custom.tmLanguage.json'
export default defineConfig({
markdown: {
shikiConfig: {
langs: [
- { path: './custom.tmLanguage.json' },
+ customLang,
],
},
},
})
```
Les modifications des valeurs par défaut doivent mentionner l'ancienne valeur par défaut, la nouvelle valeur par défaut et comment restaurer le comportement précédent.
Changesets plus longs
Pour des descriptions plus longues, utilise #### et des titres plus profonds (jamais ## ou ###) pour diviser les sections. Cela rend le CHANGELOG lisible lorsque ton entrée est incorporée :
---
'astro': minor
---
Ajoute une nouvelle API Sessions pour stocker l'état utilisateur entre les requêtes pour les pages rendues à la demande.
#### Configuration du stockage des sessions
<!-- ... -->
#### Utilisation des sessions
<!-- ... -->