Mengimplementasikan Manajemen Versi Changeset dengan Claude Code
Pelajari cara mengimplementasikan manajemen versi berbasis Changeset dan pembuatan CHANGELOG otomatis dengan Claude Code. Mencakup dukungan monorepo, integrasi CI, dan desain alur rilis.
Mewujudkan Manajemen Versi Sistematis dengan Changeset
Changeset adalah tool untuk mengotomatisasi manajemen versi package dan pembuatan CHANGELOG. Sangat powerful terutama di lingkungan monorepo, memungkinkan pembangunan alur rilis yang konsisten dengan mempertimbangkan dependensi antar package. Claude Code mendukung secara akurat dari setup hingga integrasi CI.
Setup Awal
Minta Claude Code untuk setup.
> Perkenalkan Changeset ke project monorepo.
> Sertakan rilis otomatis dengan GitHub Actions dan pembuatan CHANGELOG.
# Install
npm install -D @changesets/cli @changesets/changelog-github
# Inisialisasi
npx changeset init
// .changeset/config.json
{
"$schema": "https://unpkg.com/@changesets/config@3.0.0/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
}
}
Membuat Changeset
Cara membuat file Changeset yang mendeskripsikan perubahan.
# Buat Changeset secara interaktif
npx changeset
<!-- .changeset/happy-dogs-fly.md -->
---
"@myapp/ui": minor
"@myapp/utils": patch
---
Menambahkan varian "outline" ke component button.
Meningkatkan definisi tipe fungsi utility.
Contoh prompt untuk meminta Claude Code membuat Changeset:
> Buat Changeset untuk perubahan kali ini.
> Perubahan versi minor di @myapp/ui, tulis juga deskripsinya.
Konfigurasi npm scripts
// package.json
{
"scripts": {
"changeset": "changeset",
"changeset:status": "changeset status",
"version": "changeset version",
"release": "changeset publish",
"prerelease": "npm run build"
}
}
Rilis Otomatis dengan GitHub Actions
Workflow yang otomatis membuat PR version up saat PR di-merge, dan mempublikasikan ke npm setelah merge.
# .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: version up"
commit: "chore: version up"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
Pengaturan Lanjutan untuk Monorepo
Pola pengaturan untuk mengelola koordinasi antar package.
// .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 - Grup package yang selalu memiliki versi yang sama
- linked - Grup package yang versinya naik secara terkait
Manajemen Pre-release
Alur rilis versi beta dan RC.
# Masuk mode pre-release
npx changeset pre enter beta
# Tambahkan Changeset
npx changeset
# Terapkan versi pre-release
npx changeset version
# => 1.0.0 -> 1.1.0-beta.0
# Publikasikan
npx changeset publish
# Keluar mode pre-release
npx changeset pre exit
Validasi Changeset
Workflow untuk memeriksa di CI apakah Changeset disertakan dalam PR.
# .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
Format CHANGELOG Kustom
Pola untuk menyesuaikan output CHANGELOG.
// .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;
Summary
Changeset adalah tool yang kuat untuk mengotomatisasi manajemen versi sistematis dan alur rilis. Dengan memanfaatkan Claude Code, dari setup awal hingga integrasi CI dan dukungan monorepo bisa dibangun secara efisien.
Untuk metode manajemen monorepo, lihat Panduan Manajemen Monorepo, dan untuk desain pipeline CI/CD, lihat Panduan Setup CI/CD. Periksa juga Dokumentasi Resmi Changesets.
Tingkatkan alur kerja Claude Code kamu
50 template prompt yang sudah teruji, siap copy-paste ke Claude Code sekarang juga.
PDF Gratis: Cheatsheet Claude Code dalam 5 Menit
Perintah penting, pintasan, dan contoh prompt dalam satu halaman siap cetak.
Tentang Penulis
Masa
Engineer yang aktif menggunakan Claude Code. Mengelola claudecode-lab.com, media teknologi 10 bahasa dengan lebih dari 2.000 halaman.
Artikel Terkait
Pengantar Claude Code Agent SDK — Bangun Agen Otonom dengan Cepat
Pelajari cara membangun agen AI otonom dengan Claude Code Agent SDK. Mencakup setup, definisi tool, dan eksekusi multi-langkah dengan contoh kode praktis.
Panduan Lengkap Teknik Manajemen Konteks di Claude Code
Pelajari teknik praktis untuk memaksimalkan context window Claude Code. Mencakup optimasi token, pembagian percakapan, dan penggunaan CLAUDE.md.
Setup MCP Server Claude Code dan Use Case Praktis
Panduan lengkap tentang kemampuan MCP server Claude Code. Pelajari cara menghubungkan tool eksternal, mengonfigurasi server, dan contoh integrasi dunia nyata.