From: <infonuovo@email.com> To: "'Geoffrey Clemm'" <geoffrey.clemm@rational.com>, Cc: "Alan Babich (E-mail)" <ABabich@filenet.com>, Date: Thu, 12 Aug 1999 09:33:57 -0700 Message-ID: <000201bee4e0$ad382e20$0100007f@conclave> In-Reply-To: <015a01bee441$b4bc7790$0d1b15ac@aftershock.atria.com> Subject: RE: Build management with Delta-V %To: Geoffrey Clemm Delta-V Working Group %Cc: DMA CSDocs Subcommittee %From: Dennis E. Hamilton %Re: Build Management with Delta-V - separation from versioning Geoffrey, I support the idea of derivation and building being separated from versioning. I also notice that there are some cool interdependencies to deal with. (I just slapped my forehead and said "ahah!") Here's what I make of it: DERIVATION VERSUS VERSIONING: NEAR ORTHOGONALITY Oddly enough, abstracted models of compound/structured documents (e.g., where the component dependency might well be some sort of derivation dependency) are closer to build cases and fit nearly-orthogonally to versioning as well. The DMA CSDocs model is abstracted enough to have room for this, although I hadn't looked at this particular case very closely. [To test ideas of the orthogonality with versioning, I do a lot of thought experiments on how I manage my documentation and web projects using a software CM system (viz., VSS). I just hadn't doubled-checked and confirmed that the abstraction holds up for build management. It does.] An interesting versioning interdependency comes up in both the compound-document and the build-management views though -- the desire for structures that track the latest version in the dependencies. In DMA, the "pure" dependency model is among revisions, and doesn't float or track in any way. That is so for a lot of reasons, and we though that we only needed to specify that in the DMA 1.0 model. [In effect, dependencies are always "pinned" and the standardized globally-unique references to DMA 1.0 documents are always references to versions. Getting the latest version depends on additional protocol, as in making queries. We don't automatically point to an abstracted resource and expect to get the latest one. This looks simply like a dual of Delta-V, as I understand it, since there is a straightforward way to get from one view to the other.] In exploring different requirements checklists from folks, a common theme is in having ability to form a dependency structure in which the latest versions of the components are understood. Our conclusion is that both forms of dependency ("pinned" and "floating") need to be available and people need the ability to say what they want for a particular dependency structure. We are adding the "floating" dependency relationship as a consequence of the compound/structured-documents work. It doesn't change the abstract versioning model beyond ensuring that the implied beneath-the-covers interactions occur and referential integrity holds up. INTERESTING INTERACTIONS: DERIVATIONS AND VERSIONS Here's what I notice out of this: 1. In dependency structures, in a versioned world, it is important to be able to represent specific derivations based on the specific versions that went into the creation of the composite result. This is where there is audibility, repeatability, etc., as required in rigorous document management regimes. The same principles apply to electronic documents as to software. The parallels are pretty clear. (I haven't checked ISO 9000 requirements, but I would expect that this level of rigor and certainty is mandated.) 2. In practical settings, including what people do in building software releases using CM software and interactive development environments, one wants to establish a structure which is an abstraction -- or scheme -- for making a derivation based on the latest versions of (stipulated) components. This is a common request, and it is so much how developers approach systems that it would appear that this is the critical case, rather than a highly-productive tool atop a more fundamental management requirement. 3. One could use a common object/data model for the relationships employed in (1) and (2), and we are taking that approach with DMA CSDocs. Then, what happens when a structure of form (2) is manifested to have a concrete result at someone's request? If this is meant to be a committed action, and versions are kept for those, then somehow a new structure of type (1) needs to be made in consequence, reflecting the actual instantiation that occurred. That is, a new instance of the derivative object needs to be established somehow, so that it is auditable, reproducible, etc. Presumably the floating structure is intact. So, it is important to be able to locate the static cases from the floating structure, at least well enough to be able to tell if the current floating structure determines an existing static structure (i.e., the thing is already built). 4. Are there any published object/data models that account for all of (1-3)? When work gets done in this area, the nuances of (3) need to be covered, it seems to me. I wonder if a new method is required for getting a current static version of a floating derivation structure. I think checkout or get-version operations would be badly overloaded if we made them cover this case. Oh, I guess "Build" would be it, huh? Duhhh. Something that is as useful in working with compound documents as it is in working with software structures. Hmm, that simplifies a lot of places in compound document work, including controlling how variant renditions show up. Son-of-a-gun. -- Dennis Dennis E. Hamilton - - - - - - - - - - - - - - - - mailto:infonuovo@email.com tel. +1(650)938.4584 fax. +1(650)567.9846 http://www.infonuovo.com -----Original Message----- From: ietf-dav-versioning-request@w3.org [mailto:ietf-dav-versioning-request@w3.org]On Behalf Of Geoffrey Clemm Sent: Wednesday, 11 August 1999 14:37 To: ietf-dav-versioning@w3.org Subject: Re: Build managment with Delta-V Build management (and I agree that it is better called "derived resource management") is certainly a topic near and dear to both my company (see: ClearMake) and me personally (see: Odin). I believe though, that the issues of derived resource management can be dealt with relatively orthogonally to versioned resource management (assuming one is suitably careful in how one defines versioning support :-). One preliminary way of being "careful" is to reserve the term "derived resource" for those resources that are mechanically computed from other resources (commonly called "source resources"). So although I will eagerly volunteer to participate in any work in this area, I would not advocate this work taking place as part of the versioning work. [ . . . ] [end]