티스토리 뷰

Daylogs/Etc

Semantic Versioning

ohgyun 2013. 1. 23. 15:38


발생일: 2013.01.23

문제:
npm의 인터랙티브 package.json 가이드를 보다보니,
패키지의 버전은 Semantic Versioning 을 따른다 한다.

시맨틱 버저닝이라,.. 요고 뭔가?


해결책:

시맨틱 버저닝(Semantic Versioning)은 소프트웨어의 버전 변경 규칙에 대한 제안이다.

상세 스펙은 http://semver.org/ 에서 확인할 수 있다.


아래는 주요 사항을 간단히 정리한 내용이다.

- 시맨틱 버저닝을 따르는 소프트웨어는 반드시 공개 API를 가지고 있어야 한다.
  이 API는 코드 또는 문서 내에 정의할 수 있으며, 정확하고 포괄적이어야 한다.

- 버전은 X.Y.Z (Major.Minor.Patch) 를 따른다.
     패치 업데이트: API에 영향이 없는 버그 수정
     마이너 업데이트: 하위 버전에 대해서도 호환성을 보장하는 범위의 변경
     메이저 업데이트: 하위 호환성을 보장하지 않는 변경

- 아무리 작은 수정이라도, 새로 배포할 땐 반드시 버전을 업데이트 한다.

- 상위 버전이 올라가면 하위 버전은 0으로 초기화된다. (예: 1.2.3 --> 1.3.0)

- 개발 버전은 0.x.x 형태로 시작한다. 최초 버전이라면 0.1.0으로 시작하면 된다.

- Pre-release 버전은 패치 버전 이후에 하이픈(-)을 추가해 붙이고, Build 버전은 플러스(+)를 추가한다.
   추가되는 정보는 닷(.)으로 구분하고, [0-9A-Za-z-] 형태여야 한다.
   예) 1.0.0-alpha, 1.0.0-alpha.1, 1.0.0+build.1, 1.3.7+build.11

- 우선순위는,
     메이저 > 마이너 > 패치 : 예) 2.0.0 > 1.3.7 > 1.2.13
     일반 > pre-release > build : 예) 1.3.7 > 1.3.7-alpha > 1.3.7+build
     알파벳 > 숫자 : 예) 1.3.7-alpha.b > 1.3.7-alpha.5
   순이다.




덧) 

우리말로 번역해 놓은 아주 좋은 포스트가 있다.

반응형
댓글
공지사항