Wiki Spaces


Get Help from Others

Q&A: Ask OpenMRS
Discussion: OpenMRS Talk
Real-Time: IRC Chat | Slack


Page tree
Skip to end of metadata
Go to start of metadata
On this page:


Release Process

Release Planning

How do things make it into a specific release or on the Technical Roadmap  See the page on Technical Roadmap Planning.

OpenMRS has two "products" that are released:

  • OpenMRS/Reference Application – this is the web application (reference application) that people generally think of when they think about OpenMRS as an application. For specifics on releasing a new version of the reference application, refer to the OpenMRS Reference Application Release Process page.

  • OpenMRS Platform – this is the API and web services used by OpenMRS and made available so that it can be used by other web applications.

Being the Release Manager

The role of the Release Manager in OpenMRS is to handle the process of getting code stabilized, packaged and released to the general public. If we were building planes, the RM would be the guy looking at the construction checklists, painting the airline logo on the fuselage, and delivering the finished unit to the customer.

As such, there is no real development associated with being an RM. All the work you have to do is non-coding: coordinating people, centralizing information, and being the public voice announcing new stable releases. A lot of the tasks that the RM has to do are repetitive, and not automated either because nobody has broken down and written the tools yet, or because the tasks require human validation that makes automation a little superfluous.

So, if you are the Release Manager. What do you need to do?

How does OpenMRS choose what goes into a release?

For the most part this is decided by the leadership group.  Larger tasks are decided upon way ahead of time and put onto the Technical Roadmap. The RM will really be participating in the Release Prioritization Meeting to pick out a lot of the smaller tickets that are able to be completed on time.

How much time does it take to be a release manager?

The time requirement varies from week to week, but shouldn't be more than 4 hours.  The major time investments come when doing the final testing and writing up the wiki pages. (like these: Platform Release notes 1.11.0 and Release Notes 2.3).  But usually you're just checking in with ticket/module owners to make sure they're going to hit the deadline.


To be a Reference Application Release Manager you need to attend and several squad meetings especially the Project Management meeting and to be a Platform Release Manager , one needs to be a platform squad  / Project Management Squad member , which means attending meetings,

Am I in it alone?

No, the Release Management Manager will be your guide and support, he will be your first point of contact for any issues or guidance you need. Also release managers for previous releases act as a mentors.

Release Process

OpenMRS develops two software products OpenMRS Platform and OpenMRS Reference Application based on OpenMRS Platform. The release process for both the products is different. The release process for OpenMRS Platform and OpenMRS Reference Application are as described in detail in these links:

Release Manager Selection

Before applying for being a Release Manager please note that release process is quite involved and requires time commitment in bursts.

The selection process of release manager involves announcing the requirement for a new volunteer release manager for a specific release, time till which responses will be accepted and announcing a mentor that will guide the new volunteer release manager. After new volunteers respond for being the release manager, these following criteria are taken into consideration for selecting a candidate:

  • First Time  Release Manager? (they are given first preference)
  • Previous Engagement with OpenMRS community in OpenMRS Talk
  • Previous development work in the community (any contributions to code visible in github) 
  • Basic DevOps Experience (Creating an SSH Key, logging into a remote server, sending and receiving a file from a remote server, managing tomcat in a remote server)


  1. We should consider adding MD5 checksums to the download package that gets posted to the mirrors, given likelihood for poor connectivity in many places that download OpenMRS.

  2. I have tried to clean up part of this page and add in more accurate detail about publishing the releases. So far, I've only updated the "maintenance release" section. Other sections should be updated accordingly.

  3. If uploading to sourceforge, the syntax that worked for me is:

    rsync -e ssh openmrs.war
  4. Also see the Managing the Maven Repository wiki page for uploading artifacts to the maven repo

    1. Adding the -P switch helped with my poor connection, which keeps breaking, by resuming the upload from where it was before the connection interruption:

      rsync -P -e ssh

  5. I keep forgetting this. So am putting here as a comment for remembrance. This is how i usually delete the "latest" tag:

    git tag -d latest
    git push upstream :refs/tags/latest
  6. Then to tag "latest" as a particular commit hash (e.g 60bd9bce5888f64d78ea7db4a68b8bd932f36bb6), i use this:

    git tag -a latest 60bd9bce5888f64d78ea7db4a68b8bd932f36bb6 -m "Tagging OpenMRS 1.9.7 as latest"

    git push --tags upstream


  7. To obtain the whole list of contributors of the code at github, i used git log command something like: 

     git log --pretty=format:"%cn" --since="2012-06-06" > /home/user/Desktop/openmrs_contributors; sort /home/user/Desktop/openmrs_contributors | uniq > /home/user/Desktop/openmrs_contributors_unique; rm /home/k-joseph/Desktop/openmrs_contributors;

    Then checked for all of the contributors in the file at: /home/k-joseph/Desktop/openmrs_contributors_unique

    "%cn" returns contributors names and for some who use various names, i had to check for them and manually eliminate duplicates.

    The above commands will return all contributors names each on a separate line within the current branch of the current git repository from 2012-06-06

  8. I have come across this error when i ran, mvn clean deploy --batch-mode command, i hope to resume looking for it's solution when i get back, but in-case someone knows the way about it, please share it with me as i get back.

    here is the error message:

    [ERROR] Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy (default-deploy) on project openmrs: Failed to deploy artifacts: Could not transfer artifact org.openmrs:openmrs:pom:1.11.0 from/to openmrs-repo-releases ( Failed to transfer file: Return code is: 400, ReasonPhrase:Bad Request. ->


  9. It looks like the artifacts were however uploaded even when showed this error.

  10. Here is an example on how to perform a manual module Release process;

      CSM-116 - Getting issue details... STATUS