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

-1 on the features draft




Pardon me for coming to this party late.

1. The basic mechanism for specifying features seems sound.
2. I've noted a few little editorial glitches.
3. Section 5, about digital signatures, has no place in this document and really needs to be removed. 4. The mechanism for specifying features needs to be decoupled from the initial list of features. A substantial number of the features here are wide-open roll-out-the-red-carpet invitations to violations of Postel's law. I believe that APP server implementations bloody well SHOULD accept content type="text | html | xhtml", otherwise what was the point of building all that machinery into 4287. Some of the features represent *absurd* micromanagement ("XHTML Rights"?!?! gimme a #%$%! break). There are 30, count 'em *THIRTY* ways provided here for the server to damage interoperability and make client authors' lives impossible. If I were a client author, I would be highly disincented to implement this because I'd have to write thousands of lines of code to work around all the corner cases that could fall out of the combination of one feature with another.

Frankly, I'm shocked; I'd have assumed that an initial draft would have specified a couple of things like drafts and If-Match and so on, not this laundry list of miscellaneous hypotheticals. As it stands, it creates the condition where wildly non-interoperable implementations can easily wave the APP flag.

I'd quickly become an enthusiastic +1 if this were reduced by about 75% so it specified a mechanism for specifying features, and maybe one or two basic non-controversial features.

Now on to details.

======================================

3. A feature is an abstract behavior, function and capability supported
   by an Atom Publishing Protocol collection.

Um, shouldn't that be "behavior, function, *or* capability"?
and should it say "which may be supported"?

=========================================

"Some features supported by a collection might not require that the
   client take any specific action when interacting with the server.
   For such features, the "required" and "preferred" support levels
   SHOULD be considered to be synonymous with "supported"."

... say what?  I totally don't get it.  Maybe an example?

===========================================

"The f:feature element MAY contain attributes included as part of the
   atomCommonAttributes production defined by Section 2 of [RFC4287] or
   any update thereof."

That "any update thereof" is that kosher in the IETF? This language makes me nervous, and may be seen as constraining people doing hypothetical future revs of 4287.

=============================================

"When used on an f:feature element, such
   attributes serve the same purpose described in [RFC4287] or their
   corresponding specifications."

Hmm, I think "... or their corresponding specifications" is a little muddy here. Do you mean "revisions of RFC4287" or are you asserting that if you see any old namespaced attribute, you ought to do whatever its specification says you ought to do?

==============================================

  " It is important to point out that implementors who add "required"
   features to existing collections can cause existing client
   applications to fail"

You mean "existing client applications that support this features specification to fail". To be fair, the next para covers this, but the wording as given is in fact wrong.

================================

"   When multiple, potentially contradictory features are specified such
   that the support level for one is marked as "preferred" and the
   others are "supported", clients SHOULD use the "preferred" feature."

It seems really questionable to try to micromanage the behavior of clients which are confronted with an egregiously broken service doc. Just declare that it's an error to be contradictory. Or even better, take the whole notion of "contradictory" out of the spec and let the market sort it out.

==================================

5. Digitally Signing Service Documents

   Because the mechanisms defined in this specification can be used to
   compel client applications to implement certain behaviors when
   interacting with a collection, implementors who specify required
   features are encouraged to sign Service Documents containing the
features extension using an Enveloped Signature, as described by XML-
   Signature and Syntax Processing [W3C.REC-xmldsig-core-20020212].

-1. This is ridiculous. Every service doc constrains client behavior in all sorts of ways; this spec advances no plausible arguments why this spec adds an extra level of magic that suddenly requires signatures. This entire section mixes fishes and bicycles and needs to be removed.

================================

8.1.1 Several of the descriptions need a re-write; e.g. "indicates that the collection does not accept entries that provide XHTML in the atom:content element" really means "does not accept entries where the content element has a "type" attribute whose value is "xhtml". Let's be precise, please.