Семантический номер версии, это слово указывает, что это сначала номер версии, а затем семантический номер версии.
Если говорить о номере версии, то мы должны видеть его каждый день.Например, каждое обновление WeChat имеет номер версии.На картинке ниже скриншот с официального сайта WeChat .
Номер версии используется для идентификации каждого выпуска. Это облегчает итеративную оптимизацию для разработчиков программного обеспечения. Семантический номер версии, упомянутый в этой статье, предназначен для добавления семантической информации на основе номера версии.
Другими словами, семантический номер версии позволяет номеру версии выражать семантическую информацию.Когда вы видите номер версии этого выпуска, вы можете знать, что делает эта версия.
Спецификация Semantic Versioning была создана создателем Gravatars и соучредителем GitHub Томом Престоном-Вернером.
Когда мы выпускаем новый пакет, правила семантического номера версии:
Формат версии: основной номер версии, вспомогательный номер версии, номер редакции и правила увеличения номера версии следующие:
Основной номер версии : когда вы вносите несовместимое изменение API,
Второстепенный номер версии : Когда вы делаете обратно совместимое функциональное дополнение,
Номер редакции : когда вы сделали исправление ошибки обратной совместимости.
Номер предыдущей версии и информация о компиляции версии могут быть добавлены в конце «основной номер версии. дополнительный номер версии. номер редакции» в качестве расширения.
Вы также можете перейти сюда , чтобы проверить возможность установить этот набор спецификаций.. Таким образом, когда система становится все больше и больше и добавляется все больше и больше пакетов, она может избежать попадания в долину смерти «ад зависимости».
Поскольку официальный сайт уже представил это очень ясно, я здесь только для того, чтобы бросать кирпичи и искрить нефрит, и вы можете пойти сюда , чтобы получить информацию из первых рук.
Что это делает?
Для тех, кто оформляет договор . Можно определить, какая часть семантического номера версии должна быть изменена в соответствии с изменениями, внесенными перед отправкой каждого пакета. Например rapidocr_onnxruntime, пакет, текущая версия v1.2.3:
Когда я делаю исправление обратной совместимости, следует увеличивать только последнюю цифру, а номер версии становитсяv1.2.4
Когда я добавляю обратно совместимый функциональный модуль в этот пакет, необходимо добавить среднюю позицию, очистить последний бит и номер версии становитсяv1.3.0
Когда я обновляю API-интерфейс пакета, он не имеет обратной совместимости, первая цифра должна быть увеличена, остальные позиции очищены, и номер версии становитсяv2.0.0
Для тех, кто использует пакет . Когда мы используем пакет, мы можем сначала проверить его номер версии.Если мы следуем семантическому номеру версии, мы можем ограничить диапазон версий пакета, чтобы избежать проблем несовместимости.
Например: distlibраньше я видел библиотеку зависимостей пакетов и написал ее dislib<1,>=0.3.6. Это означает, что это зависит только от distlibверсии этой библиотеки ниже версии 1.0 и выше или равной версии 0.3.6. Буквально, это делается для того, чтобы избежать несовместимости, которая может возникнуть в версиях выше 1.0.
напиши в конце
В настоящее время номера версий выпущенных мной пакетов соответствуют спецификации семантической версии. Для получения дополнительной информации см. все пакеты pypi в RapidOCR .
С этой спецификацией номер холодной версии перестает быть бессмысленным, а становится интересным.