semantic versioning 2.0.0 을 기준으로
버전을 주.부.수 숫자로 하고
- 기존 버전과 호환되지 않게 API가 바뀌면 주 버전을 올리고,
- 기존 버전과 호환되면서 새로운 기능을 추가할 때는 부 버전을 올리고,
- 기존 버전과 호환되면서 버그를 수정한 것이라면 수 버전을 올린다.
semantic versioning sepecification
1. software는 반드시 공개 API를 선언(방식은 코드 or 문서)
2. 버전 번호는 반드시 X.Y.Z(각각 자연수), 절대로 0이 앞에 부어서는 안된다.
- X : 주버전 번호, Y : 부버전 번호 , Z: 수버전 번호
- 각각은 반드시 증가하는 수
3. 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야 하고,
변경시에는 새로운 버전으로 배포
4. 주버전 0 (0.y.z)은 초기 개발을 위해 쓴다.
5. 1.0.0 버전은 공개 API를 정의
6. 수버전 Z(x.y.Z, x>0)는 그전 버전 API와 호환되는 버그 수정의 경우에만 올린다.
- 버그 수정 : 잘못된 내부 기능을 고치는 것
7. 공개 API에 기존과 호환되는 새로운 기능을 추가할 때는 반드시 부버전 Y(x.Y.z, x>0)를 올린다.
- 공개 API의 일부를 제거할 것이라 표시한 경우도 올린다
- 내부 비공개 코드에 새로운 기능이 대폭 추가되거나 개선사항이 있을 때도 올릴 수 있다.
- 부버전이 올라가면 수버전은 반드시 0에서 다시 시작한다.
8. 공개 API에 기존과 호환되지 않는 변화가 있을 때는 반드시 주버전 X(X.y.z, X>0)을 올린다.
- 주버전을 올릴 때는 반드시 부버전과 수버전을 0으로 초기화한다.
9. 수버전 바로 뒤에 붙임표(-)를 붙이고 마침표(.)로 구분과 식별자를 더해서 정식 배포를 앞둔 (pre-release)버전을 표기할 수 있다.
- 식별자는 반드시 아스키(ASCII) 문자, 숫자 ,붙임표로만 구성한다.
- 식별자는 반드시 한 글자 이상으로 한다.
- 숫자 식별자의 경우 절대 앞에 0을 붙인 숫자로 표기하지 않는다.
10. 빌드 메타데이터는 수버전이나 정식배포 전 식별자 뒤에 더하기(+)기호를 붙인 뒤에 마침표로 구분된 식별자를 덧붙여서 표현할 수 있다.
- 빌드 메타데이터만 다른 두 버전의 우선순위는 같다
11. 우선순위는 반드시 주,부,수 버전, 그리고 정식배포 전 버전의 식별자를 나누어 계산하도록 한다.
FAQ
- 초기 개발 단계에 0.y.z버전관리는 최초 개발 배포를 0.1.0으로 하고 배포마다 부 버전을 올리는 것
- 1.0.0은 실 서비스에 쓰이기 시작할 때 배포
'개발 > cs' 카테고리의 다른 글
CS-Q&A 1번~10번 (0) | 2022.09.30 |
---|---|
SSH 란?(feat. 원격접속) (0) | 2019.10.24 |
sw 개발 원칙 (0) | 2019.10.21 |
댓글