Compatibility of LuciadLightspeed versions

The terms Major version, Minor version, and Patch version refer to the components of a LuciadLightspeed version number. Typically, these numbers are composed as a Major.Minor.Patch sequence. For instance, in LuciadLightspeed version 2018.0.02, 2018 indicates the Major version, 0 indicates the Minor version, and 02 indicates the Patch version.

What is LuciadLightspeed binary compatibility?

As of version 2014, LuciadLightspeed patch updates are binary compatible. This means that you can compile your development project with a version of LuciadLightspeed , install a patch update of LuciadLightspeed based on that version, and then run your project without re-compiling it first. For instance, you can integrate LuciadLightspeed patch update 2014.0.01 in your development project compiled with version 2014.0, and immediately run the project with the patch update.

Patch releases of LuciadLightspeed are binary compatible with their initial minor version only. For instance, LuciadLightspeed versions 2018.0.01 and 2018.0.02 will be binary compatible with version 2018.0, but version 2018.0.02 will not be binary compatible with version 2018.1, nor will version 2018.1.01 be binary compatible with version 2018.0.

Versions of LuciadLightspeed are not necessarily binary compatible with LuciadLightspeed releases of other minor versions. For instance, LuciadLightspeed version 2018.0 can be binary incompatible with LuciadLightspeed version 2018.1 or version 2019.0.

There may be occasional exceptions to these LuciadLightspeed binary compatibility principles. These are explained in detail in the release notes of LuciadLightspeed.

The Java Language Specification describes in great technical detail what binary compatibility means for Java libraries. You can find this specification on http://docs.oracle.com/javase/specs/jls/se7/html/jls-13.html.

Benefits of binary compatibility

Binary compatibility is particularly useful when you work with multiple teams on a single project, or when you have third-party contributors providing components for your application. In those cases, it is possible for your team to use the compiled JAR files provided by other contributors. You will be able to use that JAR in your own application, even if the other contributor used a different patch version of the LuciadLightspeed than the one you are currently using.