체계적인 버전관리, SemVer

출처 - http://han41858.tistory.com/22

버전관리에 대한 체계적인 기준을 소개하는 글이 있어서 공유합니다.

SemVer?

SemVer

SemVer는 Semantic Versioning의 줄임말로, 버전 형식에 의미를 부여하여 좀 더 체계적인 버전 관리를 위한 제안입니다. 배포 정책이나 시기에 따라서 버전이 매겨지거나, 의미 없이 버전이 올라가는 것을 지양하며 버저닝에 대한 명확한 의미를 부여합니다.

개발을 하다 보면 외부 라이브러리 의존성을 관리하기가 상당히 머리 아픈데, 버저닝에 대해 체계적인 기준이 있다면 버전만 보고서도 도입 여부를 판단하고 변경량을 짐작할 수 있습니다.

Major.Minor.Patch

  • 버전의 형식은 [Major].[Minor].[Patch] 형식으로 한다.
  • 이전 버전과 호환되지 않는 API 변경은 MAJOR 버전 증가
  • 이전 버전과 호환되면서 기능의 변경, 추가된 경우는 MINOR 버전 증가
  • 버그 수정은 PATCH 버전 증가

버전을 보고 변화량을 짐작할 수 있는 체계가 SemVer의 핵심입니다.

버전 형식

  • Major, Minor, Patch 각각의 버전은 자연수로 증가하고, 0이 앞에 붙어서는 안된다. 1.11.0과 같은 형식도 가능
  • API가 이전 버전과 호환되지 않게 변경된 경우에는 반드시 Major 버전을 올린다. 이 때 Minor 버전과 Patch 버전은 0으로 초기화한다.
  • Patch 버전 뒤에 하이픈(-)을 붙이고 마침표(.)로 구별된 식별자를 붙여 배포 전의 버전을 명명할 수 있다. 1.0.0-alpha, 1.0.0-alpha.1 과 같은 형식으로. 이 때, 정식배포 버전과 비교하면 정식배포 버전의 우선순위가 더 높다. 1.0.0-alpha < 1.0.0

결론

버저닝 어떻게 할지 고민하지 말고 SemVer로 갑시다!!!

링크