yes it is ! On my current project I have some definitions like this :

 * component. Each component covers a functionality of my project and
   can be composed by several bundles (typically : one bundle for data
   model and one bundle for UI). Each component has its own versioning
   policy and so its own git repository. Each component version is a
   git tag.

 * distribution : this is the final application delivery. It is
   composed by set of versioned component + the OSGI container (virgo
   currently) + a python installer to help the configuration of the
   application + some others things I forgot ;)

Currently I have a custom python tool to define the distribs (ie : versions of components for each distrib) and build it from the components git repositories...

You can have a look on that tool here : https://github.com/echinopsii/net.echinopsii.ariane.community.distrib

At the time I wrote this distribution tool I didn't see any other tool to help me manage and build project dispatched through many git repositories. If you know any tool covering that need I'll be happy to test it...

Mathilde

On 11/08/2014 13:29, Christian Schneider wrote:
Very good question. We have the same issue in Apache Aries and I think it is a reason why aries is still on svn. So a good solution for the problem of multiple modules with possibly different version numbers on git is highly relevant.

Christian


Am 11.08.2014 12:25, schrieb Bulu:
Hi all

I'm new to Git and want to use it for my new OSGi project. The project will be split in some ~20 bundles which are intended to work together and form a single shippable product with a unique release version number. Nonetheless, at a later time, some of these bundles might be used outside of that product in separate projects.

I would like to have your experience what works and what doesn't. (links & readings also welcome)

First purely OSGi: the full product version 1.0 is comprised of bundles each of which has a different version number in itself. Where do you store that information? Does each bundle get to know that it is part of a parent release 1.0? Is Maven the (only? best?) way to go? The bundles will still be tightly coupled - eg. change the API, change the impl, change all consumers. So is the "typical" release process to have all bundles in -SNAPSHOT and only change that to a valid version when a release is getting prepared?

Now I want to use git for this. Do you recommend having
1. one repo per bundle (what tools to use for managing that many repos?)
2. one branch per bundle in a single repo
3. use git submodules
4. other approaches?

My "main-line" will probably be latest&greatest of all bundles. I will want to run integration tests which assembles the fully working product and then runs the tests. Are there any advantages or disadvatages to any of the approaches above (eg. for the continuous integration, building from sources etc)?

Thanks for your answers.
  Philipp

PS: I understand my question is not specifically linked to Felix (although, that's what I use). If you consider this too much off-topic, please recommend another forum.

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




Reply via email to