Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Child pages (Children Display)

Release Numbering

...

Starting with 2.0.0, OpenLMIS follows a basic Major.Minor.Patch release numbering scheme, e.g. 2.0.0, 2.1.3, etc. This is aligned with the Semantic Versioning standard, with specific exceptions noted below. The main purpose is for communication so that implementations running OpenLMIS have a predictable upgrade process that is backwards-compatible.

Major – number is incremented with a significant change to the application. Examples could include a revamped modularization scheme, a UI refresh, a new sizable feature set or some break in compatibility.  

Minor – is incremented when new features or highly significant fixes are added. May include updated developer infrastructure or updated component versions, such as supporting newer versions of Postgres  Compatibility with past releases under the same Major number is expected.  

Patch – incremented for small changes, such as important bug fixes or minor component upgrades. Compatibility with past releases under the Major.Minor is expected.

With version 3.0.0, OpenLMIS has become modular where each service is versioned independently, and the overall OpenLMIS Reference Distribution also has a version number.

Release Schedule

As of version 3.0.0:

...

Version 3 follows the Semantic Versioning standard :

  • Patch releases with bug fixes, small changes and security patches will come out on an as-needed schedule (3.0.1, 3.0.2, etc);. Compatibility with past releases under the Major.Minor is expected.
  • Minor releases with new functionality will come out quarterly and will be backwards-compatible (3.1, 3.2, 3.3, etc);Compatibility with past releases under the same Major number is expected.
  • Major releases would be for non-backwards-compatible API changes. None is planned at this time (4.0 and above).

Version 2 also followed the above above standards.

Goals

Predictable versioning is critical to enable multiple country implementations to share a common code base and derive shared value. This is a major goal of the 3.0 Re-Architecture. For example, Country A's implementation might fix a bug or add a new report, they would contribute that code to the open source project, and Country B could use it; and Country B could contribute something that Country A could use. For this to succeed, multiple countries using the OpenLMIS version 3 .x series must be upgrading to the latest Patch and Minor releases as they become available. Each country shares their bug fixes or new features with the open source community for inclusion in the new Patch or Minor release.

...