EMR-API Build Broken

So the CI pipeline appears to be broken–EMR-API is breaking after the following commit (thought it does seem like that is a red herring because nothing seems relevant in it):

https://ci.openmrs.org/browse/TRUNK-LATEST-245/commit

It’s failing on both OpenMRS and PIH CI, so I’m assuming it’s not a fluke. The errors complain about the HibernateInceptor and the Event module.

Might be worth looking at anything else that has changed in the few hours since the last successful EMR-API build?

I have to run now, but wanted to flag it before I left. @bholagabbar @wyclif

Actually, one more thing to look at… it might be these java 7/java 6 build incompatibility thing we’ve been seeing lately.

A bit of a brain dump here, but I think we made need to run the entire Rep App build process after each Ref App module release… though this might lead to builds beyond builds… but this is what I think happened yesterday:

  1. Event module was update to work with RefApp-2.0 (module was broken up into submodules)

  2. Event module was released, so ref app distro pom was updated to rely on this new release

  3. The next time EMR-API was built (which happened several hours later, after a benign change to OpenMRS Core) it tried to build against the new Event module for the first time (because it uses the ref app distro pom for it’s dependencies) and failed. But the change to OpenMRS Core gets flagged (incorrectly) in bamboo as the commit that caused the issue.

@darius @cintiadr @bholagabbar @wyclif

Mark

Oh, and thanks @dkayiwa for fixing!

I think the theoretically correct approach here is that for any update to the pom.xml file in openmrs-distro-referenceapplication we need to trigger builds of all modules that import the distro’s pom.

As we have things set up now, this would probably cause an infinity cycle (because the refapp distro build is also the “packaging” build that is triggered by any of those modules.

Maybe the solution is to have another bamboo plan that merely looks for changes on the refapp distro repository (but doesn’t actually build anything), and have the 5-10 modules that import the distro pom be triggered by this one.

(Unless @cintiadr knows some magic way that just involves changing one line in an existing script. :slightly_smiling:)