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:
-
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.
-
Need “Release Technician” privileges on SourceForge in order to be able to create the releases folder and upload files
-
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
-
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)
-
Forcing a checkout of the final version of the platform to build the distribution WAR file and standalone in case of any roll-back
-
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):
-
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.
-
Not having to upload standalone and distribution WAR to sourceforge
-
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