이 프로젝트는 Changesets를 사용하여 모노레포의 버전 관리와 릴리즈를 자동화합니다.
변경사항이 있는 패키지에 대해 changeset을 생성합니다:
pnpm changeset이 명령어를 실행하면:
- 변경된 패키지 목록이 표시됩니다
- 변경사항 유형을 선택합니다 (major/minor/patch)
- 변경사항 설명을 작성합니다
changeset을 적용하여 버전을 업데이트합니다:
pnpm version이 명령어는:
- CHANGELOG.md 파일을 생성/업데이트
- package.json의 버전을 업데이트
- 의존성 버전을 자동으로 업데이트
패키지를 빌드하고 배포합니다:
pnpm release# changeset 생성 (대화형)
pnpm changeset
# 버전 업데이트
pnpm version
# 릴리즈 (빌드 + 배포)
pnpm release
# 모든 패키지 빌드
pnpm build
# 모든 패키지 테스트
pnpm test
# 모든 패키지 린트
pnpm lint{
"access": "public", // 패키지 접근 권한
"baseBranch": "main", // 기본 브랜치
"updateInternalDependencies": "patch", // 내부 의존성 업데이트 방식
"ignore": [
// 무시할 패키지들
"services/*",
"temp/*",
"shared/*"
]
}@hyunjin/http-client@hyunjin/babel-plugin-react-compiler@hyunjin/query-core- 기타 packages/ 디렉토리의 패키지들
@hyunjin/eslint-config@hyunjin/typescript-config
- 블로그, API 서버 등은 릴리즈 대상에서 제외
-
기능 개발
# 패키지 개발 cd packages/http-client pnpm dev
-
변경사항 기록
# 루트에서 실행 pnpm changeset -
커밋
git add . git commit -m "feat: add new feature to http-client"
-
버전 업데이트
pnpm version
-
테스트 및 빌드
pnpm test pnpm build -
릴리즈
pnpm release
- major: 호환되지 않는 API 변경
- minor: 새로운 기능 추가 (하위 호환)
- patch: 버그 수정 (하위 호환)
---
'@hyunjin/http-client': patch
'@hyunjin/query-core': minor
---
http-client: Fix retry logic for network errors
query-core: Add new utility function for data transformation-
서비스는 릴리즈하지 않음:
services/디렉토리의 프로젝트들은 릴리즈 대상에서 제외됩니다. -
의존성 관리: 패키지 간 의존성이 변경되면 자동으로 버전이 업데이트됩니다.
-
CHANGELOG: 모든 변경사항은 자동으로 CHANGELOG.md에 기록됩니다.
-
Git 태그: 릴리즈 시 자동으로 Git 태그가 생성됩니다.