[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

CAP-VERSION (was Re: Status of the CALSCH working group)





On Friday, November 7, 2003, at 04:14 PM, Doug Royer wrote:

Currently the iCAL 'VERSION' property of iCAL has the same problem as MIME-Version.

However the CAP-VERSION is more ~like~ the telnet capability in that you can list the specific
CAP-ish things. It is not a VERSION as much as a list of docs the CS (or CUA) supports.


So I do not think it has the same problem as the MIME-Version and iCAL VERSION properties.
If we were to change it to be like the iCAL VERSION property (as some have recently
almost proposed) - then it would have the same problem as the MIME-Version issue.

I remain confused as to the purpose of CAP-VERSION, and will take the liberty of asking a dumb question or two.


First, as far as I can tell, the only example of its use is in a CUA's response to a GET-CAPABILITY command issued by a CS. Is there any other scenario where it is used? If so, what is it? If not, how does a CUA find out what CAP-VERSION is supported by the CS? How do the values for CAP-Version relate to the ical Version? Moreover, what does it mean for a CUA to say that it supports multiple CAP-VERSION values? For example, if in the fullness of time we have defined cap-versions "1.0" and "2.0", is it reasonable to imagine that a CUA returns

CAP-VERSION: 1.0; 2.0 (alpha); 2.0 (beta)

In this case, first please pardon my semicolon -- although Doug referred to CAP-VERSION as multivalued, I couldn't find any indication of what the separator should be so I made that up. Second, does this mean that the CUA is prepared to take data in a form labelled simply "2.0" or not? What if 1.0 and 2.0 actually have incompatible semantics for identical syntax -- how is the CUA supposed to know what it is seeing? Finally, why are we using version numbers like 1.0 -- is there an intended implication about how an implementation should handle unrecognized version numbers, such as "ignore minor version differences but insist on major version compatibility"? If so, we should spell it out, and if not, we should dispense with the frivolity of using "1.0" when "1" would carry no less information.

I'm sure some of these are stupid questions, but I suspect at least some of them are meaningful.

I know that it would be nice if I now made a proposal for how things *should* work, but I'm reluctant to do so before I understand the purpose of CAP-VERSION. Here are several possible purposes:

-- Allowing the CUA to find out what version of the CAP protocol the CS supports.
-- Allowing the CS to find out what version of the CAP protocol the CUA supports.
-- Allowing the CUA to find out what iCal "Version" fields the CS supports.
-- Allowing the CS to find out what iCal "Version" fields the CUA supports.


Even if I did understand the purpose of CAP-VERSION, I'd still want to be sure that there's a way to tell which of the supported CAP-VERSIONs is actually being used. If I tell you I support 1.0 and 2.0, and you come back at me with a verb that has different meanings in the two versions, how do I know which you're using?

This is the kind of stuff I most want to see us fix before we declare the document finished, because getting this wrong will make it much harder to fix anything else later. One of the reasons that MIME-Version didn't turn out to be a major problem is that document formats are relatively stable and rarely require negotiation. Information exchange protocols, however, often involve version negotiation, so the costs of screwing this up could be significant. -- Nathaniel