Current OpenMRS Releases

If you are looking for downloadable builds of OpenMRS, see

Versioning Explanation

The format for OpenMRS versions:


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.


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.


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.


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.


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


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


development pre-release, not for public consumption


early release, may be used by beta testers


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:


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