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