Upgrade Etendo to Any Version
Overview
This guide explains how to upgrade your Etendo environment to any version you want.
Info
Only if you are upgrading from Etendo 21 is it necessary to follow the guide Upgrading from Etendo 21 to Any Version. In all other cases simply follow the current guide.
Checklist
- Create a backup.
- Verify the technology stack required for the target version (Gradle, Java SE, PostgreSQL, Apache Tomcat).
- Update the Etendo version.
- Update the Etendo Gradle Plugin version.
- Review and update bundles version if necessary.
- Expand (download) the Core or modules when using the Source format (if applicable).
- Compile the environment and resolve any issues.
Backup
It is essential to create a backup before starting the upgrade process!
- A complete backup of your environment ensures you can restore your system in case of any issues during the upgrade.
- You can use the Etendo Backup and Restore Gradle Plugin to easily and safely create and restore backups.
Stack Upgrade
Gradle Upgrade
-
If you are upgrading to Etendo 24 or prior, update Gradle by running:
-
If you are upgrading to Etendo 25, update Gradle by running:
Full Stack Upgrade
The required technology stack depends on the target version.
-
For Etendo versions prior to Etendo 25, the initial stack remains unchanged, For more information, visit: Etendo 24 and Earlier - Software Stack
-
If you are migrating to Etendo 25, you must first update the entire technology stack (Java SE, PostgreSQL, Apache Tomcat). For more information, visit: Etendo 25 - Software Stack
Tip
The Developer Changelog guide provides details about the required stack and possible changes needed in custom modules.
Etendo Upgrade
Etendo can be installed or upgraded using two formats: Source or JAR. The Source format is the most common and allows you to modify the application code. The JAR format is more efficient, as it uses precompiled classes, but does not allow code changes.
Etendo in Source Format (Most Used)
-
Verify the Etendo core version inside
build.gradle
, it is recommended to set a fixed version. You can find the list of versions and their statuses in the Etendo - Release Notes. It is recommended always updating to the latest Confirmed Stable (CS) version available.Info
You can declare a specific version (e.g. "25.1.0") or an interval of versions:
- [begin, end] - Both versions are included
- (begin, end) - Both versions are not included
- [begin, ) - From a base version to the latest one
And the other possible combinations. -
Verify the Etendo Gradle Plugin version and update it to the latest Confirmed Stable (CS) version available for the Etendo version you are upgrading to. For more information visit Etendo Gradle Plugin - Release Notes
-
Run the following command to upgrade the core:
Warning
You may need to force the execution of this task, since by default for security reasons it is not possible to expand the core if it detects modules that are not yet compatible. To do this, add the following to the
build.gradle
file:Remember to remove this configuration after the update to avoid future errors.
-
If there are bundle dependencies declared in the
build.gradle
file, you must upgrade those dependencies to the compatible version with the updated Etendo. You can get more information and the versions of each bundle compatible with each Etendo version at Etendo Marketplace. -
Compile the environment:
-
Check for any compilation errors that may occur due to incompatible customizations or modifications.
Warning
Remember to review the API Changes that may affect modules installed in Etendo 25 or later. For more information, visit: Etendo API Changes
Success
Your Etendo environment is now updated!
Etendo in JAR format (Recommended for Less Customized and Dynamic Environments)
-
Verify the Etendo target version inside
build.gradle
, it is recommended to set a fixed version. You can find the list of versions and their statuses in the Etendo - Release Notes. It is recommended always updating to the latest Confirmed Stable (CS) version available. -
Verify the Etendo Gradle Plugin version and update it to the latest Confirmed Stable (CS) version available for the Etendo version you are upgrading to. For more information visit Etendo Gradle Plugin - Release Notes
-
If there are bundle dependencies declared in the
build.gradle
file, you must upgrade those dependencies to the compatible version with the updated Etendo. You can get more information and the versions of each bundle compatible with each Etendo version at Etendo Marketplace. -
Compile the environment:
Warning
When running this task, all dependencies including Etendo Core will be resolved dynamically. You may need to force the execution of this task, since by default for security reasons it is not possible to expand the core if it detects modules that are not yet compatible. To do this, add the following to the
build.gradle
file:Remember to remove this configuration after the update to avoid future errors.
-
Verify any compilation errors that may arise due to incompatible customization or modifications.
Warning
Remember to review the API Changes that may affect modules installed in Etendo 25 or later. For more information, visit: Etendo API Changes
Success
Your Etendo environment is now updated!
Upgrading from Etendo 21 to Any Version
-
In case of upgrading the Etendo Core from Etendo 21, you must check if exist and remove the following modules from the
/modules
directory, as they are distributed into the Etendo Core:com.smf.securewebservices
com.smf.smartclient.boostedui
com.smf.smartclient.debugtools
-
From Etendo 22, credentials for accessing packages in Etendo repositories must be configured in the
gradle.properties
file, as Gradle resolves and checks dependencies dynamically. You must setgithubUser
andgithubToken
. For more information, visit: Use of Repositories in Etendo
Resolving the Etendo Gradle Plugin for First Time
From Etendo 22, Etendo uses a standard Gradle plugin to execute all the Gradle tasks. To work with this plugin you need to specify in the root project from where the plugin will be resolved.
-
Create or update the
settings.gradle
file with the next content:settings.gradlepluginManagement { repositories { mavenCentral() gradlePluginPortal() maven { url 'https://maven.pkg.github.com/etendosoftware/com.etendoerp.gradleplugin' credentials { username "${githubUser}" password "${githubToken}" } } maven { url 'https://repo.futit.cloud/repository/maven-public-snapshots' } } } // Add modules subprojects new File("${this.rootDir}/modules").listFiles().each { if (it.directory && new File(it, 'build.gradle').exists()) { include(":modules:${it.name}") } } rootProject.name = "etendo"
-
Add in the
build.gradle
file the latest confirmed stable (CS) Etendo Gradle Plugin version compatible with the Etendo version you are upgrading to. For more information visit Etendo Gradle Plugin - Release Notes -
Delete if the old plugin exists removing the "apply from" line:
Terminal4. Continue with the Etendo Upgrade section.apply from: 'https://repo.futit.cloud/repository/static-public-releases/com/etendo/etendo/latest/etendo-latest.gradle'
This work is licensed under CC BY-SA 2.5 ES by Futit Services S.L.