First Time Platform Release Manger's Experience - OpenMRS 1.11.6

This short post is sharing my experience with releasing OpenMRS 1.11.6 and what I have learnt in the process.

Background: I have only been working with OpenMRS for about 8 months now, and in that time have contributed to a number of modules in that time, so I figured this was an opportunity for me to get a better understanding of the release process, and stress test the documentation, https://wiki.openmrs.org/display/docs/OpenMRS+Platform+Release+Process#OpenMRSPlatformReleaseProcess-MaintenanceRelease, by following it to the letter.

Building the release proved to be challenging as I ran and resolved a number of issues which have been updated to in the release documentation:

  1. Upgrading an old version of maven-release-plugin from 2.1 to 2.5 which was causing strange errors in loading one of the required dependencies.

  2. Need “Release Technician” privileges on SourceForge in order to be able to create the releases folder and upload files

  3. Javadoc validation during release:prepare fixed by adding the argumments -Darguments="-Dmaven.javadoc.skip=true" which does not seem to work for Java 8 though

  4. Rollback of the release due to errors using mvn release:rollback in case of errors during mvn release:prepare (the tag being released needs to be manually deleted after this)

  5. Forcing a checkout of the final version of the platform to build the distribution WAR file and standalone in case of any roll-back

  6. Updating my maven settings.xml to http://pastebin.com/JFkdHY7c to enable deployments to Nexus

Wish list - here is what I think can make this process easier for future releases (Maven automated deploy):

  1. Automated building of standalone and distro-platform WAR files once the release has been built. These are manual steps in separate projects that have to be checkedout, version in POM files edited then run manually.

  2. Not having to upload standalone and distribution WAR to sourceforge

  3. Documentation on what happens during the deployment to Nexus which is still a blackbox not sure what the errors mean, and how the Nexus artifacts integrate with the rest of architecture.

To close off a special shout out to @dkayiwa, @k_joseph, @maany, @maurya not forgetting @r0bby for their patience and support during this process

4 Likes