Re: [regext] OK, What Next? (was RDAP Extensions Approach Analysis v2)

Mario Loffredo <mario.loffredo@iit.cnr.it> Mon, 18 July 2022 14:54 UTC

Return-Path: <mario.loffredo@iit.cnr.it>
X-Original-To: regext@ietfa.amsl.com
Delivered-To: regext@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 62689C14CF06 for <regext@ietfa.amsl.com>; Mon, 18 Jul 2022 07:54:02 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.911
X-Spam-Level:
X-Spam-Status: No, score=-6.911 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, NICE_REPLY_A=-0.001, RCVD_IN_DNSWL_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01] autolearn=unavailable autolearn_force=no
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id hRo9sjHWuszZ for <regext@ietfa.amsl.com>; Mon, 18 Jul 2022 07:53:58 -0700 (PDT)
Received: from smtp.iit.cnr.it (mx4.iit.cnr.it [146.48.58.11]) by ietfa.amsl.com (Postfix) with ESMTP id 870AFC157B59 for <regext@ietf.org>; Mon, 18 Jul 2022 07:53:34 -0700 (PDT)
Received: from localhost (localhost [127.0.0.1]) by smtp.iit.cnr.it (Postfix) with ESMTP id 95286B80110; Mon, 18 Jul 2022 16:53:32 +0200 (CEST)
X-Virus-Scanned: Debian amavisd-new at mx4.iit.cnr.it
Received: from smtp.iit.cnr.it ([127.0.0.1]) by localhost (mx4.iit.cnr.it [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id ImHR6pcjOccI; Mon, 18 Jul 2022 16:53:29 +0200 (CEST)
Received: from [192.12.193.108] (pc-loffredo.staff.nic.it [192.12.193.108]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits)) (No client certificate requested) by smtp.iit.cnr.it (Postfix) with ESMTPSA id 7CEC5B80A7D; Mon, 18 Jul 2022 16:53:29 +0200 (CEST)
Message-ID: <fb9e13ab-1d1e-aa1f-e57b-3eb5cf06cad0@iit.cnr.it>
Date: Mon, 18 Jul 2022 16:51:02 +0200
MIME-Version: 1.0
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.11.0
To: "Hollenbeck, Scott" <shollenbeck=40verisign.com@dmarc.ietf.org>, "'jgould=40verisign.com@dmarc.ietf.org'" <jgould=40verisign.com@dmarc.ietf.org>, "'andy@hxr.us'" <andy@hxr.us>
Cc: "'regext@ietf.org'" <regext@ietf.org>
References: <0C87A351-7EC7-4684-BF7A-FAB0EA12677E@verisign.com> <85387f48-2443-2e27-74f1-025e24ec8224@iit.cnr.it> <56cde22c2e7349faa86fb2c0deae6e4f@verisign.com>
From: Mario Loffredo <mario.loffredo@iit.cnr.it>
In-Reply-To: <56cde22c2e7349faa86fb2c0deae6e4f@verisign.com>
Content-Type: text/plain; charset="UTF-8"; format="flowed"
Content-Transfer-Encoding: 8bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/yVdYjam81vC1nE9H_ZnD57YLCDk>
Subject: Re: [regext] OK, What Next? (was RDAP Extensions Approach Analysis v2)
X-BeenThere: regext@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Registration Protocols Extensions <regext.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/regext>, <mailto:regext-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext/>
List-Post: <mailto:regext@ietf.org>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/regext>, <mailto:regext-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Jul 2022 14:54:02 -0000

Hi Scott,

please find my comments inline.

Il 18/07/2022 15:11, Hollenbeck, Scott ha scritto:
>> -----Original Message-----
>> From: Mario Loffredo <mario.loffredo@iit.cnr.it>
>> Sent: Monday, July 18, 2022 4:40 AM
>> To: Gould, James <jgould=40verisign.com@dmarc.ietf.org>; andy@hxr.us
>> Cc: Hollenbeck, Scott <shollenbeck@verisign.com>; regext@ietf.org
>> Subject: [EXTERNAL] Re: [regext] OK, What Next? (was RDAP Extensions
>> Approach Analysis v2)
>>
>> Caution: This email originated from outside the organization. Do not click
>> links
>> or open attachments unless you recognize the sender and know the content
>> is safe.
>>
>> I agree with James.
>>
>> The drawback of Approach A is that even an additive change to an existing
>> extension would result in a breaking change to the RDAP service. As a
>> consequence,  servers should always manage the transition from two
>> subsequent versions of an extension.
> Please explain how there's a breaking change. Let's assume that we have an
> extension named "foo version 1" identified by the prefix "foov1". "foov1" is
> registered with IANA, returned in the server's rdapConformance data structure,
> and used to prefix extension elements.
>
> Now assume that a second version of the extension (foo version 2) exists,
> identified by the prefix "foov2". "foov2" is also registered with IANA,
> returned in the server's rdapConformance data structure, and used to prefix
> extension elements.
>
> If the server supports only "foov1" or "foov2", it returns only one of those
> values in the rdapConformance data structure, accepts only extension elements
> prefixed with the supported value, and returns only extension elements
> prefixed with the supported value. If a server supports both "foov1" and
> "foov2", it returns both values in the rdapConformance data structure, accepts
> extension elements prefixed with either value, and returns extension elements
> prefixed with the value that matches the requested value. So how does this
> transition scenario not work?
>
> Server supports "foov1" and returns that value in the rdapConformance data
> structure. The server accepts requests and returns responses prefixed with
> "foov1". The client sends requests and receives responses prefixed with
> "foov1".
>
> At some point in the future a new version of "foo", identified by "foov2",
> exists. The server enters a transition period and announces support for both
> extensions by returning both values in the rdapConformance data structure. It
> accepts extension elements prefixed with either value and returns extension
> elements prefixed with the value that matches the requested value. The client
> sends requests and receives responses prefixed with either "foov1" or "foov2"
> depending on which value of the extension they support.
>
> Time passes, and the transition period ends. The server deprecates support for
> "foov1" and announces support for only "foov2" by returning only that value in
> the rdapConformance data structure. The server accepts requests and returns
> responses prefixed with "foov2". The client sends requests and receives
> responses prefixed with "foov2".
>
> Where's the breakage here? In both cases, the client and server can identify
> extension elements by doing a simple pattern match for "foov1" or "foov2".

Speaking technically, renaming a field name is considered a breaking 
change. Even admitting that the server can provide both the field 
versions for a period of time, the old version will be finally deleted 
and deleting a field is a breaking change too.

It's true that a transition process can geatly reduce the risk of 
breaking the clients but, in my opinion, it doesn't make sense to adopt 
such a time-consuming approach also for additive changes.

Why should a response field be renamed when the new version differs from 
the old one only for the presence of an optional member?

Think that the scenario is even worse when the new version of an 
extension consists in adding a new endpoint to a set of previously 
defined endpoints.

Why should the existing endpoints be affected by the introduction of a 
new endpoint?


Best,

Mario

>
> Scott
>
> _______________________________________________
> regext mailing list
> regext@ietf.org
> https://www.ietf.org/mailman/listinfo/regext

-- 
Dr. Mario Loffredo
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web: http://www.iit.cnr.it/mario.loffredo