Changeset
Erstelle Changeset-Dateien für das Astro-Monorepo. Changesets deklarieren, welche Pakete geändert wurden, den Semver-Bump-Typ und eine benutzerorientierte Nachricht, die als CHANGELOG-Eintrag dient.
Jeder PR, der ein Paket modifiziert, benötigt einen Changeset. Nur Änderungen an examples/* sind ausgenommen.
Erstellen der Datei
Führe pnpm changeset --empty im Stammverzeichnis des Repositorys aus. Dadurch wird eine zufallsbenannte .md-Datei in .changeset/ mit leerem Frontmatter erstellt – kein manuelles Erfinden eines Dateinamens oder Überprüfen des Verzeichnisses erforderlich. Bearbeite dann die generierte Datei, um den Package-Bump und die Nachricht hinzuzufügen.
Format
---
'<package-name>': patch
---
<changeset-nachricht>
- Paketnamen müssen exakt dem
name-Feld in derpackage.jsondes Pakets entsprechen (z.B.'astro','@astrojs/node') - Bump-Typen:
patch,minorodermajor - Eine einzelne Changeset-Datei kann mehrere Pakete abdecken
major- undminor-Bumps des Kernpaketsastrowerden von CI blockiert und benötigen eine Überprüfung durch Maintainer
Verfassen der Nachricht
Die Changeset-Nachricht ist ein öffentlicher CHANGELOG-Eintrag. Schreibe sie für Astro-Nutzer, nicht für Code-Reviewer.
Beginne mit einem Verb im Präsens, das den Satz „Dieser PR …“ vervollständigt:
- Fügt hinzu, Entfernt, Korrigiert, Aktualisiert, Refaktoriert, Verbessert, Markiert als veraltet
Beschreibe die Änderung so, wie jemand, der eine Astro-Seite erstellt, sie erleben wird, nicht wie sie intern implementiert wurde:
// Zu implementierungsfokussiert
Protokolliert hilfreiche Fehler, wenn Inhalt ungültig ist
// Besser – Benutzerauswirkungen
Fügt Protokollierung für Konfigurationsfehler von Inhaltssammlungen hinzu.
Patch-Updates
Eine Zeile reicht normalerweise aus. Keine abschließende Interpunktion erforderlich, es sei denn, es werden mehrere Sätze geschrieben.
---
'astro': patch
---
Korrigiert einen Fehler, bei dem die Toolbar-Prüfung Bilder fälschlicherweise als oberhalb des Falzes markierte
---
'astro': patch
---
Refaktoriert die interne Handhabung von Styles und Skripten für Inhaltssammlungen zur Verbesserung der Build-Leistung
Hilf dem Leser zu erkennen, ob die Änderung für ihn relevant ist. Gib den spezifischen API-Namen (mit Backtick-Formatierung) an, wenn die Änderung an eine erkennbare Option oder Funktion gebunden ist. Wenn die API nicht benutzerseitig ist, beschreibe stattdessen den Anwendungsfall oder das Endergebnis:
// Vage
Verbessert die automatische Fallback-Generierung
// Klar – Leser kann erkennen, ob es ihn betrifft
Verbessert die automatische `fallbacks`-Generierung für die experimentelle Fonts-API
Neue Funktionen (minor)
Beginne mit „Fügt hinzu“, nenne die neue API und beschreibe, was Benutzer jetzt tun können. Füge bei Bedarf ein Codebeispiel hinzu:
---
'astro': minor
---
Fügt eine neue, optionale Eigenschaft `timeout` für die Direktive `client:idle` hinzu
Dieser Wert ermöglicht dir, eine maximale Wartezeit in Millisekunden anzugeben, bevor eine UI-Framework-Komponente hydratisiert wird.
```astro
<Button client:idle={{ timeout: 500 }} />
```
Neue Funktionen bieten die Möglichkeit, eine umfangreichere Beschreibung zu schreiben, die auch in Blogbeiträge einfließen kann. Siehe die Astro Changeset-Dokumentation für Anleitungen zu längeren Einträgen.
Breaking Changes (major)
Verwende Verben wie „Entfernt“, „Ändert“ oder „Markiert als veraltet“. Muss eine Migrationsanleitung enthalten. Verwende bei Bedarf Diff-Codebeispiele:
---
'astro': major
---
Entfernt die Unterstützung für die `path`-Eigenschaft von Shiki-Benutzersprachen. Die JSON-Datei für die Sprache muss nun importiert und stattdessen an die Option übergeben werden.
```diff
// astro.config.js
+ import customLang from './custom.tmLanguage.json'
export default defineConfig({
markdown: {
shikiConfig: {
langs: [
- { path: './custom.tmLanguage.json' },
+ customLang,
],
},
},
})
```
Änderungen an Standardwerten müssen den alten Standard, den neuen Standard und die Wiederherstellung des vorherigen Verhaltens erwähnen.
Längere Changesets
Verwende für längere Beschreibungen #### und tiefere Überschriften (niemals ## oder ###), um Abschnitte zu unterteilen. Dies hält den CHANGELOG lesbar, wenn dein Eintrag eingefügt wird:
---
'astro': minor
---
Fügt eine neue Sessions-API hinzu, um Benutzerzustände zwischen Anfragen für bedarfsgerenderte Seiten zu speichern.
#### Konfiguration der Sitzungsspeicherung
<!-- ... -->
#### Verwenden von Sitzungen
<!-- ... -->