docs

Compatibility Rules

The following sections describe what SAP can change in major, minor, and patch releases. Always consider these rules when developing apps, features, or controls with or for OpenUI5.

Caution:


API Evolution

Unless otherwise mentioned, the word “API” in this section refers to “public API”, meaning functions, classes, namespaces, controls along with their declared properties, aggregations, and so on. The sole definition of the public API is the API Reference, which is included in the OpenUI5 Demo Kit. Features that are not mentioned there are not part of the API.

The following rules apply for introducing new APIs or making incompatible changes to existing APIs:

Major release (x.yy.zz): A new major version can introduce new APIs or make incompatible changes to existing APIs.

Minor release (x.yy.zz): A new minor version can introduce new APIs but must not contain incompatible changes to any APIs.

Patch release (x.yy.zz): A new patch version only contains fixes to the existing implementation, but doesn’t usually contain new features or incompatible API changes.

Note:

Exceptions to these rules are possible, but only in very urgent cases such as security issues. Such exceptions are documented in the Change Log.


Compatible Changes

The following changes to existing APIs are compatible and can be done anytime:


Incompatible Changes

The following isn’t part of the public API and may change in patch and minor releases:

The following changes to existing APIs are incompatible, but can be done in a new major release:


Inheritance

Inheriting from OpenUI5 objects (e.g. by calling extend on a control class to add custom functionality) may endanger the updatability of your code.

When overriding an OpenUI5 lifecycle method (such as init, exit, onBeforeRendering, and onAfterRendering), you must make sure that the super class implementation is called, for example like this:

MyClass.prototype.onAfterRendering = function() {
  SuperClass.prototype.onAfterRendering.apply(this, arguments);
  // ...
};

MyClass.prototype.exit = function() {
  // Cleanups of your subclass ...
  // Invoke the exit method of the superclass at the end:
  SuperClass.prototype.exit.apply(this, arguments);
};

SAP might add, remove, or change the internal implementation of the parent class at any time. Especially, you shouldn’t rely on the following functionality:

We recommend that you test inherited classes very carefully after updating OpenUI5 to make sure that the extended functionality is still working as expected.


Deprecation

If possible and appropriate, we mark old artifacts as deprecated and create new artifacts, instead of making incompatible changes. A deprecation comment in the corresponding API documentation, and perhaps also a log entry in the implementation, explain why and when an artifact has been deprecated and include tips on how to achieve the same results without using deprecated functionality.


Experimental API

Some features or controls delivered with the current OpenUI5 version are flagged as “experimental”. These experimental features and controls are not part of the released scope of the delivered OpenUI5 version. Do not use experimental features or controls in a productive environment, or with data that has not been sufficiently backed up.

Experimental features and controls can be changed or deleted at any time without notice, and without a formal deprecation process. They may also be incompatible to changes provided in an upgrade.


Third-Party Open Source Libraries

OpenUI5 contains and uses several third-party open source libraries, such as jQuery. These libraries can also be used by applications and/or custom control libraries, but the OpenUI5 compatibility rules described in this document do not apply to these third-party libraries.

If you want to use the third-party open source libraries included in OpenUI5, note the following restrictions:

Note:

Do not use different versions of these libraries as this might lead to unforeseen side effects.

For a list of the third-party open source software used in OpenUI5, choose SettingsAbout and select the Included Third-Party Software link.

Related Information

Versioning and Maintenance of OpenUI5

API Reference