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
Major and minor are stored In the build.properties file
Database version is stored in the "N.N-to-latest" diff script source__openmrs-trunk-metadata-model
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.