Versioning & Packages

проверка диапазонов версий

Сначала выберите экосистему, затем введите её диапазон, путь или поля зависимости.

проверка диапазонов версий

Ввод

Версии-кандидаты, по одной в строке

Результат

Введите данные для начала.

Обработка выполняется в этом браузере; реестры пакетов не опрашиваются.

Параметры

Composer: стабильные числовые версии, ^, ~, .*, сравнения, AND/OR и диапазоны через дефис.

До 500 строк и 65 536 символов; без запроса к реестрам.

Введите данные для начала.

Диапазон из чужого README может означать разное в разных пакетных менеджерах. Проверка диапазонов версий сначала разделяет Composer и NuGet, а затем сопоставляет только версии, которые вы указали сами.

Ограничения версий Composer и диапазон версий NuGet разбираются независимо. Путь модуля Go проверяется на допустимые символы и форму для скачивания, а версия зависимости Cargo превращается в одну строку TOML.

Зачем нужна проверка диапазонов версий?

В каждом отчёте видно, чьи именно правила применялись.

Одна запись — разные границы

Проверка диапазонов версий не выдаёт интервал NuGet за ограничение Composer. В NuGet запись 1.0 задаёт включённую нижнюю границу, а [1.0] означает точное совпадение.

Четыре отдельных маршрута правил ведут от входных данных к разным отчётам

Путь и декларация требуют разных ответов

Go отдельно сообщает о допустимости символов и форме скачиваемого домена. Cargo выдаёт одну строку TOML и поясняет, допускает ли версия совместимые обновления.

Путь Go проходит две проверки рядом с созданной строкой зависимости Cargo

Три детали перед переносом в проект

01

Сначала укажите синтаксис

Для каждой экосистемы сохраняется свой черновик. Квадратные скобки NuGet не будут молча разобраны как выражение Composer.

02

Уточните значение версии без оператора

В NuGet 1.0 означает не ниже 1.0. В Cargo 1.0 допускает совместимые обновления; =1.0 требует точную версию.

03

Дождитесь свежего отчёта

Автоматический запуск ждёт 350 мс после правки. Если отключить его, используйте Ctrl/Cmd+Enter; устаревший результат нельзя скопировать или скачать.

Четыре проверки с разными правилами

Числовые ограничения Composer

Проверяются ^, ~, сравнения, шаблоны, AND/OR и частичные диапазоны через дефис на введённых стабильных версиях.

Интервалы NuGet

Учитываются открытые и закрытые границы, пустые концы, предварительные версии, голая нижняя граница и точная запись [x].

Пути модулей Go

Проверяются ASCII-сегменты, зарезервированные имена Windows, домен в нижнем регистре и суффикс /vN без сетевых запросов.

Зависимости Cargo

Из имени crate, требования, features и default-features создаётся одна строка TOML для crates.io; фрагмент копируется отдельно от JSON-отчёта.

Границы локального результата

Composer: стабильные числовые версии
Ветки dev, псевдонимы, @stability и предварительные кандидаты отклоняются. Для реальной установки нужны minimum-stability проекта и данные репозитория.
NuGet: без восстановления пакетов
Плавающие версии вроде 1.* отклоняются. Совпадение с интервалом не гарантирует наличие пакета или выбор конкретной версии при restore.
Go: без обращения к репозиторию
Допустимый локальный путь может не содержать домен для скачивания. DNS, прокси модулей и go get здесь не вызываются.
Cargo.toml целиком не меняется
Создаётся только обычная зависимость crates.io. git, path, workspace, целевая платформа, частный реестр и переформатирование файла не поддерживаются.
Ограничение списка явно показано
Не более 500 непустых строк-кандидатов и 65 536 символов. Ошибочные строки остаются в отчёте со своими исходными номерами.

Вопросы: проверка диапазонов версий

Чем отличаются ^ и ~ в ограничениях Composer?

В Composer ^1.2 и ~1.2 допускают версии ниже 2.0, но ~1.2.3 останавливается перед 1.3. Эта проверка диапазонов версий работает только со стабильными числовыми выпусками.

Включает ли диапазон NuGet [1.0,2.0) версию 2.0?

Нет. Левая скобка [ включает 1.0, а правая круглая ) исключает верхнюю границу 2.0.

Почему путь модуля Go версии v2 должен оканчиваться на /v2?

Go даёт несовместимым основным версиям начиная с v2 отдельный путь модуля, обычно с /v2 на конце. Здесь проверяется форма пути, а не содержимое репозитория.

Что означает версия без оператора в Cargo.toml?

Версия Cargo без оператора означает caret-условие: 0.1.12 допускает совместимые обновления ниже 0.2. Для точной фиксации напишите =0.1.12.

Означает ли версия NuGet без скобок точное совпадение?

Нет. Голая запись NuGet 1.0 задаёт включённую нижнюю границу, поэтому подходят и более новые версии. [1.0] означает точное совпадение.

Не нашли ответ?

Запустить проверку диапазонов версий

Вернитесь к проверке диапазонов версий, выберите экосистему и прочтите свежий отчёт перед изменением проекта.