# Reference Application release process needs to be fixed

**URL:** <https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693>\
**Category:** Development\
**Created:** [November 12, 2015, 9:53am UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693 "2015-11-12T09:53:31Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![raff](https://talk.openmrs.org/user_avatar/talk.openmrs.org/raff/32/11894_2.png) [@raff](https://talk.openmrs.org/u/raff)\
**Post date:** [November 12, 2015, 9:53am UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/1 "2015-11-12T09:53:31Z")

</div>

As part of the last OpenMRS 2.3 release, we have released emr-api:1.11.1 with the [referenceapplication:2.3-SNAPSHOT](https://github.com/openmrs/openmrs-module-emrapi/blob/1.11.1/pom.xml#L46) dependency. As a result emr-api:1.11.1 cannot be used as a dependency in any module, because it requires at build time referenceapplication:2.3-SNAPSHOT, which no longer exists. The issue is we couldn’t have released emr-api:1.11.1 with the referenceapplication:2.2 dependency, because it needed some dependencies declared in referenceapplication:2.3-SNAPSHOT. At the same time referenceapplicatoin:2.3-SNAPSHOT could not have been released before emr-api:1.11.1 was released. We have pretty much the same issue in all our modules importing the referenceapplication pom.

We need to change how we release the Reference Application. First we need to release a pom that we import in all Reference Application modules (let’s call it the distro pom), next we release all modules and finally the distro (zip).

It means that the distro pom would be released with versions of modules that have not been released yet, but it is “ok”, since it is just a pom declaration. The distro pom would also have to be released independently from the project that assembles the distro zip, which would be the actual release of the Reference Application. It’s not ideal so I am hoping someone has a better idea 😄

---

<div class="post-metadata">

**Author:** ![wyclif](https://talk.openmrs.org/user_avatar/talk.openmrs.org/wyclif/32/19607_2.png) [@wyclif](https://talk.openmrs.org/u/wyclif)\
**Post date:** [November 12, 2015, 8:24pm UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/2 "2015-11-12T20:24:58Z")

</div>

In theory, no module should really be having a strong dependency on the reference application module since it is more like the glue that brings together everything to form the ref app distro. So emrapi needs to be fixed to have a weak dependency on RA module

---

<div class="post-metadata">

**Author:** ![raff](https://talk.openmrs.org/user_avatar/talk.openmrs.org/raff/32/11894_2.png) [@raff](https://talk.openmrs.org/u/raff)\
**Post date:** [November 13, 2015, 12:42pm UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/3 "2015-11-13T12:42:51Z")

</div>

I’m not sure what you mean by the weak dependency. I don’t know any mechanism in maven for that.

We import the reference application distro pom in modules included in the distro to manage dependency versions from one place and be able to test if they build and run correctly against the same set of dependencies.

---

<div class="post-metadata">

**Author:** ![wyclif](https://talk.openmrs.org/user_avatar/talk.openmrs.org/wyclif/32/19607_2.png) [@wyclif](https://talk.openmrs.org/u/wyclif)\
**Post date:** [November 17, 2015, 1:57am UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/4 "2015-11-17T01:57:00Z")

</div>

I mean no module should have RA module as a dependency in its pom file, i guess my other question is why does emrapi depend on the RA module?

---

<div class="post-metadata">

**Author:** ![raff](https://talk.openmrs.org/user_avatar/talk.openmrs.org/raff/32/11894_2.png) [@raff](https://talk.openmrs.org/u/raff)\
**Post date:** [November 17, 2015, 1:26pm UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/5 "2015-11-17T13:26:12Z")

</div>

It’s not the RA module dependency rather the RA distro dependency. Once again see

> <https://github.com/openmrs/openmrs-module-emrapi/blob/1.11.1/pom.xml#L46>

---

<div class="post-metadata">

**Author:** ![wyclif](https://talk.openmrs.org/user_avatar/talk.openmrs.org/wyclif/32/19607_2.png) [@wyclif](https://talk.openmrs.org/u/wyclif)\
**Post date:** [November 18, 2015, 4:22pm UTC](https://talk.openmrs.org/t/reference-application-release-process-needs-to-be-fixed/3693/6 "2015-11-18T16:22:04Z")

</div>

That was intentional and that should be the only snapshot version allowed when releasing a module that pulls it’s dependencies from the distro
