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.
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.