How to track version changes to dependent components/libraries?
We have a project that has several components developed independently. Yet we have many releases all named as different products with different schedule开发者_开发百科s. We want to get immediate feedback when a component has a new version (probably related with a bug-fix), thus all products depending on that version to be updated as well.
A -> v1.0 (released 10.10.2009)
B -> v1.0 (depending on A, released on 11.10.2009)
A -> v1.1 (released 12.10.2009) ---> B must be updated
Of course this is just a simple example. There should be projects dedicated to this scenario, but I couldn't find. What do you do to handle such situations? What is the preferred (easy, yet powerful) way?
It highly depends on your projects (components) build setup. I am assuming that you have a repository for each components with an CI, here is a simple solution
- Use options normally provided by Hudson/Jenkins for checking-out and to build the component (google for hudson/jenkins plugins)
- Specify dependencies in CI
- Track for the changes after each check out
- If X has new code(commits) they update Y. This is very easy in CI (Hundson/Jenkins)
I have used CI for similar scenario. There any many plugins (opensource) for Jenkins to find the code changes, trigger notifications/other builds and build dependencies
精彩评论