Component sharing with different variants?
If we have a component shared to multiple streams, where 90% of the files are common and the rest of the files are specific to the variant where it is shared to(stream). How do we handle this with flow ?(flow can be controlled only at component level as far as I know). Of course the common files we would like to flow to all the variants (streams), but not the special configuration files which are specific to the variant.
Any suggestions?
Accepted answer
Today we had a workshop with IBM with Geoff, proposal for config files is:
* put the config files in one component
* this component will be part of many streams for each of the ACME variants, so it will have A LOT of branches
* But other than a very complex branch graph there is no harm to it.
So in contrast to other configuration mechanisms where I first create the branch on file level and use it in RTC it is basically the other way around - create the streams and live with whatever branch this creates :-).
So we will go on with this approach and consider this answered for now. Thanks Simon & Geoff.
* put the config files in one component
* this component will be part of many streams for each of the ACME variants, so it will have A LOT of branches
* But other than a very complex branch graph there is no harm to it.
So in contrast to other configuration mechanisms where I first create the branch on file level and use it in RTC it is basically the other way around - create the streams and live with whatever branch this creates :-).
So we will go on with this approach and consider this answered for now. Thanks Simon & Geoff.
2 other answers
Hi Ratheesh,
it's only possible to flow the whole component between targets (streams, workspaces...)
So I would suggest to create own components for the variants that you have one component for all the common stuff and x components for the special variant stuff.
Than you can say you only want to share the common components.
The variant stuff has only to be shared with those targets (e.g. Repository Workspaces) which need them.
Hope this helps,
Simon
it's only possible to flow the whole component between targets (streams, workspaces...)
So I would suggest to create own components for the variants that you have one component for all the common stuff and x components for the special variant stuff.
Than you can say you only want to share the common components.
The variant stuff has only to be shared with those targets (e.g. Repository Workspaces) which need them.
Hope this helps,
Simon
Another approach is to have a "custom" directory in the shared stream, and to have a variant specific directory under that "custom" directory (i.e. ".../custom/var1", ".../custom/var2", etc.). Then flow all of the changes to all of the variants, but a particular variant only looks at its directory in the "custom" directory. And if there are a lot of files in the variant specific custom sub-directories, you can configure the load rules for a particular variant to only load the custom sub-directory for that variant.
Comments
Karsten Angstmann
Sep 05 '13, 8:36 a.m.Hi Simon, Hi Geoff,
I am a college of Rateesh and try to elaborate this a bit further:
Our problem is that:
I am not sure if Goeffs "folder" approach would help, because I do not see how the structure could remain constant. But the idea of remove not needed things via load rule is definitively interesting.
Geoffrey Clemm
FORUM ADMINISTRATOR / FORUM MODERATOR / JAZZ DEVELOPER Sep 05 '13, 11:41 p.m.I'll work with Rateesh and Karsten off-line, and then report back to the forum.