Re: [Json] What does "break compatibility" mean?
Tatu Saloranta <tsaloranta@gmail.com> Thu, 28 February 2013 22:14 UTC
Return-Path: <tsaloranta@gmail.com>
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 CD69E21F8B06 for <json@ietfa.amsl.com>; Thu, 28 Feb 2013 14:14:30 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.099
X-Spam-Level:
X-Spam-Status: No, score=-3.099 tagged_above=-999 required=5 tests=[AWL=0.500, BAYES_00=-2.599, RCVD_IN_DNSWL_LOW=-1]
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 NO-RcePjGrb4 for <json@ietfa.amsl.com>; Thu, 28 Feb 2013 14:14:28 -0800 (PST)
Received: from mail-wi0-f176.google.com (mail-wi0-f176.google.com [209.85.212.176]) by ietfa.amsl.com (Postfix) with ESMTP id B434921F8B83 for <json@ietf.org>; Thu, 28 Feb 2013 14:14:27 -0800 (PST)
Received: by mail-wi0-f176.google.com with SMTP id hm14so8356239wib.15 for <json@ietf.org>; Thu, 28 Feb 2013 14:14:26 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:x-received:in-reply-to:references:date:message-id :subject:from:to:cc:content-type:content-transfer-encoding; bh=S2WvO0E2m2LeXTR2td/9GEAB1jcZzGAKj3TVI5e9lYo=; b=YuQ3iDpLPm1bWTsUMndwVRCJdm0V13QmGPRCO630BaRbgtGkRSLFKYWGXAawc44wCw uL/GQlMxWNtbOD2XwzG8JJgS+3mT4SJpRCCau7mJUoikzPwU0xr61gySYeGDsU+AqUY2 U8sVwcBDTsrid4LGWnAmsYos96L0Qglmia9dAi1zU9MjyzGG6l6B1kXVp2XLdnSeGB3D PIhddvqQ/ifvFuiQT1SXkeUyU6gOP/zPeHdcBsiD+kTZ/6LGo0tgJHpHOd/HABYR91tb ny4rsqffH6Q9TulcFDy7qsJ6dok5C8v4VF8FMJAhaCTwxOzgilaNnRLWlkUK4HTB9q/u TwRg==
MIME-Version: 1.0
X-Received: by 10.180.14.233 with SMTP id s9mr353403wic.25.1362089666896; Thu, 28 Feb 2013 14:14:26 -0800 (PST)
Received: by 10.227.63.132 with HTTP; Thu, 28 Feb 2013 14:14:26 -0800 (PST)
In-Reply-To: <CAHBU6ivwK2T3srn9E4recLFQjNaq7UVNdHMkjARC63zfb5Lqaw@mail.gmail.com>
References: <CAHBU6ityBeA+M-PEme09gO_jVySr33-X308i1UttxrQwSgYmGQ@mail.gmail.com> <0F513426-F26D-48F4-A7A8-88F3D3DA881B@vpnc.org> <CAK3OfOjFCnR8k1csVOkSKTDpA8exDvYdAijn80HKD5zwNzzeSw@mail.gmail.com> <4514F5D7-4A7E-476F-987D-C4C617F2BCBD@vpnc.org> <4D80AE86-4DBA-4236-9E2A-A06F2F9C30F7@mnot.net> <00b001ce1509$c4c99fc0$4e5cdf40$@packetizer.com> <CAC4RtVDXwPRL-Cz_Xf-kjU3dzzY+JheDGivSE9hF2v1NLkWEgQ@mail.gmail.com> <63519CDF-144F-4DA4-A9F3-A1AB824861D2@vpnc.org> <CAHBU6ivXpRaTPsbLd90zBDdiypO2pYn9mckkNcCh9ZEApsK1yg@mail.gmail.com> <CAK3OfOhX0aAhX6rsK5mL+5AUvX1bepgeN9o3OReRGykg8ycWhA@mail.gmail.com> <AB5022CF-A698-49A5-A138-2EC3D6995905@vpnc.org> <CAHBU6ivwK2T3srn9E4recLFQjNaq7UVNdHMkjARC63zfb5Lqaw@mail.gmail.com>
Date: Thu, 28 Feb 2013 14:14:26 -0800
Message-ID: <CAGrxA250i=fBdDe0iKWi44wbRp7QMHK5hd0NzQyL_8oQ_z0+2Q@mail.gmail.com>
From: Tatu Saloranta <tsaloranta@gmail.com>
To: Tim Bray <tbray@textuality.com>
Content-Type: text/plain; charset="windows-1252"
Content-Transfer-Encoding: quoted-printable
Cc: Nico Williams <nico@cryptonector.com>, Barry Leiba <barryleiba@computer.org>, Paul Hoffman <paul.hoffman@vpnc.org>, "json@ietf.org" <json@ietf.org>
Subject: Re: [Json] What does "break compatibility" mean?
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: Thu, 28 Feb 2013 22:14:30 -0000
On Thu, Feb 28, 2013 at 1:59 PM, Tim Bray <tbray@textuality.com> wrote: > If there were a significant number of protocols, or deployed software > components, that relied on the use of multiple keys, then changing the > SHOULD to a MUST would be a breaking change. I do not believe that there are > any, and thus this is not, *de facto*, a breaking change. That hypothesis > is easily falsified, if in the course of the IETF work someone sticks their > hand up and says “this is going to break me”. But I’m not holding my > breath. +1 on this. One minor comment on latter part -- in cases where parsers do not retain more state than absolutely required for matching open scopes (aka "streaming parsers"), this would presumably mean no change, as all key/value pairs would still be exposed as is. It would then be up to higher layers, such as tree builder or data-binder, to ensure that of possible duplicates the last one sticks. This is how many tools already work. I just want to mention this as it is one case where wording could still be debated ("but parser SHOULD remove other values, only expose last one"), depending on wording. -+ Tatu +- > > -T > > > On Thu, Feb 28, 2013 at 1:51 PM, Paul Hoffman <paul.hoffman@vpnc.org> wrote: >> >> On Feb 28, 2013, at 12:46 PM, Nico Williams <nico@cryptonector.com> wrote: >> >> > On Thu, Feb 28, 2013 at 2:06 PM, Tim Bray <tbray@textuality.com> wrote: >> >> It’s clear to me that, *for the purposes of the IETF*, someone needs to >> >> say >> >> “People sending JSON MUST NOT use duplicate keys.” The fact that >> >> certain >> >> libraries allow less-clueful developers to do this, and that parsing >> >> software is observed to behave unpredictably when they do, should only >> >> encourage us. >> > >> > The obvious compromise is to say senders MUST NOT send dup object keys >> > and receivers MUST take the last key value pair of any dup keys, >> > per-ECMAScript. The latter preserves compatibility. >> >> ...but the former ("say senders MUST NOT send dup object keys") breaks it, >> given that the RFC had a SHOULD not a MUST. Thus the question in this >> thread. >> >> --Paul Hoffman >> _______________________________________________ >> json mailing list >> json@ietf.org >> https://www.ietf.org/mailman/listinfo/json > > > > _______________________________________________ > json mailing list > json@ietf.org > https://www.ietf.org/mailman/listinfo/json >
- [Json] Counterproposal on work items Tim Bray
- Re: [Json] Counterproposal on work items Paul Hoffman
- Re: [Json] Counterproposal on work items Matt Miller (mamille2)
- Re: [Json] Counterproposal on work items Gonzalo Salgueiro
- Re: [Json] Counterproposal on work items Mike Jones
- Re: [Json] Counterproposal on work items Tatu Saloranta
- Re: [Json] Counterproposal on work items Nico Williams
- Re: [Json] Counterproposal on work items Tony Hansen
- Re: [Json] Counterproposal on work items Paul Hoffman
- Re: [Json] Counterproposal on work items Joe Hildebrand (jhildebr)
- Re: [Json] Counterproposal on work items Mark Nottingham
- Re: [Json] Counterproposal on work items Tim Bray
- Re: [Json] Counterproposal on work items Peter Saint-Andre
- Re: [Json] Counterproposal on work items Robert Sayre
- Re: [Json] Counterproposal on work items Paul E. Jones
- Re: [Json] Counterproposal on work items Barry Leiba
- Re: [Json] Counterproposal on work items Francis Galiegue
- Re: [Json] Counterproposal on work items Peter Saint-Andre
- Re: [Json] Counterproposal on work items Paul E. Jones
- Re: [Json] Counterproposal on work items Francis Galiegue
- Re: [Json] Counterproposal on work items Carsten Bormann
- Re: [Json] Counterproposal on work items Francis Galiegue
- Re: [Json] Counterproposal on work items Markus Lanthaler
- [Json] What does "break compatibility" mean? Paul Hoffman
- Re: [Json] What does "break compatibility" mean? Tim Bray
- Re: [Json] What does "break compatibility" mean? Paul Hoffman
- Re: [Json] What does "break compatibility" mean? Nico Williams
- Re: [Json] What does "break compatibility" mean? Barry Leiba
- Re: [Json] What does "break compatibility" mean? Paul Hoffman
- Re: [Json] What does "break compatibility" mean? Tim Bray
- Re: [Json] What does "break compatibility" mean? Nico Williams
- Re: [Json] What does "break compatibility" mean? Tatu Saloranta
- Re: [Json] What does "break compatibility" mean? Martin J. Dürst
- Re: [Json] What does "break compatibility" mean? Paul Hoffman