Versioning

Current OpenMRS Releases

If you are looking for downloadable builds of OpenMRS, see download.openmrs.org.

Versioning Explanation

The format for OpenMRS versions:

major.minor.maintenance.database[-modifier]

How/when to Choose a Version Number

OpenMRS follows the Semantic Versioning conventions for the platform, reference application, and community supported modules. We encourage everyone to adopt this versioning approach for their code.

Major

The major version number is changed when there are large incompatible changes – e.g., methods are being removed from the API. These should be rare.

Minor

The minor version should change when new features are added or the changes being made will make the prior version incompatible with the new changes. Minor versions should be backwards compatible with older minor versions, but may not be future compatible. For example, if a module requires OpenMRS 1.4, then it should still work with 1.5, but may not work with 1.3.

Maintenance

Also referred to as "Patch."  Maintenance releases represent bug fixes (maintenance) and should be both forward and backward compatible. For example, if your code works with 1.5.2, it should work with 1.5.1 and 1.5.7.

Modifier

The modifier represents and optional release type. Trunk typically carries the "-dev" modifier to indicate that it is under development. Possible modifiers are:

-dev

nightly build, for development purposes only (trunk would usually carry this modifier)

-alpha

development pre-release, not for public consumption

-beta

early release, may be used by beta testers

-rc

release candidate, not officially released but in final stages of testing, may be used by early adopters

The modifier may be followed immediately by a positive integer to allow for multiple instance of a particular release type — e.g., 1.6-rc1 followed by 1.6-rc2.

Where the Version Numbers are Stored

Module Versioning

Modules versions should follow the same format:

major.minor.maintenance.[-modifier]

Likewise, major, minor, and maintenance numbering should be adjusting according the conventions mentioned above.