Interoperability and client support of options

I have a bunch of questions about various options, and what is likely to
be used and what is going to cause interoperability problems.  My 'core'
worry (pun intended) is that if I implement a server that supports only
core, it will not interoperate with any clients!  E.g. I found out from
Greg that the Subversion client will not operate against a core-only
server.  So, herewith, the questions.  Please answer them if you're
doing any client work, whether the answer is yes or no.

1) Is anybody planning to implement a client that will interoperate
against a CORE server, not requiring any advanced options to be there at
all?

2) A slightly different variation: Is anybody planning to implement a
client that only does core, or will all versioning-aware clients support
CHECKOUT/CHECKIN as well?  Will all versioning-aware clients support
version-history?

3) Is anybody planning to use NONE OF these options:
 - working resource option
 - client workspace option
 - Workspace option
In other words, is anybody planning to expose the results of
work-in-progress, on the VCR, to all clients doing read operations?

4) Can a client that does the checkout option but not the "working
resource" option operate against servers with the "Working Resource"
option?

5) Can a client that doesn't know about the UPDATE option interoperate
with VCRs that have had UPDATE applied to them?

Rather than make an exhaustive list of these kinds of questions, I'll
just note that I could raise similar issues for just about every option
in the draft.  So here's how to head off that flood of questions!  For
every option, please add a little "interoperability" section, explaining
 - what happens if the client does not support this option but the
server does,
 - what happens if the client supports this option but the server does
not,
 - whether clients that do not support this option can interact with
clients that do support this option (I mean, whether both kinds of
clients can do operations freely on the same set of resources, on a
server that does support the option).

Eg one might state:
 - If a server implements this option at all, the client must ALSO
implement this option in order to interoperate.
Or:
 - This option is only used when the client requests it.  The server
that implements this option MUST also support the case where the client
does NOT request this option, in order to interoperate with clients that
do not support this option.
Or:
 - A VCR on which this option has been used (e.g. UPDATE) MUST
interoperate with clients that are unaware of the option.
Or:
 - If any clients on a system use this option (e.g. Merge), whether
clients that do not understand the option (e.g. Merge) will be able to
use the resources on the system.

Thanks,
Lisa

Received on Friday, 9 February 2001 19:56:14 UTC