Implementing Changeset Version Management: Claude Code 활용 가이드
implement Changeset-based version management and automatic CHANGELOG generation: Claude Code 활용. Covers monorepo support, CI integration, and release flow design.
Changesetで体系的なバージョン관리を実現する
Changesetは、패키지のバージョン관리とCHANGELOG생성を자동화するツールです。특히モノレポ環境で威力を発揮し、패키지間の依存関係を考慮した一貫性のある릴리스フローを구축할 수 있습니다。Claude Code는 설정からCI연동まで的確にサポートします。
初期セットアップ
Claude Code에セットアップを依頼합시다。
> Changesetをモノレポ프로젝트に도입して。
> GitHub Actionsでの自動릴리스、CHANGELOG생성を含めて。
# インストール
npm install -D @changesets/cli @changesets/changelog-github
# 初期化
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
}
}
Changesetの생성
변경内容を記述するChangeset파일の생성方法です。
# インタラクティブにChangesetを作成
npx changeset
<!-- .changeset/happy-dogs-fly.md -->
---
"@myapp/ui": minor
"@myapp/utils": patch
---
ボタンコンポーネントにバリアント「outline」を追加しました。
ユーティリティ関数の型定義を改善しました。
Claude Code에Changeset생성を依頼するプロンプト例です。
> 今回の변경に対するChangeset를 생성해줘。
> @myapp/uiにminorバージョンの변경、説明文も書いて。
npm scriptsの설정
// package.json
{
"scripts": {
"changeset": "changeset",
"changeset:status": "changeset status",
"version": "changeset version",
"release": "changeset publish",
"prerelease": "npm run build"
}
}
GitHub Actionsでの自動릴리스
PRマージ時に自動でバージョンアップPRを생성し、マージ後にnpmへ公開する워크플로우です。
# .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: バージョンアップ"
commit: "chore: バージョンアップ"
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
モノレポでの高度な설정
패키지間の연동を관리する설정パターンです。
// .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 - 常に同じバージョンになる패키지グループ
- linked - バージョンが連動して上がる패키지グループ
プレ릴리스の관리
ベータ版やRC版の릴리스フローです。
# プレリリースモードに入る
npx changeset pre enter beta
# Changesetを追加
npx changeset
# プレリリースバージョンを適用
npx changeset version
# => 1.0.0 -> 1.1.0-beta.0
# 公開
npx changeset publish
# プレリリースモードを終了
npx changeset pre exit
Changesetの유효성 검사
PRにChangesetが含まれているかをCIでチェックする워크플로우です。
# .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
カスタムCHANGELOGフォーマット
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;
정리
Changesetは体系的なバージョン관리と릴리스フローを자동화するための強力なツールです。Claude Codeを활용すれば、初期설정からCI연동、モノレポ대응まで효율적으로구축가능합니다。
モノレポの관리手法はモノレポ관리가이드を、CI/CD파이프라인の설계はCI/CDセットアップ가이드를 참고하세요.Changesets공식 문서도 확인해 두세요.
Claude Code 워크플로우를 한 단계 업그레이드하세요
지금 바로 Claude Code에 복사해 쓸 수 있는 검증된 프롬프트 템플릿 50선.
이 글을 작성한 사람
Masa
Claude Code를 적극 활용하는 엔지니어. 10개 언어, 2,000페이지 이상의 테크 미디어 claudecode-lab.com을 운영 중.
관련 글
Claude Code Agent SDK 입문 ― 자율 에이전트를 빠르게 구축하는 방법
Claude Code Agent SDK로 자율형 AI 에이전트를 구축하는 방법을 해설합니다. 설정부터 도구 정의, 멀티스텝 실행까지 실전 코드와 함께 소개합니다.
Claude Code 컨텍스트 관리 테크닉 완전 가이드
Claude Code의 컨텍스트 윈도우를 최대한 활용하는 실전 테크닉을 해설합니다. 토큰 절약, 대화 분할, CLAUDE.md 활용법까지 소개합니다.
Claude Code MCP Server 설정 및 실전 활용 가이드
Claude Code의 MCP Server 기능을 종합적으로 소개합니다. 외부 도구 연결, 서버 설정, 실전 통합 사례까지 한 번에 알아보세요.