Step 1) Separate your API interfaces into their own bundles, with their own release cadence. Step 2) Code solely against APIs, and against version ranges ( we use [1.0.0,2.0.0) style.

Given things in OSGi land are service/interface orientated this works well.

We try to follow the semver style of version number, changing the major (1.0.0->2.0.0) for backwards incompatible changes, and a minor (1.0.0->1.1.0) for backward compatible, but forward-incompatible changes. Any downstream bundle that requires the new API changes and simply change their lower-bound in the range: [1.1.0,2.0.0)




On 19/06/12 1:19 PM, James Carman wrote:
We are an OSGi shop.  Thus, we have a lot of "bundle" projects that
have their own independent release cycles.  We have a hierarchy of
parent POMs and many utility libraries.  When we change one of the
upper-level POMs (like the "base" for all of our OSGi bundles), it is
very time-consuming to point all of the downstream projects at the new
version.  How do folks typically handle this?  There has to be an
easier way.  I found the versions plugin [1], but that can only get
you so far.  You still have to cut each of the releases and re-point
everyone at them.  Yuck!

[1] http://mojo.codehaus.org/versions-maven-plugin/

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to