[oslc-scm] SCM 1.0 spec updated to follow core spec draft - ready for convergence?

Nick Crossley ncrossley at us.ibm.com
Sun Apr 18 23:37:00 EDT 2010


Frank, thanks for the feedback.  My responses below should address both 
your comments, and those from Harsha.

> Remark 5: Configuration
> The text "top level objects" appears first here. It is not clear how
> top level objects differ from other objects. May be it intended to 
> define that a configuration contains a single entrypoint which acts 
> as a "handle" to the configuration.

Sorry, I thought I had addressed this previously-mentioned concern of 
yours in the expanded text.  I have now revised the text again to try to 
make it even more clear.  A configuration contains a hierarchy of objects 
with zero or more direct or immediate members at the top level of the 
hierarchy; these are the top level objects.  Each of those objects may in 
turn have zero or more members, thus forming the hierarchy.  The member 
property gets you exactly one level and no more, unless you specifically 
request more using either the nested property syntax 
member{propertyName,...} or the oslc_scm.recurse parameter.
 
> Remark 6: Directory Version Properties
> The description of oslc_scm:memberName suggests only files and 
> directories. But in the definition of "Directory and file versions" 
> it is stated that a directory may contain (sub)configurations. The 
> property should be able to return those (sub)configuration names too.

I have fixed this.

> Remark 7: Directory Version Properties
> The memberName property may be too limited to identify the members 
> of a directory version for comparison. For example if version 1 
> contains a member foo.c, versions 2 until 5 contain no member foo.c,
> and version 6 contains a member foo.c, it is uncertain whether both 
> foo.c members are versions of the same object or versions of 
> different objects (which happen to have the same name).
> In an SCM system, members of the same name may occur multiple times 
> as long as they are contained in different directories (= different 
> directory paths).
> I propose to add a properties uniqueName to return a unique 
> identifier in the repository namespace, to distinquish between equal
> memberName values. The layout of uniqueName is provider-specific, 
> which means that uniqueNames cannot be compared/reused across 
> providers but memberName can.

The property name was misleading - it was not intended that this be a 
simple (and thus ambiguous) file name; instead, this property was intended 
to be what you have termed the uniqueName.  I have renamed the property 
memberIdentifer, and expanded the explanation.  Note that in some SCM 
systems, you might not know the actual file name (or subdirectory name, 
symlink name, etc.) until you know the version, since the file might have 
been renamed at some point in its history.

> In addition, we have to add to the definition of memberName that a 
> directory version does not contain multiple members with the same 
memberName.
> 
> And we must be clear whether the OSLCM_SCM spec permits case-
> insensitive names ("MakeFile" = "makefile") or case-sensitive names 
> in memberName.

As for uniqueness constraints, case handling, etc., they differ from 
system to system, client to client, and file system to file system.  Since 
SCM 1.0 is only reading existing data and has no defined services to 
create or modify objects, I do not believe we need to define how those 
uniqueness constraints work.  Nonetheless, I have added some text about 
this issue in the data model section at the top of the SCM Resources.

> Remark 8: Symlinks
> Add that service providers for systems that do not support symbolic 
> links MAY use the Symlink resource. For example, ClearCase supports 
> symlinks on Windows systems, although in the work area (on the 
> Windows file system) the symlinks are translated into copies.

Agreed; I have added a note to this effect.

> Remark 9: Symlinks
> The current definition assumes that symlinks are "file system path".
> But I propose that a symlink can also be a URI (string) to an object.

Earlier drafts of the spec allowed this (a link to another resource).  In 
a recent meeting, we decided to simplify the spec by eliminating this, 
because none of the initial implementations of SCM services support links 
to other controlled resources, and because the core spec has a way for a 
service provider to define and use resource types above and beyond those 
defined in a domain spec.  Thus a future service provider for an SCM 
system that did provide links to other resources can define its own 
resource type, and return link resources of that type.  I have now 
mentioned this in the spec.

> Remark 10: Directory version
> Remark 9 brings me back to the definition of a directory. A 
> directory version should be capable of containing a symlink.

I have fixed this in the description of the directory version resource.

> Remark 11: Symlinks
> Add that a symlink is a specific type of object version. If not, 
> then changing a symlink will update all prior baselines that contain
> the symlink.

All SCM 1.0 resource types are subtypes of object version, including 
symbolic links.  This is specified in the description of the object 
version resource type.

Nick.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://open-services.net/pipermail/oslc-scm_open-services.net/attachments/20100418/ba2e98fc/attachment-0003.html>


More information about the Oslc-Scm mailing list