Wikum Weerakutti

GSOC-2023: Coding Week 13

I want to start by congratulating all the OpenMRS GSOC participants on their successful project completions. Since my project spans 22 weeks, I have around 9 weeks left to go. This week, I focused on addressing specific tickets assigned to me. Let's review my progress on each of them.

Let's take a look at the progress of each ticket

serverTimezone doesn't seem to be respected by latest SDK

A user reported an error when attempting to create a server with a database URL containing serverTimezone=UTC. While various solutions were suggested, downgrading the SDK seemed to be the only effective workaround for them.

Forum post: Error creating server with SDK

Logs: sdk issue

I aimed to reproduce this error. Initially, I tried creating a server using serverTimeZone=UTC, but no errors occurred. Following my mentor's advice, I used MySQL 5.7 instead of MySQL 8 and even adjusted the Docker container's timezone to PDT. However, I still couldn't reproduce the issue.

docker run -p 3306:3306 --name openmrs -e MYSQL_ROOT_PASSWORD=root -e TZ=PDT -d mysql:5.7.43 --default-authentication-plugin=mysql_native_password -h 127.0.0.1

Given the inability to replicate the problem and based on discussions, we concluded that the problem might be specific to the user's setup. As a result, we closed the ticket with the resolution that the error cannot be reproduced.

Support the offline property for the O3 frontend

Mentors asked me to check whether we support the offline property of the build command using the "spa.offline" parameter. Adding the "spa.offline" property to distro.properties file should generate spa-config.json file the following property.

{
  "offline": "disable"
}

I tested this and found out that we already support this. So we decided to close this ticket.

SDK Setup should support non-interactive usage for all options

The Main objective of this ticket is to update the SDK user experience. When the time this ticket was created, SDK help plugin was outdated and lacked information on most plugins and parameters. As a part of my GSOC project, I have already updated the documentation to the modern capabilities of the SDK.

Commit: SDK-315: Enhance the documentation system for all plugins

Now we are using a yml file to generate the SDK documentation. Because this is hard to maintain, it is ideal if we could generate the documentation using annotations and Javadoc comments. Mentors asked me to take a look at the Maven HelpMojo plugin and how we could integrate into the SDK. So I took a look into that and found that we could generate a documentation using the following command.

mvn help:describe -DgroupId=org.openmrs.maven.plugins -DartifactId=openmrs-sdk-maven-plugin -Dversion=5.3.0-SNAPSHOT -Ddetail

My first thought was to execute this command within the help plugin, but my mentors advised me not to do it. They asked me to take a look at HelpGeneratorMojo. This will make a file that can be used to generate the documentation. I am still looking into how I could implement this.

My primary goal for the upcoming week is to finalize the pending ticket. Additionally, I remain open to identifying and tackling any other tasks that may arise. Thank you for your continued support, and I look forward to sharing my progress with you next week!"