시맨틱 버저닝(Semantic Versioning, SemVer)은 소프트웨어의 공개 API 변경을 세 자리 버전 번호로 전달하는 규칙이다. 먼저 다른 프로그램이 의존해도 된다고 약속하는 기능과 사용법을 분명히 해야 한다. 숫자는 작업량이나 완성도의 점수가 아니라 호환성에 관한 신호다. (시맨틱 버저닝 2.0.0 명세)
-
MAJOR.MINOR.PATCH에서 첫 숫자는 기존 사용법과 호환되지 않는 변경, 둘째는 호환되는 기능 추가, 셋째는 호환되는 버그 수정에 대응한다. 상위 숫자를 올릴 때 그 아래 숫자는 0으로 돌린다. -
예를 들어 공개한 포스터 생성기의 필수 입력 이름을
title에서heading으로 바꿔 기존 호출이 실패한다면 주요 버전 변경 사유가 된다. 선택 입력을 추가하면서 기존 호출을 유지하는 변경과 구분할 수 있다. -
이미 배포한 버전의 내용을 몰래 바꾸지 않는다. 수정한 내용은 새 버전으로 내놓아 사용자가 번호로 결과물을 구분하게 한다. 버전 관리의 수정 이력과 배포 버전 번호는 서로 연결할 수 있지만 같은 것은 아니다.
-
0.y.z는 초기 개발을 위한 구간으로, 공개 API가 안정적이라고 간주하지 않는다.1.0.0부터 공개 API와 이후 변경 규칙을 기준으로 버전을 정한다.