All articles

Extended Support for Classic UI

The upcoming Jmix release 2.0, which is scheduled for June 2023, will be based on the newest versions of the base frameworks: Spring Boot 3, Spring 6, EclipseLink 4. The upgrade of the technology stack won’t bring many new features to application developers, but it is needed to provide supported versions of underlying libraries. The lifecycle of library versions used in Jmix 1.x is coming to an end soon. For example, Spring Framework v.5 is supported for free only till the end of 2024, and Spring Security v.5 even less, till November 2023.

Unfortunately, with the upgrade of Spring libraries, Jmix 2.0 will no longer be able to include Classic UI based on Vaadin 8. The problem is that Vaadin 8 is incompatible with the new Jakarta Servlet API and Spring 6.

As a result, to upgrade a project from Jmix 1.5 to Jmix 2.0, developers will need to migrate the application UI to Jmix Flow UI technology. The development approach in Flow UI is the same as in Classic UI: it's the server-side code with layout descriptors in XML and controllers in Java. But the UI components library, navigation, layout rules and many other things are significantly different. Because of this, migration from Classic UI to Flow UI can be a difficult and time-consuming task for any non-trivial project.

According to our standard version support policy, the current Jmix 1.5 released in February 2023 should have been designated as LTS release because it is followed by the major version 2.0 in June 2023. Then the free support for projects on Classic UI would last for three years until February 2026. But we think that three years are not enough for a large project to upgrade its UI. Moreover, taking into account that many projects with Classic UI have just been started or are currently in active development, we would like to provide support for Classic UI beyond the previously announced scheme.

So, we have decided to split the future release schedule into two branches. The main development will go as usual in a 4-month cycle: 1.5 → 2.0 (June 2023) → 2.1 (October 2023) → 2.x. In parallel, we will continue developing 1.x branch and make a couple of releases: 1.5 → 1.6 (in 2024) → 1.7 (in 2025). Release 1.7 will be the last release of version 1 and will get the LTS status. As a result, projects with Classic UI will have the free support for five years till 2028.

timeline.jpg

The goal for 1.x branch is not only to provide critical fixes, but also to port important improvements in the backend from the main branch. The minor releases 1.6 and 1.7 will allow us to consolidate and deliver features that are too risky to include in patches. These releases will not follow the normal 4-month cycle, instead we'll build them when a particular amount of changes is accumulated, approximately once a year.

Obviously, we are going to put our main effort into development of version 2 and further with Flow UI. In version 1.x, the Classic UI core will be frozen and mostly just receive bugfixes, while on the backend and in add-ons we will strive to also port all compatible improvements from version 2. We should also note that if some critical issue is found in an underlying library like Spring, and it is fixed in a version, incompatible with Jmix 1.x (for example in Spring Framework 6), we will not be able to integrate the fix into Jmix 1.x. In this case, we'll investigate the real impact and offer a workaround to mitigate it.

One more thing about 1.x branch: Jmix 1.6 and 1.7 will not include Flow UI. So, if you currently have a project with Flow UI, upgrade it to Jmix 2.0 as soon as it's ready - there is no point to wait for 1.6.

All that was written above about the split does not concern Studio. It will be released in the standard 4-month cycle (1.5 → 2.0 → 2.1 → 2.x) and all future 2.x versions will support Jmix 1.x projects. So developers of the projects with Classic UI will get all new Studio features, along with the support of the future IntelliJ versions.

In conclusion, the summary of upcoming changes:

  • Jmix release 2.0 will include only Flow UI.
  • Classic UI development will continue in releases 1.6 and 1.7. Classic UI will receive free updates for five years till 2028.
  • Jmix 1.5 is the last release containing both Classic UI and Flow UI.
  • Projects on Jmix 1.5 using Flow UI should upgrade to Jmix 2.0. Projects using Classic UI should upgrade to Jmix 1.6 and later to 1.7.
  • Studio version 2.x will support both Flow UI and Classic UI projects

The current state of supported versions is always available on the Jmix Release Versioning page.

We hope that our extended support for Classic UI in Jmix 1.x will give enough time to application developers to achieve their goals and to prepare for migration to the latest technology stack provided by the newer Jmix versions.

Jmix is an open-source platform for building enterprise applications in Java