Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
andreas_ecker
Employee
Employee


The UI5 migration tool is now available! It is a node.js-based offering that supports you in the migration of UI5 projects by adapting the code to fit newer UI5 framework versions.

UI5 Evolution


Many recent improvements to the framework have been introduced by UI5 Evolution. It represents an ongoing effort to advance UI5, for instance by embracing web standards and by leveraging future-proof best practices. However, to take the full advantage of these changes, the codebase of UI5 projects needs to be adapted. You can do this manually by following the information in the UI5 Developer Guide, for example Legacy jQuery.sap Replacement. But the migration tool makes the process significantly easier for you.

Migration Tool


The UI5 migration tool performs source code replacements and optimizations to reduce or get rid of deprecated APIs. It builds upon a powerful parsing of JavaScript sources into an AST (abstract syntax tree) in order to perform the actual code replacements. Internally, the tool is implemented with TypeScript, but as a user you may not notice this as it is fully transparent.

Migration typically consists of an analysis part and a code modification part. There are a number of tasks available, which invoke different code replacers. The tool comes with a comprehensive set of command-line options to configure the steps to analyze or to migrate specifically for your UI5 project.


Code Reviews


It is obvious, that in a productive environment all source code modifications generated by the UI5 migration tool need to be reviewed carefully and the modified project needs to be tested thoroughly. There is no 100% guarantee that the modified code works as expected.

This initial feature set of the migration tool has already been used successfully in many UI5 projects, such as the framework's core codebase itself. So we think it will also be quite helpful for you and definitely provides a good starting point for further improvements.

Further Improvements


As with any early release of an open-source tool, there certainly is much room for improvement. We have many ideas to further enhance the migration capabilities and to cover more of UI5 Evolution, for instance the Legacy Factories Replacement. But we are also very interested to get more real-life feedback from existing projects. So, if you encounter issues when you apply the migration tool, please let us know. Also, if you have suggestions, we would appreciate your input and contributions!

For the time being, the UI5 migration tool is a standalone offering next to and complementing the existing comprehensive UI5 Tooling, which already covers many build and development aspects. In the future, we might see a deeper integration of the migration capabilities into UI5 Tooling. This is important, because the UI5 migration tool is not just a one-time command helping you with a single migration. It is rather supposed to become a regular, quite natural step when upgrading a UI5 project to a newer UI5 framework version.

More information


To get started, you find all the information about UI5 migration tool, its usage and capabilities in the corresponding open-source project:
See at Github the project's repository for code and contributing possibilities.
Consume as npm package easily and take it for a test drive.
Watch the video of an introductory talk at the recent UI5con event about the UI5 migration tooling.

Thanks for checking out the new tool and: Keep migrating!

Author









Tobias is a Code Spartan and lovely Dad of a future UI5 Developer. Oh, and by the way, he is saving the world by riding the bike to work.









Andreas as the Product Owner of UI5 Core and Runtime engages in advancing the UI5 framework as a state-of-the-art, enterprise-proven solution, e.g. via UI5 Evolution and UI5 Tooling.


3 Comments