Managing Bahmni's openmrs modues in OMRS nexus

Good day,

As part of migrating bahmni CI from GoCD to Github Actions, we are also refactoring our artifact publish approach and moving from S3 to Nexus i.e. making Nexus as the only source for artifacts (we will still support existing artifacts on S3 for a while).

We have a few modules such as openmrs-module-rules-engine and openmrs-module-episodes (group id as org.openmrs.module) which was originally written with an intention to be a reusable across OMRS distro. We wanted to check with openmrs if there is value in having these artifacts in OpenMRS nexus repository (Bahmni can continue to support these modules). So far these modules are only used by Bahmni to my limited knowledge.

As a first step we were thinking if the Github actions could publish these artifacts to OMRS nexus (would require ORMS nexus secrets) and then later we decide if the code can go to ORMS github org or stay in Bahmni’s github org.

Would like to hear your views @grace @mksd @dkayiwa @ibacher on what challenges or feedback you may have on this approach. If you dont see much value or have concerns, then we will go ahead and refactor the groupid to org.bahmni.module and manage it within Bahmni’s nexus

Thanks

1 Like

We actually migrated from Nexus to JFrog Artifactory, a number of years ago. Migrating OpenMRS to use Artifactory and Bintray – OpenMRS.org

AFAIK, these modules are only used by Bahmni. I would be really surprised (& really happy) if others are using it without Bahmni.

It’s fantastic to have contributions like this and we should make sure to advertise these modules appropriately so that other implementations can take advantage of them.

Currently, the policy we have around write access to our Maven repo is found here. Essentially, the OMRS Maven repository exists to publish community-maintained modules, that is those that live under the OpenMRS GitHub Organisation. Generally speaking, we publish these artefacts using Bamboo.

Basically, while the up-shot of this is that we probably can’t directly provide you credentials to push to our Maven instance, at least unless we first migrate those repositories to the OpenMRS GitHub organisation, there are some other things we might be able to offer.

  1. We have, in the past, added entries to proxy other Maven instances through the OpenMRS instance. I think we could likely setup a proxy for the Bahmni Nexus server, which would still allow people to access modules that way.

  2. What we actually use to try to advertise modules that can be published by anyone is the Addons server. Currently, this server doesn’t directly support, e.g., arbitrary Nexus repos, but we could extend it to do so.

Thanks @ibacher appreciate your time

Looking at the options, would it rather make more sense to just move these repos into OMRS organization and maintain it there as the first step? Now I do understand we cant just throw a repo to be supported by the community (given that its currently only used by Bahmni alone) - just wanted to know what would it take to do the transition if possible (while bahmni team provides majority of the support). Thanks!