한국어
기여하기
릴리스

릴리스

릴리스는 Changesets (opens in a new tab)로 자동화되어 있습니다. 노트북에서 직접 배포하는 사람은 없습니다.

파이프라인

PR이 main에 머지됨
      │
      ▼
release.yml 실행
      │
      ├─ 대기 중인 changeset이 있는가?
      │      │
      │      ├─ 예 → "Version Packages" PR 생성/갱신
      │      │        (버전 범프, CHANGELOG 작성)
      │      │
      │      └─ 그 PR이 머지됨 → pnpm changeset publish → npm
      │
      └─ changeset 없음 → 아무 일도 없음

워크플로

ci.yml

main에 대한 모든 푸시와 PR에서 실행됩니다.

- pnpm install --frozen-lockfile
- pnpm -r build

Node 20, pnpm 9. 이것이 관문입니다 — 어디든 타입 오류가 있으면 실패합니다.

release.yml

main 푸시와 수동 실행에서 동작합니다. Node 24, pnpm 9. changesets/action@v1을 publish: pnpm changeset publish와 함께 씁니다.

권한: contents: write, id-token: write, pull-requests: write. 동시성 키가 워크플로 + ref라 겹치는 실행은 취소됩니다.

changeset 설정

{
  "changelog": "@changesets/cli/changelog",
  "commit": false,
  "access": "public",
  "baseBranch": "main",
  "updateInternalDependencies": "patch"
}

updateInternalDependencies: "patch"가 중요합니다. @mirage-engine/painter를 올리면 이를 의존하는 @mirage-engine/core와 mirage-engine이 자동으로 패치 범프됩니다. 트리 깊은 곳의 수정 하나가 알아서 바깥으로 전파됩니다.

access: "public"은 필수입니다 — 스코프 패키지는 npm에서 기본이 restricted 입니다.

changeset 작성

pnpm changeset

요약은 그대로 changelog에 실리므로 사용자를 위해 쓰세요.

---
"@mirage-engine/core": minor
"mirage-engine": minor
---
 
Add `canvasSize` option to control whether the overlay canvas is allocated at
viewport size or full document height.

좋은 요약은 옵션이나 동작의 이름을 밝히고 무엇을 하는지 말합니다. "버그 수정", "로직 업데이트" 같은 건 피하세요.

changeset 하나로 여러 패키지를 올릴 수 있습니다. core와 painter에 걸친 변경이라면 둘 다 고르세요 — 한쪽만 올리면 아직 배포되지 않은 painter에 의존하는 core 버전이 나갑니다.

버전 정책

범프의미
patch버그 수정, API 변경 없음
minor추가: 새 옵션, 속성, export
major파괴적: 제거, 이름 변경, 기본값 변경

@mirage-engine/painter(1.x)를 빼면 모두 1.0 이전입니다. changeset 설정의 fixed와 linked가 모두 비어 있어 패키지별로 독립적으로 버저닝됩니다.

수동 릴리스

자동화가 망가졌을 때만.

대기 중인 changeset 적용

pnpm changeset version

package.json 버전을 올리고 CHANGELOG.md를 갱신합니다.

빌드

pnpm -r build

배포

pnpm changeset publish

npm에 아직 없는 버전의 패키지만 배포하고 git 태그를 만듭니다.

태그 푸시

git push --follow-tags
⚠️

packages/mirage-engine에는 재빌드하는 prepublishOnly 훅이 있습니다. 나머지 패키지는 오래된 dist가 배포될 수 있으니 항상 pnpm -r build를 먼저 실행하세요.

문서 배포

apps/docs는 Vercel의 Next.js 앱이며, npm 릴리스와 무관하게 main 푸시마다 배포됩니다. 문서 수정은 버전 범프 없이 나갑니다.

릴리스 체크리스트

  • 로컬에서 pnpm -r build 통과
  • 영향받는 모든 패키지를 포함한 changeset 추가
  • 파괴적 변경은 major로 표시하고 요약에 설명
  • API 변경이라면 두 로케일 모두 문서 갱신
  • apps/dev 샌드박스가 여전히 실행됨
  • 공개 API가 바뀌었다면 루트 README.md 갱신

Mirage Engine — MIT 라이선스 © 2026 dltldn333