Hi all, 

As you may have noticed, I've failed to fix the snapshot build. Even though it 
doesn't produce releasable artifacts, I think this build is important to 
validate the interoperability of our codebase, and I'd like to get it fixed.

The problem is a cyclic dependency between the semantic versioning plugin 
(which uses util to process manifests) and the util bundle (which uses the 
versions plugin to validate its versions).

I can see three solutions, none of which are perfect:

1. Pull the versions plugin out from the main build, as we do for the eba and 
esa plugins, and parent.
2. Update our version mangling in the build so we always build with the 
released version of the plugin. This is only a partial solution, since it only 
works when the util bundle doesn't actively require snapshot version function, 
and it relies us to remember never to update the util bundle to use the latest 
versions snapshot. (I think this is why the build was still failing, even after 
I tried this fix, a while ago - it could never have worked until we released 
the versions plugin!)

More generally, it means we can't drive new function in the versions plugin in 
our build until it's released, which I think would be unfortunate.

3. Strip the util dependency from versions by cutting and pasting needed code. 
Not clean, not DRY, not OSGi-ish, but it fixes the problem.

My personal preference is for 1, but I don't think it's an easy choice. What do 
others think?

Holly

Reply via email to