Workflow for development, release and versioning with OSGi / bndtools: real-world challenges (continued)
Seeing the advantages of the OSGi modularity level, we want to introduce it into our daily workflow, based on Eclipse and the bndtools plugin.
In this talk we concentrate on the modularity level, independent of whether the service layer is used or not.
Initial requirements for our research group at Siemens, Corporate Technology include:
- integration of OSGi with the currently-used VCS (subversion, hg, git)
- integration of OSGi with our Jenkins CI server
- automated creation of deployable applications, which might include a collection of artifacts, start scripts, installers
- workflow easy of use for developers
- meaningful bundle/package versions
As this process proved less straightforward than one might expect, we present the challenges we encountered, such as:
- consistent versioning of bundles - both the conventions and the tooling support
- internal bundle release for the other developers
- reproducible deployment artifacts for external customers
- partial checkouts: checkout from a VCS repository only the projects relevant for the current developer task, without all the required dependencies (both third party and intra-project dependencies)
- usage of remote OBRs with mandatory authorization
- heterogeneous development OSs (windows, linux)
In this talk we document our quest for a practical workflow: the relevant use cases, the analyzed solutions, the various criteria that came into play and, finally, the chosen solution for our team.