How to migrate from 1.5.5 to 1.6

Since an essential bug in any 1.5 version which does not become fixed (https://forum.jmix.io/t/screen-unusable-if-column-to-collapse-is-out-of-users-permission/4701/15), I need to migrate a multi-add-on project to version 1.6.

But the studio offers migrations to 2.x versions only. How to migrate properly?

I am using IntelliJ Idea Ultimate 2024.2.1 with Jmix Plugin version 2.3.2-242

Hello,

let me try to answer this.

  1. Backup your project folders, database
  2. Do you need to continue working with existing 1.5 project until your migration is done?
    → if yes, copy entire project to another folder, make a copy database to another database instance
  3. Consider installing JetBrains Toolbox App: Manage Your Tools with Ease and another instance of IntelliJ, then set one instance to work with 1.5 project and another with 1.6
  4. Test creating new project, when you scroll down the Jmix version does it show 1.6 ?
    image
  5. Open project from the new folder , change database connection to the new one, change Jmix version in project properties from 1.5 to 1.6, try to build, see what happens.

Kind regards,
Mladen

Hello @mbucan ,

thank you for your quick answer. I am not sure, if I understood correctly: I can not migrate, I have to recreate all projects to migrate?

I hope, I misunderstood. The reason for not being able to migrate all our applications to an up-to-date Jmix version is, that there is no migration path.

Furthermore creating a new project in a non-Internet environment is still pretty much a pain because, I have to adjust settings.gradle and the gradle-wrapper manually in every single new project. I know, there are templates - but I don’t find time to keep templates up-to-date.

I am talking about multiple applications and an add-on project with 20 sub-projects.

Meanwhile I tried to simply update the versions manually and reinstall the gradle wrapper without using the studio.

But the build fails (paths and names redacted):

Could not find io.jmix.ui:jmix-ui:1.6.0.
Searched in the following locations:
- file:/home/me/projects/jmix/jmix-addons-company/libs/jmix-ui-1.6.0.jar
- file:/home/me/projects/jmix/jmix-addons-company/libs/jmix-ui.jar
- file:/home/me/.m2/repository/io/jmix/ui/jmix-ui/1.6.0/jmix-ui-1.6.0.pom
- https://nexus3.company.org/repository/maven-central/io/jmix/ui/jmix-ui/1.6.0/jmix-ui-1.6.0.pom
- https://nexus3.company.org/repository/jmix/io/jmix/ui/jmix-ui/1.6.0/jmix-ui-1.6.0.pom
Required by:
  project :jmix-company-base-ui > io.jmix.bom:jmix-bom:1.6.0

if I understood correctly: I can not migrate, I have to recreate all projects to migrate?

I was being cautious - the first few steps are for you to preserve the original 1.5 project and have the ability to work on it, perhaps because of the maintenance or update tasks while you work on 1.6 version, so you don’t potentially mess it up and can’t make a change to your 1.5 version because you can’t build it while customer wants it fast

Perhaps I then misunderstood? When you change the project version on the project properties, doesn’t it give you 1.6 like in the picture?

Hi

As I see from your last post, you have some custom repositories defined for your project.
Please note, that Studio gets available Jmix versions from jmix-templates artifacts found in the project repositories. So, if your custom nexus doesn’t contain Jmix 1.6 artifacts, then you won’t be able to migrate your project to 1.6.

“But the studio offers migrations to 2.x versions only.” - that sounds like a bug. Studio shouldn’t offer migration of Classic UI projects to Jmix 2.X, as this can’t be performed without rewriting application UI code.

Hi @gaslov ,

thank’s for your answer. We have introduced custom repositories because we are not developing with direct internet access. The Nexus provides a proxy-mirror for Maven Central, Jmix (releases only), NPM registry and a couply of others as well.

We did not have any issues with that since we have Jmix applications running with the following versions:

  • 1.4
  • 1.5
  • 2.1
  • 2.2
  • 2.3

The BOM artifact seems to be resolved, but the (classic) UI artifact does not. Do we need to add beta releases or an additional Jmix repository?

Hi

Jmix 1.6.0 artifacts are located in the same place as versions 1.5.5 and 2.3.3 artifacts. You can easily check this in Jmix global repo:

So you don’t need to add beta releases or an additional Jmix repository.

Hi @gaslov,

we are proxying https://nexus.jmix.io/repository/public/ since version 0.9 in the same way. We never experienced something similar.

Trying to build the project without intelliJ by gradle on the console only worked right now.

Either it has to do with the plugin or it was a temporary unavailability for the package jmix-ui on Friday 30th 2024 around 9am UTC. The behavior was the same on multiple machines within half an hour.

One more question. Are there secondary mirrors behind the Jmix (global) repository redirecting to another domain than jmix.io?

@gaslov

It seems it was a temporary issue, it is not reproducable anyore - neither with the studio nor without.

@gaslov

I am just experiencing issues downloading artifacts from nexus.jmix.io with partial file transfers. But if I got you right, this is the wrong repository.

I set up to proxy nexus.jmix.io about two years ago and never questioned that since it was working fine.

Can you confirm, we should use global.repo.jmix.io instead of nexus.jmix.io?