Предстоящий релиз Jmix 2.0, который запланирован на июнь 2023 года, будет основан на новых версиях базовых фреймворков: Spring Boot 3, Spring 6, EclipseLink 4. Обновление стека технологий не приносит разработчикам приложений много новых возможностей, но оно необходимо для предоставления поддерживаемых версий базовых библиотек. Жизненный цикл версий библиотек, используемых в Jmix 1.x, скоро подходит к концу. Например, Spring Framework v.5 поддерживается бесплатно только до конца 2024 года, а Spring Security v.5 и того меньше, до ноября 2023 года.
К сожалению, в связи с обновлением библиотек Spring, Jmix 2.0 больше не сможет включать классический пользовательский интерфейс на основе Vaadin 8. Проблема в том, что Vaadin 8 несовместим с новым Jakarta Servlet API и Spring 6.
В результате, чтобы обновить проект с Jmix 1.5 до Jmix 2.0, разработчикам потребуется перенести пользовательский интерфейс приложения на технологию Jmix Flow UI. Подход к разработке в Flow UI такой же, как и в классическом UI: это серверный код с дескрипторами компоновки в XML и контроллерами на Java. Но библиотека компонентов пользовательского интерфейса, навигация, правила компоновки и многое другое существенно отличаются. Из-за этого переход от классического к Flow UI может оказаться сложной и трудоемкой задачей для любого нетривиального проекта.
Согласно нашей политике поддержки стандартных версий, текущая версия Jmix 1.5, выпущенная в феврале 2023 года, должна была бы стать LTS-релизом, поскольку за ней следует мажорная версия 2.0 в июне 2023 года. В этом случае бесплатная поддержка проектов на Classic UI продлилась бы в течение трех лет, до февраля 2026 года. Однако, мы считаем, что трех лет может быть недостаточно для того, чтобы крупный проект обновил свой пользовательский интерфейс. Более того, принимая во внимание, что многие проекты с классическим UI только что были запущены или в настоящее время находятся в активной разработке, мы хотели бы обеспечить поддержку классического UI сверх ранее анонсированной схемы.
Поэтому мы решили разделить график будущих релизов на две ветви. Основная разработка будет идти как обычно в 4-месячном цикле: 1.5 → 2.0 (июнь 2023) → 2.1 (октябрь 2023) → 2.x. Параллельно мы продолжим разработку ветки 1.x и выпустим пару релизов: 1.5 → 1.6 (в 2024) → 1.7 (в 2025). Релиз 1.7 станет последним релизом версии 1 и получит статус LTS. В результате проекты с классическим UI будут иметь бесплатную поддержку в течение пяти лет, до 2028 года.
Цель ветки 1.x состоит не только в предоставлении критических исправлений, но и в переносе важных улучшений на бэкенде фреймворка из основной ветки. Минорные версии 1.6 и 1.7 позволят нам консолидировать и выпустить новые функции, которые было бы слишком рискованно включать в патчи. Эти релизы не будут следовать обычному 4-месячному циклу, вместо этого мы будем собирать их по мере накопления определенного количества изменений, примерно раз в год.
Мы собираемся приложить наши основные усилия к разработке версии 2 и последующих с Flow UI. В версии 1.x ядро классического UI будет заморожено и в основном будет только получать багфиксы, в то время как на бэкенде и в дополнениях мы будем стремиться также перенести все совместимые улучшения из версии 2. Также необходимо отметить, что если в некоторой базовой библиотеке, такой как Spring, будет обнаружена некоторая проблема, и исправлена она будет только в версии, несовместимой с Jmix 1.x (например, в Spring Framework 6), то мы не сможем интегрировать данное исправление в Jmix 1.x. В этом случае мы исследуем реальную значимость проблемы для приложений на Jmix и предложим пути ее обхода.
Еще один нюанс ветки 1.x: Jmix 1.6 и 1.7 не будут включать Flow UI. Поэтому, если ваш проект уже на Flow UI, то обновите его до Jmix 2.0, как только этот релиз будет готов - нет смысла ждать версии 1.6.
Все, что было написано выше о разветвлении релизов, не касается Студии. Она будет выпускаться в стандартном 4-месячном цикле (1.5 → 2.0 → 2.1 → 2.x), и все будущие версии 2.x будут поддерживать проекты Jmix 1.x. Таким образом, разработчики проектов с классическим UI получат все новые возможности Studio, а также поддержку будущих версий IntelliJ.
В заключение, краткое изложение предстоящих изменений:
- Версия Jmix 2.0 будет включать только Flow UI.
- Разработка классического UI продолжится в версиях 1.6 и 1.7. Классический UI будет получать бесплатные обновления в течение пяти лет, до 2028 года.
- Jmix 1.5 - это последняя версия, содержащая как классический UI, так и Flow UI.
- Проекты на Jmix 1.5, использующие Flow UI, должны обновиться до Jmix 2.0. Проекты, использующие классический UI, должны обновиться до Jmix 1.6 и позднее до 1.7.
- Студия версии 2.x будет поддерживать как Flow UI, так и проекты с классическим UI.
Информация о текущих поддерживаемых версиях всегда доступна на странице Версионирование Jmix.
Мы надеемся, что расширенная поддержка классического UI в Jmix 1.x даст разработчикам приложений достаточно времени для достижения своих целей и подготовки к переходу на новый технологический стек, предоставляемый последними версиями Jmix.