Re: [netmod] versioning procedures (RFC vs. I-D)

Italo Busi <Italo.Busi@huawei.com> Thu, 02 April 2020 15:48 UTC

Return-Path: <Italo.Busi@huawei.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 10B223A155F for <netmod@ietfa.amsl.com>; Thu, 2 Apr 2020 08:48:45 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.889
X-Spam-Level:
X-Spam-Status: No, score=-1.889 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, SPF_PASS=-0.001, T_FILL_THIS_FORM_SHORT=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id k7qfNhADNeEq for <netmod@ietfa.amsl.com>; Thu, 2 Apr 2020 08:48:41 -0700 (PDT)
Received: from huawei.com (lhrrgout.huawei.com [185.176.76.210]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0A1953A159B for <netmod@ietf.org>; Thu, 2 Apr 2020 08:48:41 -0700 (PDT)
Received: from lhreml705-chm.china.huawei.com (unknown [172.18.7.106]) by Forcepoint Email with ESMTP id 3CA1198760967F2F7BD3; Thu, 2 Apr 2020 16:48:36 +0100 (IST)
Received: from fraeml715-chm.china.huawei.com (10.206.15.34) by lhreml705-chm.china.huawei.com (10.201.108.54) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.1713.5; Thu, 2 Apr 2020 16:48:35 +0100
Received: from fraeml715-chm.china.huawei.com (10.206.15.34) by fraeml715-chm.china.huawei.com (10.206.15.34) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.1913.5; Thu, 2 Apr 2020 17:48:35 +0200
Received: from fraeml715-chm.china.huawei.com ([10.206.15.34]) by fraeml715-chm.china.huawei.com ([10.206.15.34]) with mapi id 15.01.1913.007; Thu, 2 Apr 2020 17:48:35 +0200
From: Italo Busi <Italo.Busi@huawei.com>
To: Andy Bierman <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>
CC: "Joe Clarke (jclarke)" <jclarke@cisco.com>, NetMod WG <netmod@ietf.org>
Thread-Topic: [netmod] versioning procedures (RFC vs. I-D)
Thread-Index: AQHWCFfTB1C1Y87lGEq1iuQDM3OPs6hliklAgAACdwCAADZOAIAABbEAgAALnoCAACMfIA==
Date: Thu, 02 Apr 2020 15:48:35 +0000
Message-ID: <a69215e713ac4c8dbe16948316a858b6@huawei.com>
References: <CABCOCHQWssUucRvnsi8O8+GhCHb0-xS--swf3R4q-6P3Qfq0TA@mail.gmail.com> <D63416FC-2C33-4015-BF23-51ABCD75A020@cisco.com> <CABCOCHSTnYJbB9ainkmCuBinjRZAi-wEWgQoFCrhs+m8NBAAYQ@mail.gmail.com> <50052092-0380-44C6-8AE0-1AB3C15C30B4@cisco.com> <b688d8372a1a49e8828c74b5366458c0@huawei.com> <1DE96CAC-43BC-4638-AE96-2E770CA7CE20@cisco.com> <CABCOCHRDKKmU1+BL_4RPkn4sMhjN8w20_5rHWOoBCm8PCTTi1Q@mail.gmail.com> <B9DDE091-36C7-4E83-B20C-352E3C111151@cisco.com> <CABCOCHSs=AjsT73W+OOvxzA6=V-vf59-Y_96rtRyTPaEAnZB0w@mail.gmail.com>
In-Reply-To: <CABCOCHSs=AjsT73W+OOvxzA6=V-vf59-Y_96rtRyTPaEAnZB0w@mail.gmail.com>
Accept-Language: it-IT, en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
x-originating-ip: [10.47.26.136]
Content-Type: multipart/related; boundary="_005_a69215e713ac4c8dbe16948316a858b6huaweicom_"; type="multipart/alternative"
MIME-Version: 1.0
X-CFilter-Loop: Reflected
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/-nFSyFazJGR80N7w4QgJzBFtTF0>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 02 Apr 2020 15:48:45 -0000

If I understand correctly, the Reshad’s solution could lead to an history as:

-          bis-00 being 1.1.0 (BC with the RFC module)

-          bis-01 being 1.1.0 (BC with the RFC module even if NBC with bis-00)

-          bis-02 being 2.0.0 (NBC with RFC module even if BC with bis-01)

-          bis-03 being 1.1.0 (BC with RFC module but not NBC with bis-02 because e.g., the changes in bis-02 that were NBC with RFC module have been removed and/or made BC with RFC module)

The rule looks like that an I-D version represents the version that would be used by that module if the I-D were published as an RFC and all the old I-Ds have never existed.

If this rule works, I do not understand why we need the 0.x.y releases. I think that the I-Ds with the initial draft versions of the module can be 1.0.0.

Am I missing something?

Tools could work if they are able to use the revision date to get the latest version of a given module/version.

Thanks, Italo


Italo Busi
Principal Optical Transport Network Research Engineer
Huawei Technologies Co., Ltd.
Tel : +39 345 4721946
Email : italo.busi@huawei.com
[cid:image005.png@01D60916.F6B22990]

This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

From: Andy Bierman [mailto:andy@yumaworks.com]
Sent: giovedì 2 aprile 2020 17:28
To: Reshad Rahman (rrahman) <rrahman@cisco.com>
Cc: Italo Busi <Italo.Busi@huawei.com>; Joe Clarke (jclarke) <jclarke@cisco.com>; NetMod WG <netmod@ietf.org>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)



On Thu, Apr 2, 2020 at 7:46 AM Reshad Rahman (rrahman) <rrahman@cisco.com<mailto:rrahman@cisco.com>> wrote:


From: 'Andy Bierman' <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Thursday, April 2, 2020 at 10:26 AM
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>>
Cc: Italo Busi <Italo.Busi@huawei.com<mailto:Italo.Busi@huawei.com>>, "Joe Clarke (jclarke)" <jclarke@cisco.com<mailto:jclarke@cisco.com>>, NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)



On Thu, Apr 2, 2020 at 4:11 AM Reshad Rahman (rrahman) <rrahman@cisco.com<mailto:rrahman@cisco.com>> wrote:
Hi,

From: Italo Busi <Italo.Busi@huawei.com<mailto:Italo.Busi@huawei.com>>
Date: Thursday, April 2, 2020 at 5:06 AM
To: "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>>, 'Andy Bierman' <andy@yumaworks.com<mailto:andy@yumaworks.com>>, "Joe Clarke (jclarke)" <jclarke@cisco.com<mailto:jclarke@cisco.com>>
Cc: NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: RE: [netmod] versioning procedures (RFC vs. I-D)

Reshad,

My doubt and, if I understand well also Andy’s question, is about the fact that before publishing an RFC-bis with e.g., 1.1.0, we will have a set of Internet-Drafts updating the RFC with 1.0.0

What versions should be used in the YANG modules published in these Internet-Drafts?

Think about the following scenario: -00 version provide BC changes to the RFC module but the -01 version provide NBC changes to what has been added in the -00 module (thus the -01 version is BC with the RFC 1.0.0 module but NBC with the -00 version module)
<RR> So bis 00 would be 1.1.0 (BC with RFC module).
Bis 01 should be updated according to its relationship to the RFC module (bis 00 doesn’t matter anymore), when RFC bis is published it won’t have the full history.

Hope I correctly understood your question.


This semver plan is not very intuitive and not sure it works.

draft-00

   container the-container;             version 0.1.0      OK

draft-01:
   container my-container;             version 0.2.0;   rules violated; NBC should force 1.0.0

draft-02:

    container my-container {           version 0.3.0; should be 1.1.0
        leaf my-leaf { type int32; }
    }

RFC-1:

    container my-container {           version 1.0.0;  should be 2.0.0 according to NBC rules
        leaf my-leaf { type uint32; }
    }

bis-draft-00:

   container my-container {           version 1.1.0; OK
        leaf my-leaf { type uint32; }
        leaf another-leaf { type int32; }
    }

bis-draft-01:

  container my-container {                  diff against RFC-1:  version 1.1.0 but already used; use 1.2.0?
        leaf my-leaf { type uint32; }
        leaf another-leaf { type uint32; }
    }

bis-draft-02:

  container example-my-container {                  diff against RFC-1:  version 2.0.0 but use 1.3.0 instead?
        leaf my-leaf { type uint32; }
        leaf another-leaf { type uint32; }
    }

[repeat NBC step bis-draft-02 10 times.... now up to version 12.0.0 or is it 1.13.0? something else?

RFC-2:   publish draft-12 as RFC-2: now change the label from 1.13.0 to 2.0.0? or leave it 12.0.0?

IMO it is very confusing that the stated rules are so inconsistent and are violated so many ways.
There should be no revision-label at all in Internet Drafts because these documents are unpublished.
They should only be added to the RFC version.

The semver procedures are not intended to work for unpublished modules that are only
meant for review, not for implementation. The revision-label provides only noise in Internet Drafts.
<RR2> I think it’s useful to have a revision label in a draft because it indicates nature of changes (BC v/s NBC) compared to the previous published revision (RFC).
But you are absolutely right that setting the version based on changes with the previous draft revision is useless and confusing.


IMO the part that is confusing is that the rules for picking the next revision-label
are violated for the draft versions (including the special case 0.x.y versions).
NBC changes appear to be minor changes.  The SEM in SEMVER is not useful
if the identifier does actually reflect the semantics of the label.

Comparing against the last published version also seems to violate the rules.
Either the same label (e.g. 2.0.0 is used over and over, or new numbers are used
based on the last draft version (2.0.0, then 2.1.0or maybe 3.0.0 - not sure).
Using the same label for different versions of a module would be really confusing.
It is confusing to use incremental numbers to sometimes mean "compare against last label"
and other times mean "compare against some unspecified label in the past".
There is no way to distinguish a label for a published module and an unpublished module.



Regards,
Reshad.



Andy

Regards,
Reshad.

Thanks, Italo


Andy


Italo Busi
Principal Optical Transport Network Research Engineer
Huawei Technologies Co., Ltd.
Tel : +39 345 4721946
Email : italo.busi@huawei.com<mailto:italo.busi@huawei.com>
[cid:image006.png@01D60916.F6B22990]

This e-mail and its attachments contain confidential information from HUAWEI, which is intended only for the person or entity whose address is listed above. Any use of the information contained herein in any way (including, but not limited to, total or partial disclosure, reproduction, or dissemination) by persons other than the intended recipient(s) is prohibited. If you receive this e-mail in error, please notify the sender by phone or email immediately and delete it!

From: Reshad Rahman (rrahman) [mailto:rrahman@cisco.com<mailto:rrahman@cisco.com>]
Sent: mercoledì 1 aprile 2020 20:13
To: Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>>; Joe Clarke (jclarke) <jclarke@cisco.com<mailto:jclarke@cisco.com>>
Cc: NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)


From: netmod <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org>> on behalf of 'Andy Bierman' <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Wednesday, April 1, 2020 at 2:07 PM
To: "Joe Clarke (jclarke)" <jclarke@cisco.com<mailto:jclarke@cisco.com>>
Cc: NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] versioning procedures (RFC vs. I-D)



On Wed, Apr 1, 2020 at 10:39 AM Joe Clarke (jclarke) <jclarke@cisco.com<mailto:jclarke@cisco.com>> wrote:


> On Apr 1, 2020, at 13:28, Andy Bierman <andy@yumaworks.com<mailto:andy@yumaworks.com>> wrote:
>
> Hi,
>
> I just want to confirm that all the proposed documentation procedures
> using new extensions are limited in scope to published modules only,
> and not applied to unpublished modules (terms defined in RFC 8407).
>
> IMO it would be harmful to module usability to assign revision-labels or
> include revision-related extensions in unpublished modules (e.g., Internet Drafts).
> Consider how cluttered and confusing the client-server modules would be
> if the 50+ NBC changes and versions were tracked through all the I-Ds.
>
> For IETF modules, the first usage of the revision-label
> should be in the initial RFC, and be set to 1.0.0.
>
> If the RFC is ever republished then one can expect to find an updated
> revision-label and possibly extensions tracking NBC changes.

The semver scheme allocates a major version of 0 for pre-releases where the BC/NBC rules do not apply.  I agree that a first official RFC release should be 1.0.0 (from a semver revision-label standpoint).  From a design team standpoint, I know we mentioned the 0 versioning early on, but I don’t think we spent much time talking about modules under development overall.


IMO it is confusing to ignore the semver rules for the special 0.x.y releases.
There are many NBC changes made at this point which are treated as minor or patch changes.
The procedure is really broken once you consider a WG developing any RFC-bis module.
Now the major version is not 0 and all updates look like real releases.
<RR> I don’t think that’s needed. Initial module in RFC has 1.0.0, module in (released) RFC-bis can go to 1.0.1, 1.1.0 or 2.0.0 depending on the change.

Regards,
Reshad.

My take would align to yours that we wouldn’t clutter a module with development NBC tracking.

Joe

Andy