Эволюция нашей стратегии версионирования
С выпуском 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) с четкими правилами:
- MAJOR версия увеличивается, когда мы вносим несовместимые изменения в API
- MINOR версия увеличивается, когда мы добавляем функциональность в обратимо совместимом режиме
- PATCH версия увеличивается, когда мы вносим обратимо совместимые исправления ошибок
Преимущества нашего нового подхода
1. Более ясная коммуникация
Каждый номер версии теперь передает значимую информацию о характере изменений. Когда вы видите увеличение версии, вы сразу поймете, какие изменения ожидать:
- Изменение основной версии? Готовьтесь к потенциальным разрушающим изменениям
- Изменение минорной версии? Ожидайте новые функции, которые не нарушат существующий код
- Изменение патч-версии? Исправления ошибок, которые поддерживают совместимость
2. Независимое версионирование пакетов
Каждый пакет теперь имеет свой собственный номер версии, который увеличивается независимо. Это значит:
- Более детальное отслеживание изменений в экосистеме
- Лучшее управление зависимостями в проектах, использующих компоненты Manticore
3. Упрощенное отслеживание разработки
Сборки разработки теперь имеют уникальные, увеличивающиеся номера версии, которые четко указывают на их место в графике разработки, при этом сохраняя хэши коммитов и временные метки для точного отслеживания. Это обеспечивает лучшее понимание прогресса версий разработки.
4. Улучшенная поддержка автоматизации
Стандартизированное версионирование позволяет:
- Более надежное разрешение зависимостей в менеджерах пакетов
- Проще интеграция с CI/CD пайплайнами
- Автоматическая проверка совместимости
- Оптимизированные процессы релиза
5. Соответствие отраслевым стандартам
Приняв SemVer, мы выравниваемся с широко принятой практикой в отрасли, что делает Manticore более доступным для разработчиков, уже знакомых с этой схемой версионирования.
6. Улучшенная сигнализация стабильности
Пользователи теперь могут принимать более обоснованные решения об обновлениях:
- Патч-обновления могут применяться с минимальным риском
- Минорные обновления приносят новые функции с обратной совместимостью
- Основные обновления сигнализируют о необходимости более тщательного тестирования и потенциальных изменений в коде
Взгляд в будущее
Этот переход к семантическому версионированию представляет собой нашу приверженность предоставлению более дружелюбного для разработчиков опыта. Мы уверены, что эти изменения сделают работу с Manticore более предсказуемой и приятной.
Для существующих проектов этот переход должен быть бесшовным, но это означает, что у вас будет больше информации о том, что содержит каждое обновление, и вы сможете принимать более обоснованные решения о том, когда обновляться.
Переходный период
Хотя мы полностью внедрили семантическое версионирование для релизных версий, начиная с Manticore 7.4.6, мы все еще находимся в процессе миграции всех компонентов на новую схему версионирования. В течение этого переходного периода некоторые версии разработки могут все еще следовать предыдущей схеме с общими номерами версий. Однако все версии релиза будут последовательно следовать новому подходу семантического версионирования.
Мы ожидаем завершить миграцию по всем компонентам в ближайшие месяцы, после чего как версии разработки, так и релизные версии полностью будут соответствовать принципам семантического версионирования.
Мы рады этому улучшению и приветствуем ваши отзывы, пока продолжаем улучшать Manticore для всех наших пользователей.