OpenMRS SDK

OpenMRS SDK is a tool created for OpenMRS developers to help them be more productive when working on OpenMRS core and modules. It includes features like setting up, running and debugging servers, creating modules, building distributions as docker images, fetching code, making pull requests and many more.

Almost 8 months passed since the OpenMRS SDK 3.0 release. Over that time we went from just a few to over 350 developers using it (who agreed to send anonymous statistics) and released 21 versions including the latest 3.8.2 release.

The OpenMRS SDK had its premiere in 2013. It was a set of command line scripts with a functionality limited to setting up a server and installing modules. It quickly became obvious that command line scripts were not the best choice. They had to be written and tested separately for Linux and Windows. Releasing was tedious and manual. Installations and upgrades were also hard to automate across systems. We needed to approach it differently.

OpenMRS SDK 2.0 was the first release implemented as a Maven plugin, which solved many of the problems we had with command line scripts. Maven is a build tool of choice for OpenMRS core and modules, which makes it a prerequisite for all OpenMRS developers.

Maven plugins are written in Java and can be easily implemented in an OS agnostic way. The Maven Central repository is perfect for distributing a plugin since Maven handles fetching plugins from Maven Central and checking for upgrades out of the box. In addition Maven provides a testing framework for plugins.

In order to be able to iterate over features and fix bugs quickly, we setup a fully automated release process using Travis-CI, which can be triggered by creating a tag in git. We can roll-out a new release within hours to all our users without any action on their side.

It has been an exciting journey to lead the project helping OpenMRS developers to be more productive. We often hear positive feedback about the tool. Developers are sending feature requests and bug reports on regular basis.

On the last OpenMRS Implementers Meeting hackathon in Uganda, there was an unanimous agreement that one of the best things that has ever happened to simplify OpenMRS development is the SDK.

The 3.x line of SDK was developed thanks to the SolDevelo company, which assigned 3 developers Adam Grzybowski, Paweł Gutkowski and Tomasz Marzeion to work on the project.

The 1.x and 2.x lines of SDK were mostly done thanks to Google Summer of Code 2013 (by Chris Niesel) and 2015 (by Dmytro Trifonov).

My involvement as the project lead was possible thanks to Regenstrief Institute.

Big thanks to everyone, who contributed to the project and helped make it such a success!

Please see http://om.rs/sdk to learn more about the tool!

Tags:

No comments yet.

Leave a Reply