Re: [apps-discuss] Deprecation mechanism in JSON HOme Documents

Mark Nottingham <mnot@mnot.net> Wed, 20 March 2013 02:03 UTC

Return-Path: <mnot@mnot.net>
X-Original-To: apps-discuss@ietfa.amsl.com
Delivered-To: apps-discuss@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 19D8921F8675 for <apps-discuss@ietfa.amsl.com>; Tue, 19 Mar 2013 19:03:51 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -105.599
X-Spam-Level:
X-Spam-Status: No, score=-105.599 tagged_above=-999 required=5 tests=[AWL=-3.000, BAYES_00=-2.599, USER_IN_WHITELIST=-100]
Received: from mail.ietf.org ([12.22.58.30]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id b6wOhu-QvL28 for <apps-discuss@ietfa.amsl.com>; Tue, 19 Mar 2013 19:03:50 -0700 (PDT)
Received: from mxout-08.mxes.net (mxout-08.mxes.net [216.86.168.183]) by ietfa.amsl.com (Postfix) with ESMTP id 4982021F8626 for <apps-discuss@ietf.org>; Tue, 19 Mar 2013 19:03:45 -0700 (PDT)
Received: from [192.168.1.80] (unknown [118.209.42.8]) (using TLSv1 with cipher AES128-SHA (128/128 bits)) (No client certificate requested) by smtp.mxes.net (Postfix) with ESMTPSA id 04F6D509B6; Tue, 19 Mar 2013 22:03:43 -0400 (EDT)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
From: Mark Nottingham <mnot@mnot.net>
In-Reply-To: <1AD639E1-35D3-4F17-8C4C-FFD2CC2CAE5C@me.com>
Date: Wed, 20 Mar 2013 13:03:40 +1100
Content-Transfer-Encoding: quoted-printable
Message-Id: <DBDD85BF-7CF5-47F2-AC93-44A14FED51FF@mnot.net>
References: <1AD639E1-35D3-4F17-8C4C-FFD2CC2CAE5C@me.com>
To: algermissen1971 <algermissen1971@me.com>
X-Mailer: Apple Mail (2.1499)
Cc: "apps-discuss@ietf.org" <apps-discuss@ietf.org>
Subject: Re: [apps-discuss] Deprecation mechanism in JSON HOme Documents
X-BeenThere: apps-discuss@ietf.org
X-Mailman-Version: 2.1.12
Precedence: list
List-Id: General discussion of application-layer protocols <apps-discuss.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=unsubscribe>
List-Archive: <http://www.ietf.org/mail-archive/web/apps-discuss>
List-Post: <mailto:apps-discuss@ietf.org>
List-Help: <mailto:apps-discuss-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/apps-discuss>, <mailto:apps-discuss-request@ietf.org?subject=subscribe>
X-List-Received-Date: Wed, 20 Mar 2013 02:03:51 -0000

Hi Jan,

On 25/02/2013, at 7:04 PM, algermissen1971 <algermissen1971@me.com> wrote:

> Hi Mark,
> 
> in your latest draft of JSON Homep[1] you define a deprecation mechanism that allows a provider to provide a hint to a consumer that a certain described resource is in a deprecation period.
> 
> As designed now, this mechanism cannot be used to hint the deprecation of a certain provided media type:
> 
> Suppose I have 
> 
> 
> "http://example.org/rel/widgets": {
>  "href": "/widgets/",
>  "hints": {
>    "representations": ["application/widgetlist"]
>  }
> }
> 
> and at some point, I have to evolve the media type in an incompatible way, yielding a new media type 'application/special-new-widgetlist'. To support both, new and old clients, I'd let the types coexist:
> 
> "http://example.org/rel/widgets": {
>  "href": "/widgets/",
>  "hints": {
>    "representations": ["application/widgetlist","application/special-new-widgetlist"],
>  }
> }

Yes...

> As time passes and clients pick up the shiny new media type, a point is reached where I want to hint older clients that an upgrade is in order. I'd like to deprecate the availability of the older media type 'application/widgetlist'.
> 
> However ... that is impossible right now since 'deprecated' only applies to the resource as a whole - which I deliberately do *not* want to change or remove.
> 
> What are your thoughts? Is there a certain design decision behind your approach that I am not seeing?

Nope, just started to get deprecation in. Will think on this, thanks...

> 
> What do you think of augmenting the deprecation mechanism to something like:
> 
> "http://example.org/rel/widgets": {
>  "href": "/widgets/",
>  "hints": {
>    "representations": ["application/widgetlist","application/special-new-widgetlist"],
>    "deprecated-representations" : ["application/widgetlist"]
>  }
> }


That'd be one way to do it. However, I suspect we're eventually going to want to put more information about representations in, so it could be metadata, e.g.,

 "hints": {
	"representations": { 
		"application/widgetlist": {
			"deprecated": true
		},
		"application/special-new-widgetlist": {
		}
	}
}


--
Mark Nottingham   http://www.mnot.net/