<html><TITLE></TITLE><DIV mce_style="float: right" style="float: right;">
</DIV>
Current OpenMRS Releases
If you are looking for downloadable builds of OpenMRS, see the Release Note Import page.
A running openmrs application displays its version in the bottom footer. A small red "i" will appear next to an expected database version that is different that what the current code is thinking it is working against. If this is the case, the file labeled openmrs-X.Y-to-latest-mysqldiff.sql should be run ("source"ed) on the current database.
Versioning Explanation
The format for OpenMRS versions:
major.minor.maintenance.database(-modifier]
How/when to Choose a Version Number
We follow the Apache Versioning conventions.
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
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.
tip|The maintenance number is not permanent for a branch. If a branch is getting merged in sooner or later than expected, the branch could change. When this happens, all sqldiff procedure calls will need to be modified to use the new maintenance number.
Database
The database number should change with every change that is run on the openmrs database. Each change incrementally brings the current data and schema up to the latest that the related code is expecting.
info|We are
planning
to phase out this database number from the versioning scheme.
Side note: The database version should use double digits. (Start with 01, 02, etc). This allows for proper sorting and storing when 10+ database diffs go through.
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
How to Change OpenMRS Version
- Step
- by
- Step
- goes
- here
The current openmrs and database version are stored in variables on the OpenmrsConstants class. An openmrs restart is required to update the footer display with a updated database.
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.
</html>