Hi,
We started to annotate packages with their export versions (aka. semantic versioning [1]) a while ago. After the 1.2 release we enforced proper API management through the baseline functionality of the Maven bundle plugin. This means that on current trunk the build fails should an API change but the related package export version is not reflecting this.
So far this approach worked relatively well. Going forward however I presume things to get more complicated. Once Oak 1.4 is out we are going to have to maintain a 1.4 branch while continuing development on trunk (i.e. 1.5). With this we suddenly will have two potentially diverging branches, which begs the question on how to do release from these branches while at the same time maintaining consistent semantic versions of the contained packages across the branches?
Michael [1] http://www.osgi.org/wp-content/uploads/SemanticVersioning1.pdf [2] https://issues.apache.org/jira/browse/OAK-2006
