Details
-
Improvement
-
Status: Closed
-
Major
-
Resolution: Fixed
-
None
-
None
-
None
Description
As discussed on the mailing list, we want to upgrade to Bndtools 2.2.2 and enable support for baselining. Baselining will give us a lot of tool support to ensure our code (bundles and exported packages) is semantically versioned. To leverage baselining support there are a couple of things we need to do:
- We need the to start putting @ProviderType and @ConsumerType annotations on all our APIs. In fact, we need to “retrofit” this to our 1.0.0 release to ensure the baselining works correctly. These annotations are not magically available, but we can add them to the global build path (cnf/ext/defaults.bnd).
- We need to keep a copy of all released bundles (the latest version of each) in a repository to baseline against. Because we don’t want our build to break when we’re off-line I propose we put them in a local repository. We probably need to build those artifacts with the Eclipse compiler to prevent problems that will otherwise occur because of differences between ecj and javac so: checkout with Eclipse, build, collect all bundles from "generated" folders and publish them into the releaserepo in cnf. We also want to add them to the -deps artifact so people can easily get started with a release with baselining enabled.