Semantic versioning
일반적인 규칙
- 버전 번호는 Major, Minor, Patch 의 형태로 배포하고, Major, Minor, Patch 는 각각 자연수이고 절대 앞에 0이 붙어서는 안된다.
- 각 번호의 수는 항상 증가해야 한다.
- 특정 버전으로 패키지를 배포하고 나면, 그 버전의 내용은 절대 변경하지 말아야한다. 변경분이 있다면 반드시 새로운 버전으로 배포하도록 한다.
- Major 버전이 변경될 때, Minor, Patch 는 0으로 초기화 된다.
- Minor 버전이 변경될 때, Patch 는 0으로 초기화 된다.
Major 버전 증가
- 하위 버전과 호환되지 않는 변화가 생겼을 때
- 대대적인 변화가 일어났을 때
- 클라이언트가 1.0.0 버전의 API 접근 방식으로 2.0.0 버전에 접속할 수 없을 때
Minor 버전 증가
- 하위 버전과 호환이 되면서, 새로운 기능이 추가 될 때
- 새로운 기능이 추가된 API 가 나왔지만, 기존의 공개된 API 가 하위 호환되고 있을 때
- 기존의 기능이 변경되거나 사용 방법이 변경 되었을 때
Patch 버전 증가
- 버그 수정
- 기존 클라이언트가 알아차리지 못할 정도의 작은 변화가 있을 때
- 서버 코드 내부적으로 소스가 수정되었을 때
- 당연한 얘기겠지만, 이 모든 것들이 하위 버전과 호환될 때
버전의 범위
- 틸드(~) : 현재 지정한 버전의 마지막 자리 내의 범위에서만 자동으로 업데이트한다
- ~0.0.1 : >=0.0.1 <0.1.0
- ~0.1.1 : >=0.1.1 <0.2.0
- ~0.1 : >=0.1.0 <0.2.0
- ~0 : >=0.0 <1.0
- 캐럿(^)
- 하위호환성이 보장
- ^1.0.2 : >=1.0.2 <2.0
- ^1.0 : >=1.0.0 <2.0
- ^1 : >=1.0.0 <2.0
- 단 버전이 1.0.0 이하인경우 틸드와 같이 동작
- ^0.1.2 : >=0.1.2 <0.2.0 --> ~0.1.2
- ^0.1 : >=0.1.0 <0.2.0 --> ~0.1
- ^0 : >=0.0.0 <1.0.0 --> ~0
- ^0.0.1 : ==0.0.1
참고: https://blog.outsider.ne.kr/1041
https://kiwinam.com/posts/33/version-naming/
'개발' 카테고리의 다른 글
VS Code에서 ESlint와 Prettier 함께 사용하기 (0) | 2020.12.30 |
---|---|
SVN 프로젝트 추가 (0) | 2019.01.22 |