blog-post

О версионировании в Manticore

Эволюция нашей стратегии версионирования

С выпуском Manticore 7.4.6 мы рады объявить о значительном улучшении в том, как мы версионируем наше программное обеспечение. Это изменение является важным шагом в нашем стремлении предоставить более прозрачный, предсказуемый и удобный для разработчиков опыт.

Старый способ: Почти, но не совсем семантическое версионирование

Ранее наш подход к версионированию имел несколько особенностей, которые вызывали путаницу:

  • Номера версий увеличивались на основе субъективных оценок значимости изменений, а не следовали последовательному шаблону
  • Мы использовали нечетные/четные номера для различения версий разработки (нечетные, например, 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) с четкими правилами:

  1. MAJOR версия увеличивается, когда мы вносим несовместимые изменения в API
  2. MINOR версия увеличивается, когда мы добавляем функциональность обратно совместимым образом
  3. PATCH версия увеличивается, когда мы вносим обратно совместимые исправления ошибок

Преимущества нашего нового подхода

1. Более четкая коммуникация

Каждый номер версии теперь передает значимую информацию о характере изменений. Когда вы видите увеличение версии, вы сразу поймете, какие изменения ожидать:

  • Изменение основной версии? Подготовьтесь к потенциальным разрушающим изменениям
  • Изменение минорной версии? Ожидайте новые функции, которые не сломают существующий код
  • Изменение патч-версии? Исправления ошибок, которые сохраняют совместимость

2. Независимое версионирование пакетов

Каждый пакет теперь имеет свой собственный номер версии, который увеличивается независимо. Это означает:

  • Более детальное отслеживание изменений по всей экосистеме
  • Лучше управление зависимостями в проектах, использующих компоненты Manticore

3. Упрощенное отслеживание разработки

Сборки разработки теперь имеют уникальные, увеличивающиеся номера версий, которые четко указывают на их место в временной шкале разработки, при этом сохраняя хеши коммитов и временные метки для точного отслеживания. Это обеспечивает лучшую видимость прогресса версий разработки.

4. Улучшенная поддержка автоматизации

Стандартизированное версионирование позволяет:

  • Более надежное разрешение зависимостей в менеджерах пакетов
  • Более простую интеграцию с CI/CD пайплайнами
  • Автоматическую проверку совместимости
  • Упрощенные процессы релиза

5. Соответствие отраслевым стандартам

Приняв SemVer, мы выравниваемся с широко принятыми отраслевыми практиками, делая Manticore более доступным для разработчиков, уже знакомых с этой схемой версионирования.

6. Улучшенное сигнализирование о стабильности

Пользователи теперь могут принимать более обоснованные решения о обновлениях:

  • Обновления патчей могут быть применены с минимальным риском
  • Минорные обновления приносят новые функции с обратной совместимостью
  • Основные обновления сигнализируют о необходимости более тщательного тестирования и потенциальных изменений в коде

Взгляд в будущее

Этот переход к семантическому версионированию представляет собой нашу приверженность предоставлению более удобного для разработчиков опыта. Мы верим, что эти изменения сделают работу с Manticore более предсказуемой и приятной.

Для существующих проектов это изменение должно быть бесшовным, но это означает, что у вас будет больше информации о том, что содержит каждое обновление, и вы сможете принимать более обоснованные решения о том, когда обновляться.

Переходный период

Хотя мы полностью внедрили семантическое версионирование для версий релиза, начиная с Manticore 7.4.6, мы все еще находимся в процессе миграции всех компонентов на новую схему версионирования. В течение этого переходного периода некоторые версии разработки могут по-прежнему следовать предыдущей схеме с общими номерами версий. Однако все версии релиза будут последовательно следовать новому подходу семантического версионирования.

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

Мы рады этому улучшению и приветствуем ваши отзывы, пока мы продолжаем улучшать Manticore для всех наших пользователей.

Установить Manticore Search

Установить Manticore Search