[Json] Upgrading SHOULD to MUST

Paul Hoffman <paul.hoffman@vpnc.org> Tue, 19 February 2013 02:03 UTC

Return-Path: <paul.hoffman@vpnc.org>
X-Original-To: json@ietfa.amsl.com
Delivered-To: json@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id CCAA921E805E for <json@ietfa.amsl.com>; Mon, 18 Feb 2013 18:03:01 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -102.591
X-Spam-Level:
X-Spam-Status: No, score=-102.591 tagged_above=-999 required=5 tests=[AWL=0.008, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([64.170.98.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id zYR9RBien7ZG for <json@ietfa.amsl.com>; Mon, 18 Feb 2013 18:03:01 -0800 (PST)
Received: from hoffman.proper.com (IPv6.Hoffman.Proper.COM [IPv6:2605:8e00:100:41::81]) by ietfa.amsl.com (Postfix) with ESMTP id 3B0F021E8053 for <json@ietf.org>; Mon, 18 Feb 2013 18:03:01 -0800 (PST)
Received: from [10.20.30.90] (50-1-98-12.dsl.dynamic.sonic.net [50.1.98.12]) (authenticated bits=0) by hoffman.proper.com (8.14.5/8.14.5) with ESMTP id r1J22xHg008210 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO) for <json@ietf.org>; Mon, 18 Feb 2013 19:03:00 -0700 (MST) (envelope-from paul.hoffman@vpnc.org)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
From: Paul Hoffman <paul.hoffman@vpnc.org>
In-Reply-To: <A723FC6ECC552A4D8C8249D9E07425A70F8952D9@xmb-rcd-x10.cisco.com>
Date: Mon, 18 Feb 2013 18:02:58 -0800
Content-Transfer-Encoding: quoted-printable
Message-Id: <B96D7751-4DF9-48AA-92EF-9FC248D56932@vpnc.org>
References: <A723FC6ECC552A4D8C8249D9E07425A70F8952D9@xmb-rcd-x10.cisco.com>
To: json@ietf.org
X-Mailer: Apple Mail (2.1499)
Subject: [Json] Upgrading SHOULD to MUST
X-BeenThere: json@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: "Discussion related to JavaScript Object Notation \(JSON\)." <json.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/json>, <mailto:json-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/json>
List-Post: <mailto:json@ietf.org>
List-Help: <mailto:json-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/json>, <mailto:json-request@ietf.org?subject=subscribe>
X-List-Received-Date: Tue, 19 Feb 2013 02:03:01 -0000

On Feb 18, 2013, at 5:12 PM, Joe Hildebrand (jhildebr) <jhildebr@cisco.com> wrote:

> On 2/18/13 5:26 PM, "Bjoern Hoehrmann" <derhoermi@gmx.net> wrote:
> 
>> * Joe Hildebrand (jhildebr) wrote:
>>> A *very* important goal would be to minimize change, and to ensure strict
>>> backward-compatibility.
>> 
>> A Working Group will also likely have to look at revising the rules to
>> detect the character encoding in application/json resources (there is a
>> lack of consensus whether to auto-detect UTF-32 and whether to honour a
>> Unicode signature, whether to support UTF-32 when it is detected, and so
>> on, partly due to how people load JSON resources; a generic "load text"
>> API for instance might detect and remove a Unicode signature before the
>> data is passed to a JSON parser; this used to be true for XMLHttpRequest
>> for instance, I haven't checked the current situation there though).
> 
> (individual)
> 
> Yeah, that probably needs to be dealt with.  If 4627 had been written as
> "JSON SHALL always be encoded as UTF-8 when transmitted or stored", then
> this would not be a problem.
> 
> I wonder if it's too late for that?  
> If we said that the
> backward-compatibility rule was that any document that was valid 4627bis
> would be correctly parsed by a 4627 parser, going all-in on UTF-8 would be
> ok.  Since this is currently valid and proposed to no longer be valid:
> 
> {"foo": "bar", "foo": "baz"}
> 
> clearly the reverse is not going to be true anyway.

If we are supposed to be keeping backwards compatibility, then yes, it's too late. The same is true for changing SHOULD not have duplicate names in objects.

OTOH, if we want a cleaner standard going forwards, by all means let's take out the over-cautious SHOULDs, and make a clear statement in the Introduction where we changed the requirements.

I'm strongly in favor of the latter.

--Paul Hoffman