Initial add of defaria.com
[clearscm.git] / defaria.com / blogs / Status / archives / 000743.html
1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3 <html xmlns="http://www.w3.org/1999/xhtml" id="sixapart-standard">
4 <head>
5    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6    <meta name="generator" content="Movable Type 5.2.3" />
7
8    <link rel="stylesheet" href="http://defaria.com/blogs/Status/styles-site.css" type="text/css" />
9    <link rel="alternate" type="application/atom+xml" title="Atom" href="http://defaria.com/blogs/Status/atom.xml" />
10    <link rel="alternate" type="application/rss+xml" title="RSS 2.0" href="http://defaria.com/blogs/Status/index.xml" />
11
12    <title>Status for Andrew DeFaria: UCM Composite/Component</title>
13
14    <link rel="start" href="http://defaria.com/blogs/Status/" title="Home" />
15    <link rel="prev" href="http://defaria.com/blogs/Status/archives/000742.html" title="Starting a process without the DOS box" />
16    <link rel="next" href="http://defaria.com/blogs/Status/archives/000747.html" title="rlwrap and sqlplus" />
17
18    <!--
19 <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
20          xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/"
21          xmlns:dc="http://purl.org/dc/elements/1.1/">
22 <rdf:Description
23     rdf:about="http://defaria.com/blogs/Status/archives/000743.html"
24     trackback:ping="http://defaria.com/mt/mt-tb.cgi/110"
25     dc:title="UCM Composite/Component"
26     dc:identifier="http://defaria.com/blogs/Status/archives/000743.html"
27     dc:subject="General Electric"
28     dc:description="There is no formal training of this @ GE that I know of. I know of this stuff only through years of pounding it into my head by other UCM guys (and I constantly need both refreshment and research). It’s..."
29     dc:creator=""
30     dc:date="2010-09-02T13:52:39-06:00" />
31 </rdf:RDF>
32 -->
33
34
35    
36
37    <script type="text/javascript" src="http://defaria.com/blogs/Status/mt-site.js"></script>
38 </head>
39 <body class="layout-one-column" onload="individualArchivesOnLoad(commenter_name)">
40    <div id="container">
41       <div id="container-inner" class="pkg">
42
43          <div id="banner">
44             <div id="banner-inner" class="pkg">
45                <h1 id="banner-header"><a href="http://defaria.com/blogs/Status/" accesskey="1">Status for Andrew DeFaria</a></h1>
46                <h2 id="banner-description">Searchable status reports and work log</h2>
47             </div>
48          </div>
49
50          <div id="pagebody">
51             <div id="pagebody-inner" class="pkg">
52                <div id="alpha">
53                   <div id="alpha-inner" class="pkg">
54
55                      <p class="content-nav">
56                         <a href="http://defaria.com/blogs/Status/archives/000742.html">&laquo; Starting a process without the DOS box</a> |
57                         <a href="http://defaria.com/blogs/Status/">Main</a>
58                         | <a href="http://defaria.com/blogs/Status/archives/000747.html">rlwrap and sqlplus &raquo;</a>
59                      </p>
60
61                      <a id="a000743"></a>
62                      <div class="entry" id="entry-743">
63                         <h3 class="entry-header">UCM Composite/Component</h3>
64                         <div class="entry-content">
65                            <div class="entry-body">
66                               <p>There is no formal training of this @ GE that I know of. I know of this stuff only through years of pounding it into my head by other UCM guys (and I constantly need both refreshment and research). It’s taken me a while to get some of these UCM concepts into my head – I know, from experience you need to repeat such definitions, concepts and procedures again and again. That’s how I learned. So I’m glad to reiterate them to you… You’ll also need to read this message over and over again stopping and reflecting about what was just said. Be mindful that composite != component, etc.</p>
67
68 <p>It’s best to think of this as a Producer/Consumer relationship. You may, at times, where either hat. Your production is a composite baseline that organizes  a unique set of component baselines representing some functional milestone (e.g. The 2.1 release of Foundation). These are consumed by your “customers” who rely on the functionality set that the composite baseline represents. As such you should be mindful about how your “product” (Foundation) develops over time so that you can best serve your consumers/customers.</p>
69
70 <p>You’ve already performed an update of the Foundation jar set. The process or mechanics of it doesn’t really change that much. You join the Foundation project, perform your modifications, test, deliver to integration, perhaps retest the integrated changes and then produce a composite baseline (the process of doing so will force UCM to create new component baselines for all components that have changed in order to capture the change as a whole).  This composite baseline is then “advertised” to your consumers as a baseline they may wish to use. It can also be recommended (i.e. set to be the default for the rebase operation). Consumers set the baseline in their projects by using the rebase operation. Since they consume your component as non-modifiable they are free to rebase both forward and backward in the timeline of your composite’s development (If they are modifying it as well as you then things get messy – hence the recommendation and current configuration that they consume these components as non-modifiable).</p>
71
72 <p>Since Foundation is a UCM Project/Stream like everybody else’s it has an integration stream associated with it. When you perform your work you work on a development stream and deliver to the integration stream. You don’t need to necessarily deliver to integration – you could produce a composite baseline on your development stream and advertise it to your consumers. Such a baseline should be thought of as more “experimental” and “to be integrated later”. After all this is why you have an integration stream – to integrate changes. Consumers could then rebase their streams to your more experimental baseline and try it out. If it fails they can easily go back to the recommended set. If they like it then you may consider the changes represented by this experimental composite baseline as “good to integrate into the main integration stream”/”tested in the field”.</p>
73
74 <p>If such divergences are longer lived you may wish to create alternate streams to support such a development line. I’m not sure you’ll need this. If so we can talk about that when the time comes.</p>
75
76 <p>Finally consumers can override any of the component baselines in your composite set during rebase. Doing so gives you warnings and notates the component baseline as “overridden”. Normally you should only do this for good reason and only to resolve what’s called a baseline conflict. This is an advanced topic and I don’t see it ever happening to your product (producer nor consumer) given the current configuration of the composite sets.</p>
77
78 <p>Consumers of your composite baseline therefore get your changes via rebase operations. But remember the consumer is also set up as an integration/development stream project (i.e. multistream). So again the consumers integration stream is usually where you would integrate the change to its composite baseline set including your new composite baseline. That would be done via a rebase on the consumer’s integration stream. Then they test and say “Yup that new composite baseline from the Foundation guys works well” and they can create a new composite baseline of their project including your composite baseline. Developers, working isolated on their work and probably with the last set of recommended baselines for their product (i.e. CE_CSY_Lyra) then can again use rebase to pick up the new recommended composite set from their project (CE_CSY_Lrya) that will include your latest recommended composite baseline. The rebase operation “merges” any changes into their development stream. But with respect to your composite, since they consume it in a non-modifiable fashion, there cannot be any merge conflicts or even merging going on. So the rebase of your portion of the composite merely incorporates your new functionality. (Other changes in modifiable components of the composite may be merged and require attention).</p>
79
80 <p>Like I said you’ll probably want to read this message a few times…</p>
81
82                            </div>
83                            <div id="more" class="entry-more">
84                               
85                            </div>
86                         </div>
87                         <p class="entry-footer">
88                            <span class="post-footers">Posted by  on September  2, 2010  1:52 PM</span> <span class="separator">|</span> <a class="permalink" href="http://defaria.com/blogs/Status/archives/000743.html">Permalink</a>
89                         </p>
90                      </div>
91
92                      
93                      <div class="trackbacks">
94                         <h3 id="trackback" class="trackbacks-header">TrackBack</h3>
95                         <div id="trackbacks-info">
96                            <p>TrackBack URL for this entry:<br />http://defaria.com/mt/mt-tb.cgi/110</p>
97                         </div>
98                         <div class="trackbacks-content">
99                            
100                         </div>
101                      </div>
102                      
103
104                      
105                   </div>
106                </div>
107             </div>
108          </div>
109       </div>
110    </div>
111 </body>
112 </html>