JSON Merge Patch

Note: This ballot was opened for revision 06 and is now closed.

(Barry Leiba) Yes

(Pete Resnick) (was Discuss) Yes

Comment (2014-08-21 for -06)
No email
send info
My previous DISCUSS asked for some textual description of the pseudocode. It turns out that the WG attempted that and was unable to come up with something clear enough to produce interoperable implementations. That's a bummer, but I am willing to take the WG's word that they tried.

I will only suggest adding some text after the pseudocode to assist folks in noticing some of the "interesting" aspects of the patch procedure:

   Note: This algorithm has some results that might not be immediately
   obvious to the implementer:

   - If the Patch is not itself an object, the Patch replaces the entire
     contents of the Target.

   - The Patch can only affect the entire value of a member of a Target
     object. In particular, a Patch cannot change members of an array;
     it can only replace or delete the entire array.

If the WG thinks there are other things worth mentioning, it might help the implementer. As I said previously, it did take me re-reading the pseudocode several times to truly understand the semantics, and if an implementer needs to structure their code differently than the pseudocode, it would be nice to point out some possibly tricky bits.

(Jari Arkko) No Objection

(Alia Atlas) No Objection

(Richard Barnes) No Objection

Comment (2014-08-20 for -06)
No email
send info
One major note and a couple of minor notes:

(0) In line 7 of the pseudocode, s/Key/Name/

(1) Is there any concern about confusion due to the fact that patches are syntactically indistinguishable from JSON?  Presumably this is mitigated by the use of the media type, but it might be worth a mention, e.g., in the Security Considerations.

(2) Thanks for the note about the fact that this document assumes that an attribute being absent and an attribute being null are equivalent.  This might be worth reprising in the Security Considerations, in case there are usages of JSON that use this distinction to express security-relevant information.  For example, if presence of an element is used to signal support for a feature, but null is allowed as a value.

(Alissa Cooper) No Objection

(Spencer Dawkins) No Objection

(Adrian Farrel) No Objection

(Stephen Farrell) No Objection

Comment (2014-08-20 for -06)
No email
send info
I didn't get why if Patch is not an object then 
MergePatch(foo, Patch) returns Patch.

(Brian Haberman) No Objection

(Joel Jaeggli) No Objection

(Ted Lemon) No Objection

(Kathleen Moriarty) (was Discuss) No Objection

Comment (2014-08-21 for -06)
No email
send info
Thanks for the discussion on checking the integrity of received patches, it was helpful.

(Martin Stiemerling) No Objection

Comment (2014-08-15 for -06)
No email
send info
no objection from my side and my checks where solely related to any Transport layer related issues.