Subject: [apps-discuss] Pete Resnick's Yes on draft-ietf-appsawg-json-merge-patch-06: (with COMMENT)

From: "Pete Resnick" <[email-masked]>
Date: Thu, 21 Aug 2014 07:33:21 -0700

Pete Resnick has entered the following ballot position for
draft-ietf-appsawg-json-merge-patch-06: Yes

When responding, please keep the subject line intact and reply to all
email addresses included in the To and CC lines. (Feel free to cut this
introductory paragraph, however.)

Please refer to http://www.ietf.org/iesg/statement/discuss-criteria.html
for more information about IESG DISCUSS and COMMENT positions.

The document, along with other ballot positions, can be found here:
http://datatracker.ietf.org/doc/draft-ietf-appsawg-json-merge-patch/

----------------------------------------------------------------------
COMMENT:
----------------------------------------------------------------------

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.