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: 
Beginning with OpenUI5 and SAPUI5 1.116 (planned for July 2023), UI5 framework libraries will start using modern ECMAScript syntax in their code and define "Specification Version 3.0" in their UI5 Tooling configuration.

If you use UI5 Tooling in your projects, this means you will have to upgrade to UI5 Tooling Version 3.

In addition, you have to make sure that your project’s development infrastructure fully supports this change.

Action


Check your project’s package.json file. If it contains an entry for the "@ui5/cli" module, you might need to upgrade this dependency to the latest version.

For this, use the following command. Also refer to our migration guide.
npm install --save-dev @ui5/cli@latest

Also make sure your development infrastructure is ready for handling ECMAScript 2022 code. This includes any testing frameworks, custom build scripts or UI5 Tooling extensions you may use.

Background


The reason for changing the specification version of all UI5 framework libraries is rooted in our efforts to allow the usage of modern ECMAScript syntax in the framework. In the past, only JavaScript ES5 syntax was used.

Starting with Version 1.116, OpenUI5 and SAPUI5 libraries will make use of modern ECMAScript language features up to and including ECMAScript 2022. UI5 Tooling only introduced support for this syntax in Version 3.

Therefore, we need to enforce the use of the latest UI5 Tooling version by all consumers before we can safely start using the new syntax in the UI5 framework. We can do this by increasing the specification version.

This will cause older versions of UI5 Tooling to abort processing framework libraries, showing an error message stating that the specification version is not supported and suggesting an upgrade of UI5 Tooling.

Maintenance Releases


Current maintenance releases, such as 1.108, are not affected by this change. While we strongly recommend upgrading any UI5 Tooling dependencies to benefit from bug fixes and improvements, UI5 Tooling v2 will continue to work with current maintenance releases.

Feedback


If you have any questions or feedback, reach out to us in the comments below, the OpenUI5 Slack channel, or by raising an issue on GitHub.

Disclaimer: Regarding the forward-looking statements, see www.sap.com/legal-notice
4 Comments
wridgeu
Participant
Awesome news, maybe not for everyone, but in general I really like the reason for this breaking change. Looking forward to it. 🙂

Keep pushing it forward!
werner_daehn
Active Contributor
Are there any changes to be done in controllers and custom controls when no UI Tooling is used but just plain HTML and JS files?

 

And since we are on the topic, two more questions:

  1. Any plan to switch to the syntax where you import modules instead of use define? https://sap.github.io/ui5-tooling/stable/pages/ESSupport/#template-literal-in-sapuidefine-or-sapuire...

  2. Any plans to get rid of the jquery library in UI5?

Are there any changes to be done in controllers and custom controls when no UI Tooling is used but just plain HTML and JS files?

No, there are no changes required for application / library code at all.
This is only about the tools that are used for example to parse the JavaScript code.
andreas_ecker
Employee
Employee
Hi Werner, regarding your two add'tl questions:

  1. For the time being, sap.ui.define() is to be used instead of import, see https://sap.github.io/ui5-tooling/v3/pages/ESSupport/#javascript-modules

  2. Getting rid of jQuery is indeed a long-term goal, as we keep reducing dependencies and with each iteration replace existing functionality by equivalent/native capabilities. Btw, this is also true for smaller third-party dependencies, so this is an ongoing journey.