GSoC 2023: Improving the OpenMRS Developer Experience: Updating the SDK

 

Primary mentor

@Daniel Kayiwa   

Backup mentor

@Joshua Nsereko

Assigned to

@Wikum Weerakutti

Abstract

OpenMRS has a powerful SDK, which contains many useful features for developing OpenMRS. However, as OpenMRS has continued to evolve, the SDK has grown increasingly brittle. This project seeks to revamp the SDK to better support OpenMRS's needs going forward. The main goal here is to revamp the tooling so that it better supports newer versions of OpenMRS while providing a legacy interface for the things that work today.

Required Skills

  • Excellent Java skills

  • Some experience with Maven (having written a Maven plugin before is a huge plus)

  • Experience with or desire to learn about refactoring

Project Rating and length

Long

350 hours

Objectives

  • Spin-off a version of the SDK to support OpenMRS 1.x releases based on Java 7

  • Revamp the SDK to take advantage of Java 8 features

  • Upgrade the SDK to use a recent version of Maven as the core

  • Improve the documentation system for all plugins

  • Rework the build-distro and setup commands so that we can specify per-version customizations. For instance, for OpenMRS versions from 2.0 - 2.3, the SDK should default to producing Docker images based on Java 8. For 2.4+, basing Docker images on Java 11, etc.

Resources

OpenMRS SDK