📑 목차
릴리즈 개요 릴리즈 API (POST) 버전 범핑(Bump) 로직 미릴리즈 개선사항 체크리스트 릴리즈 부수 효과 실행 예시

🚀 버전 릴리즈

릴리즈 페이지(/vermanager/release?site=kiam-prod)에서 새 버전을 배포합니다. SemVer 규칙에 따라 MAJOR/MINOR/PATCH 타입을 선택하고, 포함할 개선사항을 지정합니다.

릴리즈 API (api/release.php)

POST /vermanager/api/release
Content-Type: application/json

{
  "site": "kiam-prod",
  "type": "patch",
  "note": "버그 수정 및 성능 개선",
  "improvements": ["imp_4", "imp_5"]
}
필드필수설명
site대상 사이트 ID (기본값: 현재 선택된 사이트)
typemajor / minor / patch
note선택릴리즈 노트 (버전 이력에 기록됨)
improvements선택연결할 개선사항 ID 배열

버전 범핑(Bump) 로직

function bump_version(array $current, string $type): array {
    $next = ['major'=>$current['major'], 'minor'=>$current['minor'], 'patch'=>$current['patch']];
    switch ($type) {
        case 'major': $next['major']++; $next['minor']=0; $next['patch']=0; break;
        case 'minor': $next['minor']++; $next['patch']=0; break;
        case 'patch': $next['patch']++; break;
    }
    $next['raw'] = "{$next['major']}.{$next['minor']}.{$next['patch']}";
    return $next;
}

미릴리즈 개선사항 체크리스트

릴리즈 페이지에는 아직 릴리즈되지 않은(released_in == null) 개선사항들이 체크리스트로 표시됩니다. 체크박스로 포함할 항목을 선택할 수 있습니다.

릴리즈 실행 시 일어나는 일

  1. package.json 업데이트 — version 필드와 lastRelease 타임스탬프 갱신
  2. version_history.json 추가 — 새 릴리즈 항목 기록 (from/to/type/date/note/linked_improvements)
  3. changelog.json 갱신 — 새 버전의 변경사항 그룹 추가
  4. improvements.json 업데이트 — 선택된 개선사항의 released_in 필드를 새 버전으로 설정

실행 예시

// 요청
POST /vermanager/api/release
{"site":"kiam-prod", "type":"patch", "note":"테스트 자동 릴리즈", "improvements":["imp_4","imp_5"]}

// 응답
{
  "ok": true,
  "message": "✅ kiam-prod: 1.0.0 → 1.0.1 (patch)",
  "old_version": "1.0.0",
  "new_version": "1.0.1",
  "history_id": "rel_69f557e96c558"
}