Open the menu

    API Stability

    A product is characterized by the periodic distribution of changes aimed at its evolution and stabilization. Each of these distributions is considered a new version of the product and receives a number that uniquely identifies them.

    The LumisXP can be distributed in several different ways, depending on the nature of the modifications and the need or agility.

    The types of distribution are:

    Version: Characterized by the distribution of the complete product, with all functionalities and components, along with the respective documentation and installation routines and upgrade from previous versions.

    The version of LumisXP is represented by 4 constituent parts, separated by a dot:

    • Version number "Major";
    • Version number "Minor";
    • Version number "Release";
    • Version number "Build"

    For example, the version 4.0.8.070126 means that:

    • Version number "Major": 4;
    • Version number "Minor": 0;
    • Version number "Release": 8;
    • Version number "Build": 070126

    Hotfix: Characterized by a package that contains one or more specific modifications, usually defect fixes. It is distributed to be applied to an immediately previous version. This package updates the product to a newer version, whose number corresponds to a "Build".

    Service Pack: Characterized by a package that may contain changes to current functionalities, new functionalities, and various defect fixes. It is distributed to be applied to a previous version. This package updates the product to a newer version, whose number corresponds to a "Release".

    The APIs of the framework of LumisXP can be at the following levels of stability:

    • "Stable Major": means that once an object's public API reaches this level of stability, all subsequent releases of the product, with the same "Major" version number, are guaranteed to be "backwards compatible";

      This level of stability is represented in the definition of the stable object's class as follows:

      StableMajor(version = "XX" sinceVersion = "YY")

      The version attribute informs the current stable version of the API; and the sinceVersion attribute informs from which version the API is compatible with the current version (version).

    • "Stable Minor": means that once an object's public API reaches this level of stability, all subsequent releases of the product with the same "Major" version number and "Minor" version number are guaranteed to be "backwards compatible";

      This level of stability is represented in the definition of the stable object's class as follows:

      StableMinor(version = "XX.XX", sinceVersion = "YY.YY")

    • "Volatile": means that the API may change in any subsequent build or release of the product, and there are no guarantees of "backwards compatibility". This level of stability is not represented in the definition of the unstable object's class.

      If there are no annotations regarding "StableMajor" or "StableMinor" in the object's class definition, it should be assumed that such an object is not stable.