Semver 계산기
시맨틱 버전을 비교하고 버전이 범위를 만족하는지 확인합니다(^, ~, >= 등).
두 버전 비교
범위 예시
| ^1.2.3 | >= 1.2.3 < 2.0.0 |
| ~1.2.3 | >= 1.2.3 < 1.3.0 |
| >=1.0.0 <2.0.0 | >= 1.0.0 AND < 2.0.0 |
| 1.0.0 - 2.0.0 | >= 1.0.0 <= 2.0.0 |
| 1.x.x || 2.x.x | 1.x OR 2.x |
이 도구 소개
의미론적 버전 관리(SemVer)는 MAJOR.MINOR.PATCH 같은 버전 번호를 통해 소프트웨어 변경을 표준화된 방식으로 전달하는 시스템입니다. 이 도구는 버전을 빠르게 비교하고 특정 버전이 범위 제약 조건을 만족하는지 확인하는 데 도움이 됩니다. 프로젝트, 라이브러리, 프레임워크 전반에서 종속성을 관리할 때 필수적입니다.
사용하려면 첫 번째 섹션에 버전 번호(예: 1.5.0)와 범위 표현식(예: ^1.0.0 또는 >=1.0.0 <2.0.0)을 입력하여 버전이 일치하는지 확인합니다. 두 번째 섹션에서는 두 버전을 직접 비교하여 순서를 결정할 수 있습니다. 내장된 예제는 일반적인 범위 연산자를 보여줍니다. 캐럿(^)은 MINOR와 PATCH 업데이트를 허용하고, 틸드(~)는 PATCH 업데이트로만 제한하며, 하이픈 범위(1.0.0 - 2.0.0)는 두 버전 사이의 모든 버전을 포함합니다.
개발자와 패키지 관리자는 호환성을 보장하고 호환성 파괴 변경을 방지하기 위해 매일 이러한 버전 확인에 의존합니다. 이 계산기는 코드 검토, 종속성 업그레이드, 버전 제약 조건을 검증해야 하는 CI/CD 파이프라인에서 시간을 절약할 수 있습니다.
자주 묻는 질문
코드 구현
# pip install packaging
from packaging.version import Version
from packaging.specifiers import SpecifierSet
v1 = Version("1.2.3")
v2 = Version("2.0.0")
v3 = Version("1.2.3-alpha.1") # Note: packaging uses PEP 440 syntax
# Comparison
print(v1 < v2) # True
print(v1 == Version("1.2.3")) # True
# Check if a version satisfies a specifier
spec = SpecifierSet(">=1.0.0,<2.0.0")
print(Version("1.5.0") in spec) # True
print(Version("2.0.0") in spec) # False
print(Version("0.9.0") in spec) # False
# PEP 440 pre-release (different from semver!)
v_pre = Version("1.0.0a1") # alpha 1
v_rc = Version("1.0.0rc2") # release candidate 2
print(v_pre < v_rc < Version("1.0.0")) # True
# Sorting versions
versions = [Version(v) for v in ["2.0.0", "1.0.0", "1.5.0", "1.5.1"]]
print(sorted(versions))
# [<Version('1.0.0')>, <Version('1.5.0')>, <Version('1.5.1')>, <Version('2.0.0')>]Comments & Feedback
Comments are powered by Giscus. Sign in with GitHub to leave a comment.