2.3 KiB
2.3 KiB
| name | version | description |
|---|---|---|
| version-bump | 1.0.0 | 프로젝트의 버전 정보를 업데이트한다. "버전 올려줘", "버전 변경" 요청 시 사용한다. |
version-bump
목적
프로젝트의 버전 정보를 관리하며, 요청에 따라 버전을 올리거나 지정된 값으로 변경한다.
언제 호출할지
- "버전 올려줘", "버전 변경해줘" 요청 시
- 릴리스 준비 시 버전 업데이트가 필요할 때
- patch, minor, major 버전 변경 요청 시
입력
version-type: patch / minor / major 중 하나 (선택, 기본값: patch)version-value: 직접 지정할 버전 값 (선택, version-type과 배타적)
먼저 확인할 것
- 버전 관리 파일(빌드 설정 또는 패키지 파일)이 프로젝트에 존재하는가
- 현재 버전 값을 읽을 수 있는가
실행 절차
- 현재 버전 정보를 읽는다
- 사용자에게 변경할 버전을 확인한다
- 인자 없으면: patch 버전 +1
- 인자 있으면: 지정된 값으로 변경
- 버전 파일의 해당 값을 수정
- 변경 결과를 출력
버전 규칙
형식
major.minor.patch (예: 1.0.0)
각 자리 제약
| 자리 | 최대값 | 제약 |
|---|---|---|
| major | 제한 없음 | 자유롭게 증가 |
| minor | 999 | 0~999 범위 |
| patch | 999 | 0~999 범위 |
올림(carry) 규칙
버전을 +1 할 때 해당 자리가 999이면 상위 자리를 올리고 현재 자리를 0으로 초기화한다.
patch +1 시:
patch < 999 → patch + 1
patch = 999 → minor + 1, patch = 0
(minor도 999이면 → major + 1, minor = 0, patch = 0)
예시:
1.0.998 → 1.0.999
1.0.999 → 1.1.0
1.999.999 → 2.0.0
출력 형식
버전 업데이트 완료:
- 이전: 1.0.0
- 이후: 1.0.1
실행 결과 검증
- 버전 파일을 다시 읽어 변경된 버전 값이 의도한 값과 일치하는가
- 버전 형식이
major.minor.patch규칙을 준수하는가 (minor, patch가 0~999 범위) - 검증 실패 시: 변경 전 버전과 현재 값을 사용자에게 보여주고 수동 확인을 요청한다
금지 사항
- 사용자 확인 없이 버전을 변경하지 않는다
- 버전 형식(
major.minor.patch)을 벗어나는 값으로 변경하지 않는다 - minor, patch 값을 999 초과로 설정하지 않는다