Semver-калькулятор

Разбирайте, сравнивайте, проверяйте диапазоны, инкрементируйте и приводите семантические версии в браузере. Вводимые версии остаются на устройстве.

Вводимые версии и диапазоны вычисляются локально в вашем браузере и никогда не загружаются.

Нужен быстрый уникальный идентификатор? Попробуйте генератор UUID.

Об инструменте Semver-калькулятор

Этот semver-калькулятор — это набор инструментов SemVer для всего, что вы делаете с номерами версий. Разбирайте версию вроде 1.2.3-beta.1+build.42 на её major, minor, patch, prerelease и метаданные сборки; сравнивайте две версии, чтобы увидеть, какая новее и на каком уровне они различаются; проверяйте, удовлетворяет ли версия npm-диапазону вроде ^1.2.3, ~1.2, 1.x или >=1.0.0 <2.0.0; инкрементируйте версию по major, minor, patch или любому шагу prerelease; и приводите свободную строку вроде v1.2 в чистый semver. Он создан для разработчиков, авторов пакетов и release-инженеров, которые ежедневно рассуждают о диапазонах зависимостей. На основе той же библиотеки semver, что использует npm, каждое вычисление выполняется в вашем браузере, поэтому вводимые версии остаются на устройстве.

Возможности

Как использовать Semver-калькулятор

  1. Выберите режим: разбор, сравнение, диапазон, инкремент или приведение.
  2. Введите версию (и вторую версию или диапазон, в зависимости от режима).
  3. Прочитайте живые результаты в строках информации и значках под полями ввода.
  4. Скопируйте нужное значение, например поднятую версию или уровень различия.

Пример

Ввод

version: 1.5.0
range:   ^1.2.3

Результат

1.5.0 satisfies ^1.2.3  ✓
1.6.0 → pass   2.0.0 → fail

Каретный диапазон ^1.2.3 допускает всё вплоть до следующей major (2.0.0), но не включая её.

Частые ошибки и устранение неполадок

Часто задаваемые вопросы

Что допускает диапазон ^1.2.3?
Каретный диапазон ^1.2.3 допускает любую версию, которая не меняет крайнюю левую ненулевую цифру, поэтому он совпадает с 1.2.3 вплоть до 2.0.0, но не включая её. Для версий 0.x правила строже: ^0.2.3 допускает от 0.2.3 до 0.3.0.
Как prerelease-версия сравнивается со стабильным релизом?
У prerelease ниже приоритет, чем у связанного релиза, поэтому 1.0.0-rc.1 меньше, чем 1.0.0. Prerelease сравниваются поле за полем: идентификаторы сортируются, а числовые идентификаторы стоят ниже более длинных или буквенно-цифровых.
В чём разница между ~1.2 и ^1.2?
Тильда ~1.2 допускает изменения уровня patch внутри 1.2 (>=1.2.0 <1.3.0), а каретка ^1.2 допускает изменения minor и patch вплоть до следующей major (>=1.2.0 <2.0.0). Используйте режим «Диапазон», чтобы увидеть, как примеры версий проходят или не проходят.
Как этот semver-калькулятор обрабатывает метаданные сборки?
Метаданные сборки после знака плюс (например +build.42) разбираются и показываются, но игнорируются при сравнении приоритета, поэтому 1.0.0+a и 1.0.0+b считаются равными версиями.
Что делает приведение версии?
Приведение превращает свободную строку в корректный semver, находя первую последовательность major.minor.patch, какую может. Так v1.2 становится 1.2.0, 1.2.3.4 становится 1.2.3, а release-3.1 становится 3.1.0; недостающие части по умолчанию равны нулю.
По каким типам релиза можно инкрементировать?
Вы можете поднимать по major, minor, patch, premajor, preminor, prepatch или prerelease. Варианты с pre- начинают линию prerelease на выбранной части, например premajor на 1.2.3 даёт 2.0.0-0.

Связанные инструменты

Все инструменты ArrayKit