본문 바로가기
개발/cs

semantic versioning

by deokkk 2019. 10. 22.
반응형

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

댓글