Changeset-Versionsverwaltung mit Claude Code implementieren
Erfahren Sie, wie Sie Changeset-basierte Versionsverwaltung und automatische CHANGELOG-Generierung mit Claude Code umsetzen. Einschließlich Monorepo-Unterstützung, CI-Integration und Release-Flow-Design.
Systematische Versionsverwaltung mit Changeset
Changeset ist ein Tool zur Automatisierung der Paketversionierung und CHANGELOG-Generierung. Es ist besonders in Monorepo-Umgebungen leistungsstark und ermöglicht einen konsistenten Release-Flow unter Berücksichtigung der Abhängigkeiten zwischen Paketen. Claude Code unterstützt zuverlässig von der Konfiguration bis zur CI-Integration.
Ersteinrichtung
Beauftragen Sie Claude Code mit dem Setup.
> Führe Changeset in das Monorepo-Projekt ein.
> Einschließlich automatischem Release über GitHub Actions und CHANGELOG-Generierung.
# Installation
npm install -D @changesets/cli @changesets/changelog-github
# Initialisierung
npx changeset init
// .changeset/config.json
{
"$schema": "https://unpkg.com/@changesets/[email protected]/schema.json",
"changelog": [
"@changesets/changelog-github",
{ "repo": "your-org/your-repo" }
],
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": [],
"___experimentalUnsafeOptions_WILL_CHANGE_IN_PATCH": {
"onlyUpdatePeerDependentsWhenOutOfRange": true
}
}
Changeset erstellen
So erstellen Sie eine Changeset-Datei, die die Änderungen beschreibt.
# Changeset interaktiv erstellen
npx changeset
<!-- .changeset/happy-dogs-fly.md -->
---
"@myapp/ui": minor
"@myapp/utils": patch
---
Variante „outline" zur Button-Komponente hinzugefügt.
Typdefinitionen der Utility-Funktionen verbessert.
Beispiel-Prompt für die Changeset-Erstellung mit Claude Code.
> Erstelle ein Changeset für die aktuellen Änderungen.
> Minor-Version-Änderung für @myapp/ui, mit Beschreibung.
npm Scripts konfigurieren
// package.json
{
"scripts": {
"changeset": "changeset",
"changeset:status": "changeset status",
"version": "changeset version",
"release": "changeset publish",
"prerelease": "npm run build"
}
}
Automatisches Release mit GitHub Actions
Ein Workflow, der beim Merge eines PR automatisch einen Versionsupdate-PR erstellt und nach dem Merge auf npm veröffentlicht.
# .github/workflows/release.yml
name: Release
on:
push:
branches: [main]
concurrency: ${{ github.workflow }}-${{ github.ref }}
permissions:
contents: write
pull-requests: write
packages: write
jobs:
release:
name: Release
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: 20
registry-url: "https://registry.npmjs.org"
- run: npm ci
- run: npm run build
- name: Create Release Pull Request or Publish
id: changesets
uses: changesets/action@v1
with:
version: npm run version
publish: npm run release
title: "chore: Versionsupdate"
commit: "chore: Versionsupdate"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Erweiterte Konfiguration für Monorepos
Konfigurationsmuster zur Verwaltung der Verknüpfungen zwischen Paketen.
// .changeset/config.json
{
"changelog": [
"@changesets/changelog-github",
{ "repo": "your-org/your-repo" }
],
"commit": false,
"fixed": [
["@myapp/core", "@myapp/cli"]
],
"linked": [
["@myapp/ui", "@myapp/theme"]
],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch"
}
- fixed - Paketgruppe, die immer die gleiche Version hat
- linked - Paketgruppe, deren Versionen gekoppelt ansteigen
Pre-Release-Verwaltung
Release-Flow für Beta- und RC-Versionen.
# Pre-Release-Modus aktivieren
npx changeset pre enter beta
# Changeset hinzufügen
npx changeset
# Pre-Release-Version anwenden
npx changeset version
# => 1.0.0 -> 1.1.0-beta.0
# Veröffentlichen
npx changeset publish
# Pre-Release-Modus beenden
npx changeset pre exit
Changeset-Validierung
Ein Workflow, der in der CI prüft, ob ein PR ein Changeset enthält.
# .github/workflows/changeset-check.yml
name: Changeset Check
on:
pull_request:
branches: [main]
jobs:
changeset-check:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: actions/setup-node@v4
with:
node-version: 20
- run: npm ci
- name: Check for changeset
run: npx changeset status --since=origin/main
Benutzerdefiniertes CHANGELOG-Format
Muster zur Anpassung der CHANGELOG-Ausgabe.
// .changeset/changelog-config.ts
import type { ChangelogFunctions } from "@changesets/types";
const changelogFunctions: ChangelogFunctions = {
getDependencyReleaseLine: async () => "",
getReleaseLine: async (changeset, type) => {
const [firstLine, ...rest] = changeset.summary
.split("\n")
.map((l) => l.trimEnd());
const date = new Date().toISOString().slice(0, 10);
let returnVal = `- ${firstLine}`;
if (rest.length > 0) {
returnVal += `\n${rest.map((l) => ` ${l}`).join("\n")}`;
}
return returnVal;
},
};
export default changelogFunctions;
Zusammenfassung
Changeset ist ein leistungsstarkes Tool zur Automatisierung systematischer Versionsverwaltung und Release-Flows. Mit Claude Code können Sie effizient von der Erstkonfiguration über CI-Integration bis zur Monorepo-Unterstützung alles aufbauen.
Zur Monorepo-Verwaltung siehe den Monorepo-Verwaltungsleitfaden, zum CI/CD-Pipeline-Design den CI/CD-Setup-Leitfaden. Sehen Sie sich auch die offizielle Changesets-Dokumentation an.
Related Posts
Claude Code Hooks meistern: Auto-Formatierung, Auto-Tests und mehr
Erfahren Sie, wie Sie Auto-Formatierung und Auto-Tests mit Claude Code Hooks einrichten. Inklusive praktischer Konfigurationsbeispiele und realer Anwendungsfälle.
Claude Code MCP-Server: Einrichtung und praktische Anwendungsfälle
Ein umfassender Leitfaden zu den MCP-Server-Funktionen von Claude Code. Erfahren Sie, wie Sie externe Tools anbinden, Server konfigurieren, und entdecken Sie praxisnahe Integrationsbeispiele.
Der komplette Leitfaden zum Schreiben von CLAUDE.md: Best Practices für die Projektkonfiguration
Ein umfassender Leitfaden zum Schreiben effektiver CLAUDE.md-Dateien. Erfahren Sie, wie Sie Ihren Tech-Stack, Konventionen und Projektstruktur kommunizieren, um die Ausgabequalität von Claude Code zu maximieren.