[apps-discuss] Deprecation mechanism in JSON HOme Documents

Jan Algermissen <jan.algermissen@nordsc.com> Mon, 25 February 2013 08:04 UTC

Return-Path: <jan.algermissen@nordsc.com>
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 CDC5921F9223 for <apps-discuss@ietfa.amsl.com>; Mon, 25 Feb 2013 00:04:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.249
X-Spam-Level:
X-Spam-Status: No, score=-2.249 tagged_above=-999 required=5 tests=[BAYES_00=-2.599, HELO_EQ_DE=0.35]
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 rvyIYStQ2cio for <apps-discuss@ietfa.amsl.com>; Mon, 25 Feb 2013 00:04:50 -0800 (PST)
Received: from moutng.kundenserver.de (moutng.kundenserver.de [212.227.17.10]) by ietfa.amsl.com (Postfix) with ESMTP id 7670921F9221 for <apps-discuss@ietf.org>; Mon, 25 Feb 2013 00:04:50 -0800 (PST)
Received: from [172.20.10.2] (tmo-106-152.customers.d1-online.com [80.187.106.152]) by mrelayeu.kundenserver.de (node=mreu0) with ESMTP (Nemesis) id 0Lla8x-1UjUzH42hr-00acCP; Mon, 25 Feb 2013 09:04:49 +0100
From: Jan Algermissen <jan.algermissen@nordsc.com>
Content-Type: text/plain; charset="us-ascii"
Content-Transfer-Encoding: quoted-printable
Message-Id: <C088B325-E963-4852-8E55-E5E5EFD2428A@nordsc.com>
Date: Mon, 25 Feb 2013 09:04:45 +0100
To: "apps-discuss@ietf.org" <apps-discuss@ietf.org>
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
X-Mailer: Apple Mail (2.1499)
X-Provags-ID: V02:K0:3xLW/wbv5Ua76M1WBzlldo7pGFszXDSZ9lBBnLS6/BE fyI3E/306cA9FN2oebW3fTwXFv2eex3jzuN4bl2ISLMNeMaaOb 6ZxCtk936xj2VN/UDdrsmufoWIbMN9iLbgVFHTqY/j4bTyO1mW cqFpRrPj7fDL5WaCIrHmLCRDMj+JABs9qPqU2h5ezAjqydoW+S HgBvjUzVYYIlawXlUZSityJecP8pODPK7GXr24ANgQhMZoc5Cj L/N1hOlWlRcTu8Xn/2zYzTpaCe9W/63t9fOoZ31BgefVZrOaYc ZVfdoQlfTsT7SUd1HgYhRyM7pGCsQUgBZs7+q7Ar64ygFhDXL9 M5tz7W2hLDzNIe3Yg4e4Nq1m+z9pNtKyvUQY6InskFur4hRYHT G0pVZvc8WKYkA==
Subject: [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: Mon, 25 Feb 2013 08:04:51 -0000

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"],
 }
}

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? 

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"]
 }
}

Jan


[1] http://tools.ietf.org/html/draft-nottingham-json-home-02