What is the development workflow?


I am setting up a development machine for OpenLMIS. I went through the new developer onboarding document New Developer Onboarding with OpenLMIS - Google Docs mentioned on Developer - OpenLMIS and have started running openlmis-ref-distro.

Now how do I make code changes and test that my code works?
Eg. I want to make some code changes to the notification email sent by the requisition service to approvers when a requisition is created. Now, what is the way for me to get this change reflected in running openlmis-ref-distro and test that it works when I create a new requisition?

Hello @hithacker,

Welcome to the OpenLMIS community! That’s great that you have been able to stand up the Ref Distro.

Since OpenLMIS uses a microservice architecture, you’ll need to figure out which component/service you want to make changes to. Once you have done that, you will build a custom Docker image of that service and then stand up the Ref Distro using your custom image for that service. For example, you want to make changes to the Requisition service, then you build a custom Requisition Docker image then use that for the Ref Distro.

For your particular example of changing the email sent by the Requisition service, it is unique, because you likely won’t need to make any code changes, as many of those email messages are configurable. See openlmis-requisition/messages_en.properties at master · OpenLMIS/openlmis-requisition · GitHub for details. You would just need to pass in custom values for those message keys and stand up the Ref Distro again. If this wasn’t sufficient, then you might need to make code changes to the Requisition service.

Please feel free to ask further questions.