Эволюция версионирования Manticore
С выпуском Manticore 7.4.6 мы меняем версионирование в Manticore Search и сопутствующих компонентах. Этот шаг поможет сделать процесс разработки и использования Manticore более прозрачным, предсказуемым и удобным.Как было раньше: почти semver, но не совсем. Ранее наш подход к нумерации версий имел несколько особенностей, которые могли вызывать путаницу:
Номера версий увеличивались на основе субъективной оценки значимости изменений, а не по чёткому шаблону.
Мы использовали нечётные номера для обозначения версий в разработке (например, 1.2.3) и четные – для релизных версий (например, 1.2.4).
Все сборки в процессе разработки имели один и тот же номер версии между релизами, а различались только по хэшу коммита и временной метке.
Например, версии для разработки выглядели так:
7.0.1-25021913-e4b93ef47 7.0.1-25021915-e2c41b2e5 7.0.1-25021917-b8f605339 7.0.1-25021919-b4b3611db 7.0.1-25022103-101e878ef
Этот подход создавал сложности:
Трудно было отслеживать ход разработки.
Было неочевидно, какие изменения вносились между версиями.
Автоматизированное управление зависимостями становилось сложнее.
Возникали проблемы с чётким обозначением совместимости версий.
Новый подход: честное семантическое версионирование. Начиная с Manticore 7.4.6, мы переходим на semver. Теперь номера версий следуют чёткой схеме из трёх компонентов MAJOR.MINOR.PATCH, где:
MAJOR увеличивается при внесении несовместимых изменений в API.
MINOR увеличивается при добавлении улучшений с сохранением обратной совместимости.
PATCH увеличивается при исправлении ошибок без нарушения совместимости.
Преимущества нового подхода1. Теперь номер версии сразу даёт представление о характере изменений:
Изменение MAJOR-версии? Возможны критические изменения, требующие изменений в приложении использущем Manticore.
MINOR-версия обновилась? Новые функции без нарушения совместимости.
PATCH-обновление? Только исправления багов.
2. Каждый пакет каждого компонента теперь получает собственный номер версии, который увеличивается независимо. Это дает:
Точный контроль за изменениями в разных частях системы.
Улучшенное управление зависимостями для разработчиков, использующих Manticore.
3. Теперь каждое промежуточное обновление в процессе разработки имеет свой уникальный, возрастающий номер версии. При этом хэши коммитов и временные метки остаются для точного отслеживания.4. Улучшенная поддержка автоматизации
Стандартизированное версионирование помогает нам:
Надежнее управлять зависимостями в пакетных менеджерах.
Легче интегрировать Manticore в CI/CD-пайплайны.
Автоматически проверять совместимость.
Оптимизировать процесс выпуска новых версий.
5. Соответствие отраслевым стандартам
Использование SemVer делает Manticore более удобным для разработчиков, так как этот стандарт широко применяется в индустрии.
Что дальше?
Переход на семантическое версионирование – часть нашей стратегии по созданию более удобного и предсказуемого процесса разработки. Мы уверены, что эти изменения упростят работу с Manticore и сделают её комфортнее. Для текущих проектов переход пройдет незаметно. Однако теперь пользователи смогут лучше понимать, какие изменения вносит каждое обновление, и принимать более осознанные решения о его установке.
Переходный период
С релиза Manticore 7.4.6 семантическое версионирование применяется ко всем релизам. Однако процесс перевода всех компонентов на новую схему ещё продолжается. На время этого переходного периода некоторые версии для разработки могут по-прежнему использовать старую систему с повторяющимися номерами версий. Тем не менее, все релизные версии уже полностью следуют правилам SemVer. Мы планируем завершить миграцию всех компонентов в ближайшие месяцы, после чего и релизные, и dev-версии будут соответствовать стандарту семантического версионирования.
Ждём ваших отзывов, чтобы продолжать совершенствовать Manticore для всех наших пользователей!
Источник: habr.com