views:

73

answers:

1

I have projects A and B. Both projects use component C (a graphical library for example). I get a issue ticket reporting that A has a bug. I determine that really the bug is in the C component. I create a branch for C, fix it, check back in, retag it, change the dependencies on A and create a new A install.

Question: How can I make B aware of the change in its C component so it can benefit of the bug fix detected in A? What would be a good tool/script to control such configuration management scenarios? I tried with Jira but I could not find a good way of making two projects dependent of one or more components.

A: 

Configuration management always seems to be more 'hand-wavy' than it should be. In short, it really depends on you local policies.

My suggestion would be to use a Continuous Integration server like Hudson or Bamboo. I know that Hudson allows you to create project dependencies so that the latest build of component C will automatically be imported into both A and B.

However from a configuration management point of view, you really want control over which version of C is used in which build of A and/or B, so you might want to dig a bit deeper.

Cogsy
I see, so you think fixing C should not necessarily imply that B should start using the fixed version?
Otávio Décio
In most cases B would benefit from using the latest C version. However some organizations/government departments require extensive testing of B after it uses and upgraded C. If B isn't broken, why fix it? Usually demonstrating the bug in B would lead to upgrading C anyway.
Cogsy
To put it more simply; the fixed version of C may introduce new bugs in B.
Cogsy
That is a good point. So although C might be a good fix, it needs to be proven beneficial to B through regression testing, I imagine.
Otávio Décio

related questions