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