Версионирование Jmix
НАВИГАЦИЯ ПО ВЕРСИЯМ
Версии имеют нумерацию в форме X.Y.Z, где:
- X.0.0 это мажорная версия, например 1.0.0, 2.0.0
- X.Y.0 это минорная версия, например 1.1.0, 2.3.0
- X.Y.Z это версия патча с багфиксами, например 1.0.1, 1.2.5
Мажорные и минорные релизы добавляют новые функции, поэтому называются функциональными релизами.
Патчи в основном содержат багфиксы и исправления важных дефектов производительности и безопасности. Новые патчи имеют 100% обратную совместимость с предыдущими. Единственное исключение из этого правила — когда баг в системе безопасности или потеря данных не может быть исправлен без нарушения обратной совместимости. В этом случае в примечаниях к патчу содержатся подробные инструкции по обновлению.
Минорные функциональные релизы в основном обратно совместимы с предыдущей версией. Исключения из этого правила прописаны в примечаниях к релизу вместе с инструкциями к релизу. Обычно необходимые изменения в исходном коде и конфигурации приложения автоматически выполняет Jmix Studio во время обновления версии.
Мажорные функциональные релизы могут вносить несовместимые изменения в архитектуру, API и функциональность Jmix. Однако Jmix Studio обеспечивает автоматическую миграцию, чтобы минимизировать влияние изменений в Jmix на проекты приложений.
ИСКЛЮЧЕНИЕ (УСТАРЕВАНИЕ) ФУНКЦИЙ
В функциональном релизе устаревшие функции могут быть исключены. Устаревшие функции будут продолжать работать во всех минорных релизах текущей мажорной версии до следующего мажорного релиза. Эти функции могут исчезнуть в следующем мажорном релизе.
Например, если функция была объявлена устаревшей в Jmix 1.1, она будет работать в версиях 1.2, 1.3, 1.x, а в Jmix 2.0 ее уже не будет.
ПЕРИОДИЧНОСТЬ РЕЛИЗОВ
График релиза Jmix составлен по временному критерию, функциональные релизы выходят каждые 4 месяца. Мажорные версии выходят минимум раз в 2 года. Мы рекомендуем переходить на свежую функциональную версию, если ваш проект находится в активной разработке.
Последние минорные релизы каждой мажорной версии обозначаются как выпуски с долгосрочной поддержкой (LTS). Например: 5.0, 5.1 (LTS), 6.0, 6.1, 6.2 (LTS), 7.0. Если ваш проект находится на финальной стадии разработки или уже запущен в работу, вы можете остаться на последней версии с LTS и получать только критические обновления.
ПОЛИТИКА ПОДДЕРЖКИ ВЕРСИЙ
В любой отдельно взятый момент времени мы поддерживаем группу функциональных релизов в разной степени.
Последний функциональный релиз находится в активной поддержке: он получает исправления для проблем безопасности, критических ошибок, основных проблем с новыми функциями релиза, регрессии из прошлых релизов, внесенные в текущий.
Активная поддержка не-LTS релизов длится 4 месяца, до выхода следующей минорной или мажорной версии. LTS-релизы находятся в активной поддержке в течение 8 месяцев.
После фазы активной поддержки функциональный релиз переходит в фазу сопровождения. Сопровождение означает исправление критических уязвимостей безопасности и ошибок, связанных с потерей данных. Исправления предоставляются в новом патче поддерживаемой версии.
Бесплатное сопровождение предоставляется на 3 года для каждого LTS-релиза и на 4 месяца для каждого не-LTS-релиза.
Коммерческое сопровождение доступно для любого функционального релиза Jmix, выпущенного в течение последних 10 лет. Этот вариант может быть оптимален для проектов с длительным жизненным циклом. Подробнее о коммерческом обслуживании можно узнать здесь.
Если критическая уязвимость безопасности или ошибка потери данных вызвана внешней сторонней зависимостью, мы обновляем зависимость, если существует новая исправленная версия. Возможны случаи, когда мы не можем включить новую версию зависимости, если архитектурные изменения для этой версии препятствуют ее использованию в Jmix или интеграция новой версии слишком трудо и ресурсозатратна.
Расширенная поддержка версии 1.x
Согласно стандартной политике поддержки, описанной выше, релиз 1.5 (2023-02) должен был стать последним релизом версии 1.x, поскольку следующим выпуском в 4-месячном цикле является мажорный 2.0 (2023-06).
Однако, из-за несовместимости технологии пользовательского интерфейса между версиями 1.x и 2.x, мы продолжим разработку версии 1.x в релизах 1.6 и 1.7. Цель состоит в том, чтобы продлить период бесплатного сопровождения версии 1.x до 5 лет с момента выхода версии 1.5.
Даты выхода версий 1.6 и 1.7 не будут соответствовать 4-месячному циклу и будут зависеть от ситуации с накопленными изменениями.