Wiki Spaces

Documentation
Projects
Resources

Get Help from Others

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

Documentation

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

Overview

 

Release Process

Release Planning

How do things make it into a specific release or on the Technical Road Map  See the page on Technical Road Map 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?

Prerequisites:

  1. OpenMRS ID: This is the basic account that you create when associating with OpenMRS.
  2. SourceForge account: Every release of OpenMRS is hosted here, you would be uploading the released version here. You have to create a SourceForge account and then create a new case at OpenMRS helpdesk requesting your user to be given the rights for OpenMRS account.
  3. OpenMRS.org account: This is not your OpenMRS ID, it is a WordPress account where you will need to create a blog post once you release the OpenMRS version. Create a new case at OpenMRS helpdesk requesting access for the OpenMRS.org account. Help desk will create the account for you.
  4. CI Bamboo Account: The actual release takes place here. You will need your access to this account to finally release the version. Create a new case at OpenMRS helpdesk requesting access for this account.

You might need other additional permissions depending upon if you are managing OpenMRS Platform or OpenMRS Reference Application.

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 Road Map. 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.

Am I in it alone?

No, we do pair RM here at OpenMRS.  The two RMs coordinate on tasks, reporting, etc. 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:

 

11 Comments

  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:

  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 openmrs-standalone-1.9.0-RC.zip dkayiwa@frs.sourceforge.net:/home/frs/project/o/op/openmrs/prereleases/OpenMRS_1.9.0_RC/

  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 (http://mavenrepo.openmrs.org/nexus/content/repositories/releases): Failed to transfer file: http://mavenrepo.openmrs.org/nexus/content/repositories/releases/org/openmrs/openmrs/1.11.0/openmrs-1.11.0.pom. 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 - Releasing Chart Search Module 1.4.x Closed