Эволюция нашей стратегии версионирования
С выпуском 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 для всех наших пользователей.
