Калькулятор 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.