원문: https://github.com/facebook/astryx/wiki/Release-Process · 번역 기준: 2026-09-03

상태: Active. 모든 패키지는 @astryxdesign/* scope 아래 공개 npm(npmjs.com)에 동일한 버전으로 출시됩니다. 배포(publishing)는 전용 Release workflow(release.yml)에 있으며 npm **trusted publishing (OIDC)**을 사용합니다 — 어디에도 NPM_TOKEN은 없습니다. Stable(latest) 배포는 수동 온디맨드 단계입니다: version-bump PR을 머지해도 배포되지 않습니다 — 그 다음 release.yml을 dispatch하여 올라간 버전들을 배포합니다. canary만 자동으로 배포됩니다(main에 push할 때마다). 현재 배포된 baseline: @astryxdesign/[email protected].

개요

Astryx는 명확한 호환성을 위해 모든 패키지를 동일한 버전 번호로 릴리스합니다. 릴리스 프로세스:

  1. release gate 통과 확인 — 그날의 visual + a11y 판정을 읽습니다; 깨진 gate는 릴리스 cut을 막습니다
  2. 변경 누적 — PR이 changeset과 함께 main에 안착합니다
  3. codemod 식별 — breaking change에는 AST 기반 codemod가 붙습니다
  4. 버전 bumppnpm version-packages로 changeset을 적용하고, lockfile을 갱신하고, PR을 만듭니다
  5. 머지, 그 다음 배포 — version-bump PR을 머지하고(버전이 올라갈 뿐 배포는 안 됩니다), 그 다음 Release workflow를 dispatch하여 올라간 버전들을 공개 npm에 배포합니다(토큰 없는 OIDC)
  6. 릴리스 후 — 태그, GitHub Release 생성, agent 문서 업데이트, 내부 sync, 공지

패키지

private이 아닌 모든 패키지는 동일한 버전으로 함께 배포됩니다(Changesets fixed 그룹). 배포 가능한 10개 패키지 전부가 @astryxdesign/* scope를 공유하며 공개 npm에 배포됩니다:

패키지 내용
@astryxdesign/core 컴포넌트, hook, 유틸리티, token, CSS
@astryxdesign/cli CLI 명령: init, swizzle, upgrade, component, docs, template
@astryxdesign/build 공유 StyleX 빌드 플러그인 (Babel, PostCSS, Vite, Next)
@astryxdesign/theme-neutral 기본 theme (core와 함께 제공)
@astryxdesign/theme-butter · theme-chocolate · theme-gothic · theme-matcha · theme-stone · theme-y2k 추가로 배포되는 theme들

@astryxdesign/lab@astryxdesign/vega, 그리고 apps/internal 패키지들은 private이며 절대 배포되지 않습니다. @astryxdesign/storybook@astryxdesign/sandbox는 changesets ignore 목록에 있습니다. (진실의 원천: .changeset/config.jsonfixed 배열.)

규칙: 모든 패키지는 같은 버전으로 bump됩니다. 이는 fixed 그룹으로 강제됩니다 — 단일 changeset이 배포 가능한 모든 패키지를 함께 bump하므로, @astryxdesign/[email protected]을 쓰고 있다면 @astryxdesign/[email protected]을 씁니다.


Step 0: Release Gate

release-gate.yml은 매일 07:10 PT, cut 50분 전에 실행되며, version bump가 머지되기 전에 릴리스가 반드시 읽어야 할 판정을 발행합니다: