세미버 계산기

시맨틱 버저닝(Semantic Versioning)은 MAJOR.MINOR.PATCH와, 선택적으로 사용할 수 있는 -prerelease+build 접미사로 이루어진 다섯 가지 부분으로 구성됩니다. 이 계산기는 버전 문자열을 입력받아 semver 2.0.0의 문법 규칙에 따라 검증한 뒤, 이를 구성 요소로 분해하여 다음 메이저, 마이너, 패치, 프리릴리스(-rc.1) 버전을 나란히 보여 줍니다.

버전 갱신 방법

  1. 1

    현재 버전을 붙여넣으세요

    `1.2.3`, `1.2.3-rc.1`, `2.0.0-alpha+exp.sha.5114f85` 및 기타 Semver 2.0.0 형식을 수용합니다.

  2. 2

    파싱된 각 부분을 확인하세요

    이 도구는 문자열을 메이저, 마이너, 패치, 프리릴리스, 빌드 메타데이터로 분해하므로 기대한 대로 해석되었는지 확인할 수 있습니다.

  3. 3

    다음 버전들을 비교하세요

    다음 메이저, 마이너, 패치를 한꺼번에 보여 주고, 프리릴리스 후보(`-rc.1`)도 함께 표시합니다. 마이너를 올리면 패치가 0으로 초기화되고, 메이저를 올리면 마이너와 패치가 모두 초기화됩니다.

  4. 4

    새 버전을 복사하세요

    변경 내용에 맞는 버전을 선택해 `package.json`, `Cargo.toml`, Git 태그 또는 릴리스 노트에 사용하세요.

이 계산기가 보여 주는 내용

1.2.3 같은 버전의 경우, 이 도구는 제안되는 다음 네 가지 버전을 보여 줍니다:

유형 1.2.3가 바뀌는 값
메이저 2.0.0
마이너 1.3.0
패치 1.2.4
프리릴리스 1.2.4-rc.1

마이너를 올리면 패치가 0으로 초기화되고, 메이저를 올리면 마이너와 패치가 모두 0으로 초기화됩니다. 프리릴리스 제안은 다음 패치를 릴리스 후보로 표시합니다. npm version 같은 명령줄 도구에는 릴리스 스크립트에서 필요할 때 쓸 수 있는 더 많은 작업(premajor, preminor, prepatch, 그리고 1.2.3-beta.11.2.3-beta.2가 되는 것과 같은 제자리 프리릴리스 증가)이 있습니다.

적용할 우선순위 규칙들

  • 사전 출시 버전의 우선순위는 정식 출시 버전보다 낮다: 1.0.0-rc.1 < 1.0.0.
  • 숫자 식별자는 수치적으로 비교되며, 영숫자 식별자는 문자 순서에 따라 비교됩니다: 1.0.0-alpha.2 < 1.0.0-alpha.11.
  • 빌드 메타데이터(+sha.abc)는 우선순위 기준에서 무시됩니다. 1.0.0+202401011.0.0+20250101는 동일한 버전입니다.
  • 숫자 식별자에 사용된 앞의 0은 유효하지 않습니다. 1.0.0-rc.01는 semver 형태가 아니므로 rc.1를 사용하십시오.

범위 연산자 참고표

  • ^1.2.3, 버전이 1.2.3 이상이면서 2.0.0 이하인 경우(동일한 메이저 버전을 유지함).
  • ~1.2.3, 버전이 1.2.3 이상이면서 1.3.0 미만인 경우(동일한 마이너 버전에 유지됨).
  • >=1.2.3 <2.0.0, 명시적 범위.
  • 0.x는 특별한 경우입니다: npm은 1.0 이전 버전이 불안정하다고 간주하므로 ^0.2.3>=0.2.3 <0.3.0로 처리합니다.

메이저 버전을 올릴 시점

다운스트림 사용자에게 영향을 주는 변경에는 메이저를 올립니다: 공개 API 제거, 함수 시그니처 변경, 기본 동작 변경, 설정 키 이름 변경 등이 이에 해당합니다. 마이너는 추가적인 변경에만 사용합니다. 패치는 계약(인터페이스)을 바꾸지 않는 버그 수정을 위한 것입니다.

자주 묻는 질문

아니요. 01.2.3는 유효하지 않습니다. 각 숫자 식별자는 리터럴 0를 제외하고, 앞에 0이 붙지 않은 비음수 정수여야 합니다.

지난 1.0.0-rc.N 버전에서 패치를 올리세요. semver는 이를 프리릴리스 버전에서 릴리스 버전으로의 승격으로 간주합니다. 또는 버전을 명시적으로 설정하고 태그를 부여할 수도 있습니다.

아니요. Build 메타데이터는 + 이후에 위치하며 순서 정립 시 무시됩니다. Prerelease 메타데이터는 - 이후에 위치하여 릴리스보다 낮은 우선순위를 가지며, 대부분의 레지스트리에서는 두 메타데이터를 동시에 사용할 수 있습니다: 1.2.3-rc.1+build.77.

네, semver는 연속된 메이저 업데이트를 요구하지 않습니다. 3.x에서 직접 5.x로 전환하는 것도 가능하지만, 대부분의 팀은 이를 특히 큰 변화를 의미하는 신호로 사용합니다.

관련 도구

이 도구는 다른 언어로도 제공됩니다