Re: [netmod] All IETF YANG modules MUST include revision-label statements

"Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com> Mon, 30 March 2020 21:38 UTC

Return-Path: <jason.sterne@nokia.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 D81683A08A5 for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2020 14:38:06 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: 0
X-Spam-Level:
X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[DKIMWL_WL_HIGH=-0.001, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=nokia.onmicrosoft.com
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 agPZ3MuBj5fz for <netmod@ietfa.amsl.com>; Mon, 30 Mar 2020 14:38:04 -0700 (PDT)
Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-eopbgr750133.outbound.protection.outlook.com [40.107.75.133]) (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 C9D623A08AB for <netmod@ietf.org>; Mon, 30 Mar 2020 14:38:03 -0700 (PDT)
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=hR4B9Q8nA/eb1QZXoKUSRsDy02BW+1X4IF29tzgz7XtZqv/w0NNr8Zd/QP36cNIf908Av8lRvN1ytu39SX2jdr2ZJAKQ83pK7WqyiYb5gpwiJK1FeTQi6bCxpBEyeRcGAr8P7y3z2B1l1bT2DFIYly1nJBPauK6yQ5eYzTN5FSLva/KuAZXV5OOb/9x469jL+1bsL+plDz5R+VhzFJeybna5KOsKzjpo3bNDLNY68+yy8uRAQH5cHQg8PSL9G/0x8/Ooy0CknWfFSpxHDPqttgZ7tP0YSghJ1ccW29VH7WVJl3/iN9rSL4gVJpb3A2hQ4F3lMnzlgZBOrUajSeOs8A==
ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BTkzeuqT7+umyK58pFoBh6CZ+dh7R9T16MLjnImZllo=; b=NChK5QOSrfcOIrcFEv+5q0lwJGTpd6Xm8WCKTwZ8f+zWokrT83lvkGaQrarHT5p5M35wrAzW8F9nQmsNKl7p3guUEhs4yd7YXHVJ9bOH/XLf0peSqRVGNdOq1vfjucRzS0ApncqGLIqszC0oH2LsBROIPKRAVZYlAFWkY4eCBAX6pt7fked6v+4gaW11jwkZRQ0+R9Bgmrq60QMtkHmgkUT2KyfahAWTQio6AC8DIoi0zG0gOxD5VSemJioyvMUz57BhuWHfbkjUV/K3CtJIDjHDSZ0ILMUk40QG1/kYqSdOEwEM0SqbA3jJCRoIVNWjEoo4V4k5futS4nd0fiSIpw==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nokia.com; dmarc=pass action=none header.from=nokia.com; dkim=pass header.d=nokia.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nokia.onmicrosoft.com; s=selector1-nokia-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=BTkzeuqT7+umyK58pFoBh6CZ+dh7R9T16MLjnImZllo=; b=zIDK6VSlfupaAFDbixeC7OCFV7joIUXLPdKOmbYG19aw/GKlciLzhs83I38YnjjlXwUhpWnETbNxqGAzREK5+AoOfYs3x7+x+/om1z8RxReLyK2QVZE5O6IVtgawfbF6UM7KoLkwiT8/WYE5keLy2YLPk5nPrzutsWf/x3fxqTI=
Received: from DM5PR08MB2633.namprd08.prod.outlook.com (2603:10b6:3:ca::21) by DM5PR08MB3465.namprd08.prod.outlook.com (2603:10b6:4:6b::26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2856.20; Mon, 30 Mar 2020 21:38:01 +0000
Received: from DM5PR08MB2633.namprd08.prod.outlook.com ([fe80::c00d:56c3:675e:ec63]) by DM5PR08MB2633.namprd08.prod.outlook.com ([fe80::c00d:56c3:675e:ec63%3]) with mapi id 15.20.2856.019; Mon, 30 Mar 2020 21:38:01 +0000
From: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
To: Andy Bierman <andy@yumaworks.com>, "Reshad Rahman (rrahman)" <rrahman@cisco.com>
CC: NetMod WG <netmod@ietf.org>
Thread-Topic: [netmod] All IETF YANG modules MUST include revision-label statements
Thread-Index: AQHWBtt7M0hFMwGcFk22QjMBKcTjZw==
Date: Mon, 30 Mar 2020 21:38:01 +0000
Message-ID: <DM5PR08MB26337034A2C4FF473ED059189BCB0@DM5PR08MB2633.namprd08.prod.outlook.com>
References: <75CFDBD9-143C-407A-B7C3-26CEC51E229C@cisco.com> <20200328.094121.1160081114435152145.id@4668.se> <76623C79-BB91-4B5F-8FEA-406ADEAD1647@cisco.com> <20200330.202016.930329343788112268.id@4668.se> <CABCOCHS=y8d00xHLzV+LNpvN_=jScw5VizGYWXGopsQAi8qZUw@mail.gmail.com> <7BF6294F-E354-45D3-B0FC-F4801ADC3F78@cisco.com> <CABCOCHSyxBtCaBVTMK7uO3t0TfMVkfGFpTZLV21HnY1KX97Zzw@mail.gmail.com>
In-Reply-To: <CABCOCHSyxBtCaBVTMK7uO3t0TfMVkfGFpTZLV21HnY1KX97Zzw@mail.gmail.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
authentication-results: spf=none (sender IP is ) smtp.mailfrom=jason.sterne@nokia.com;
x-originating-ip: [65.110.221.64]
x-ms-publictraffictype: Email
x-ms-office365-filtering-ht: Tenant
x-ms-office365-filtering-correlation-id: d29cfca6-1763-416c-d672-08d7d4f29f11
x-ms-traffictypediagnostic: DM5PR08MB3465:
x-microsoft-antispam-prvs: <DM5PR08MB34650B308FCCEAA623374B759BCB0@DM5PR08MB3465.namprd08.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:7691;
x-forefront-prvs: 0358535363
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM5PR08MB2633.namprd08.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(10019020)(4636009)(396003)(39860400002)(136003)(376002)(346002)(366004)(2906002)(8676002)(316002)(4326008)(186003)(30864003)(66574012)(86362001)(478600001)(966005)(66476007)(66946007)(81156014)(81166006)(76116006)(7696005)(55016002)(6506007)(53546011)(52536014)(9686003)(33656002)(26005)(110136005)(66556008)(71200400001)(8936002)(66446008)(5660300002)(64756008); DIR:OUT; SFP:1102;
received-spf: None (protection.outlook.com: nokia.com does not designate permitted sender hosts)
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: KSmuR9fAOdpKrmf9b0cY+gjKmmrjyaBoVMVbTBDHpOL+En+ATVkiq7n7mGpdvE/0i/zvwPnBdsbh2GFDgSyBNjcY0JF0Uj+pxHQqWcu1W41J/K4zwGjDyIGO4vYmvc3dNGWajzQVmij1uiaTw+YTlSQF+X22Eku+7zJSLnbxQi2psawkhvqT6hbVf6DVEt8NHl2zTERWyraEEe/Ow7j8c+f9m7r/Eoh6g9/BLwkeFoZb62WGNPgYB+UuOxLo3xGvIybgdrOklBkCpJM9fXXSe5pvfUTGqL5cBcbDO5hrBkVOp8W8YelennkxQVlfvL7eW9wAbAXuciuiQI7Z+fYSK4dzN6kRnU2ZTbRSlONI8++ASddpC8Oc6OJ837ebNH2hb2bLeermWWksQyqBE3Bcu8yZg/wHUAXd728GGR+yjjGpexAygZl2NYHOCOiZwHr/1j+rjfkzQ9hamrky8wbCSP7JeXlyuSDp134/yZa/BLX11IqfB5/W1u0x4g4JTzVGr+bnr96mDLRWwGKdsZ9bZw==
x-ms-exchange-antispam-messagedata: as+nJ+KvPgz6KX0hjx5GJneR/yW/XzW9kJu6+sClk4zNQXNOnbYvHbuot9FEF3H81LpB0jDEesUDcj0TFypqdA4F7KTjvHsScgjH0TVVZ/qzNEdVvkp7bsv1xqTLzghM4rR4rVFgzfcqIkYWUa/fFw==
x-ms-exchange-transport-forked: True
Content-Type: multipart/alternative; boundary="_000_DM5PR08MB26337034A2C4FF473ED059189BCB0DM5PR08MB2633namp_"
MIME-Version: 1.0
X-OriginatorOrg: nokia.com
X-MS-Exchange-CrossTenant-Network-Message-Id: d29cfca6-1763-416c-d672-08d7d4f29f11
X-MS-Exchange-CrossTenant-originalarrivaltime: 30 Mar 2020 21:38:01.1675 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5d471751-9675-428d-917b-70f44f9630b0
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: ftZUlgf1CPL7g1s8ybie01Ky5D5t4x36gfMC4YbeFFx12KBSn0P/+OjjEIYB1RC9FsVUfhnekoj21PtJsD4JQA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR08MB3465
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/cUaRgccjQVXkr1BGURgfZxxRP0s>
Subject: Re: [netmod] All IETF YANG modules MUST include revision-label statements
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: Mon, 30 Mar 2020 21:38:07 -0000

>IMO it is a bad idea to overload a well-understood pattern like major.minor.patch with
extra semantics like backward-compatibility.

Semver already encodes BC information as a fundamental part of the numbering scheme. The major gets bumped for a NBC change.

>A tool or a person can read the revision history for details about revision changes.

That's only if the revision history is 100% complete. Those could get long and there may be a desire to eventually truncate.  And having to scan up a list is a lot more painful than looking at a nice 3.2.1 vs 2.0.1.

>Adding letters to the end just confuses people who thought they were looking at openconfig-version or a familiar linux library version string.

If there are no letters, then they can interpret it as a normal semver. If they see the letters it prompts them to say "oh - what's that. I'd better go look up what that means".

Jason


From: netmod <netmod-bounces@ietf.org> On Behalf Of Andy Bierman
Sent: Monday, March 30, 2020 4:46 PM
To: Reshad Rahman (rrahman) <rrahman@cisco.com>
Cc: NetMod WG <netmod@ietf.org>
Subject: Re: [netmod] All IETF YANG modules MUST include revision-label statements



On Mon, Mar 30, 2020 at 1:26 PM Reshad Rahman (rrahman) <rrahman@cisco.com<mailto:rrahman@cisco.com>> wrote:

From: 'Andy Bierman' <andy@yumaworks.com<mailto:andy@yumaworks.com>>
Date: Monday, March 30, 2020 at 2:51 PM
To: Martin Björklund <mbj+ietf@4668.se<mailto:mbj%2Bietf@4668.se>>
Cc: "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>>, NetMod WG <netmod@ietf.org<mailto:netmod@ietf.org>>
Subject: Re: [netmod] All IETF YANG modules MUST include revision-label statements



On Mon, Mar 30, 2020 at 11:20 AM Martin Björklund <mbj+ietf@4668.se<mailto:mbj%2Bietf@4668.se>> wrote:
"Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>> wrote:
> On 2020-03-28, 4:41 AM, "Martin Björklund" <mbj+ietf@4668.se<mailto:mbj%2Bietf@4668.se>> wrote:
>
>     "Reshad Rahman (rrahman)" <rrahman@cisco.com<mailto:rrahman@cisco.com>> wrote:
>     > Hi,
>     >
>     > https://github.com/netmod-wg/yang-ver-dt/issues/45
>     >
>     >         o  7.1
>     >
>     >           The text says:
>     >
>     >             All IETF YANG modules MUST include revision-label statements for
>     >             all
>     >             newly published YANG modules, and all newly published revisions of
>     >             existing YANG modules.  The revision-label MUST take the form of a
>     >             YANG semantic version number [I-D.verdt-netmod-yang-semver].
>     >
>     >           I strongly disagree with this new rule.  IETF modules use a linear
>     >           history, so there are no reasons to use "modified semver".
>     >
>     >           It is ok to use rev:nbc-changes if needed, though.
>     >
>     > We believe some IETF models may not follow linear history, this was
>     > brought up (I think) for IDR. Modified semver allows for non-linear
>     > history and also doesn't preclude linear history. So even if we end up
>     > having no IETF modules using branching, modified semver still works.
>
>     With the clarifiactions and updates in
>     draft-verdt-netmod-yang-module-versioning, non-linear versioning
>     works without modified semver.  So there is no technical reason to use
>     modified semver in IETF modules.
>
> So are you proposing we use some other revision-label scheme (e.g. semver 2.0.0) for IETF modules?
>
> Or that IETF modules shouldn't use revision-labels?

That IETF shouldn't use revision labels.

I do not like modified semver because it will cause confusion with the real semver
introduced by OpenConfig.

Sometimes multiple release trains are needed, and the revision label (in addition to revision-date)
can help distinguish revisions from each release train, so plain semver that is introduced over time
would be OK.

It is possible to introduce only BC changes on each release train.
The BC vs. NBC issue has nothing to do with multiple release trains.



I am all for using rev:nbc-changes or rev:editorial-changes (which I
think should be added) in IETF modules.

I agree that this is sufficient and modified semver provides no added value, only confusion.
<RR> There are 2 questions here:

  1.  Is revision-label useful? We believe it is useful since it allows a user to easily figure out whether 2 revisions are (N)BC
  2.  If it is useful, what’s the best scheme to use? Semver, modified semver, …?

You’re not keen on modified semver just because of the name, or are there other reasons?



IMO it is a bad idea to overload a well-understood pattern like major.minor.patch with
extra semantics like backward-compatibility.  A tool or a person can read the revision history
for details about revision changes.  Adding letters to the end just confuses people who
thought they were looking at openconfig-version or a familiar linux library version string.


I don't agree that the IETF should be working to normalize NBC changes in the first place.


Regards,
Reshad.

Regards,
Reshad.


Andy



/martin


Andy


>
> Or do you have something else in mind?
>
> Regards,
> Reshad.
>
>     I can reluctantly accept that modified smever is published as
>     Experimental.  But that doesn't mean that IETF modules should use it.
>
>
>     /martin
>
>
>     >
>     > Regards,
>     > Reshad.
>     >
>     >
>     > On 2020-03-20, 5:08 PM, "netmod on behalf of Reshad Rahman (rrahman)"
>     > <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org> on behalf of
>     > rrahman=40cisco.com@dmarc.ietf.org<mailto:40cisco.com@dmarc.ietf.org>> wrote:
>     >
>     >     Hi Martin,
>     >
>     >     We've opened issues to track your review comments (see below). Will
>     >     kick off separate therads for each issue.
>     >
>     >     https://github.com/netmod-wg/yang-ver-dt/issues?q=is%3Aissue+is%3Aopen+label%3Aupdated-mod-rev-handling
>     >
>     >     Regards,
>     >     Reshad.
>     >
>     >     On 2020-03-10, 3:31 PM, "netmod on behalf of Martin Björklund"
>     >     <netmod-bounces@ietf.org<mailto:netmod-bounces@ietf.org> on behalf of mbj+ietf@4668.se<mailto:mbj%2Bietf@4668.se>> wrote:
>     >
>     >         Hi,
>     >
>     >         Here are my review comments of
>     >         draft-verdt-netmod-yang-module-versioning-01.
>     >
>     >
>     >
>     >         o  3.1.1
>     >
>     >             o  In statements that have any data definition statements as
>     >                substatements, those data definition substatements MAY be
>     >                reordered, as long as they do not change the ordering or any
>     >                "rpc"
>     >                "input" substatements.
>     >
>     >           I think this needs to capture that no descendant statements to
>     >           "input" can be reordered.  Same for "output" (note, "input" and
>     >           "output" in both "rpc" and "action").
>     >
>     >
>     >         o  3.3
>     >
>     >             All revision labels that match the pattern for the "version"
>     >             typedef in the ietf-yang-semver YANG module MUST be interpreted as
>     >             YANG semantic version numbers.
>     >
>     >           I don't think this is a good idea.  Seems like a layer violation.
>     >           What if my project use another dialect of semver, that wouldn't be
>     >           possible with this rule.  I think this needs to be removed.
>     >
>     >
>     >         o  3.3
>     >
>     >             Submodules MUST NOT use revision label schemes that could be
>     >             confused
>     >             with the including module's revision label scheme.
>     >
>     >           Hmm, how do I ensure that this MUST NOT is handled correctly?  What
>     >           exactly does "could be confused with" mean?
>     >
>     >
>     >         o  3.3
>     >
>     >               In the filename of a YANG module, where it takes the form:
>     >               module-
>     >               or-submodule-name ['@' revision-label] ( '.yang' / '.yin' )
>     >
>     >           Should this section update 5.2 of RFC 7950?  I know that 5.2 just
>     >           says "SHOULD".  But existing tools implement this SHOULD, and they
>     >           need to be updated to handle this new convention.
>     >
>     >           But I wonder if this a good idea.  It means that a tool that looks
>     >           for a module with a certain revision date cannot simply check the
>     >           filenames, but need to parse all available modules (wijust to find
>     >           the
>     >
>     >
>     >
>     >         o  3.4
>     >
>     >              leaf imperial-temperature {
>     >                type int64;
>     >                units "degrees Fahrenheit";
>     >                status deprecated {
>     >                  rev:status-description
>     >                    "Imperial measurements are being phased out in favor
>     >                     of their metric equivalents.  Use metric-temperature
>     >                     instead.";
>     >                }
>     >                description
>     >                  "Temperature in degrees Fahrenheit.";
>     >              }
>     >
>     >           I don't think rev:status-description is necessary / worth it.  This
>     >           can easily be written with the normal description statement instead:
>     >
>     >              leaf imperial-temperature {
>     >                type int64;
>     >                units "degrees Fahrenheit";
>     >                status deprecated;
>     >                description
>     >                    "Imperial measurements are being phased out in favor
>     >                     of their metric equivalents.  Use metric-temperature
>     >                     instead.
>     >
>     >                     Temperature in degrees Fahrenheit.";
>     >              }
>     >
>     >
>     >         o  3.5
>     >
>     >           The example modules should be legal YANG modules.  Use e.g.
>     >           "urn:example:module" as namespace.
>     >
>     >           Also, the modules are missing the last "}", which confuses the
>     >           "rfcstrip" tool.
>     >
>     >
>     >         o 4.1.1
>     >
>     >             Alternatively, the first example could have used the revision
>     >             label
>     >             "1.0.0" instead, which selects the same set of revisions/versions.
>     >
>     >             import example-module {
>     >               rev:revision-or-derived 1.0.0;
>     >             }
>     >
>     >           Shouldn't this be s/1.0.0/2.0.0/g ?
>     >
>     >
>     >         o  5
>     >
>     >           I think the module name "ietf-yl-revisions" should be changed to
>     >           "ietf-yang-library-revisions".   "yl" is not a well-known acronym.
>     >
>     >
>     >         o  5.2.2
>     >
>     >           Wouldn't it be better if the leaf "deprecated-nodes-implemented" and
>     >           "obsolete-nodes-absent" were of type "boolean" rather than type
>     >           "empty"?
>     >
>     >
>     >         o  7.1
>     >
>     >           The text says:
>     >
>     >             All IETF YANG modules MUST include revision-label statements for
>     >             all
>     >             newly published YANG modules, and all newly published revisions of
>     >             existing YANG modules.  The revision-label MUST take the form of a
>     >             YANG semantic version number [I-D.verdt-netmod-yang-semver].
>     >
>     >           I strongly disagree with this new rule.  IETF modules use a linear
>     >           history, so there are no reasons to use "modified semver".
>     >
>     >           It is ok to use rev:nbc-changes if needed, though.
>     >
>     >
>     >         o 7.1.1
>     >
>     >           There is a missing " in:
>     >
>     >            4.  For status "obsolete", it is RECOMMENDED to keep the "status-
>     >                description" information, from when the node had status
>     >                "deprecated, which is still relevant.
>     >          HERE  -----------^
>     >
>     >
>     >         o  8
>     >
>     >           s/CODE ENDS>/<CODE ENDS>/
>     >
>     >
>     >         o Both YANG modules
>     >
>     >           All extensions should specify the grammar; i.e., in which statements
>     >           they can be present and which substatements they can have.
>     >
>     >
>     >
>     >         /martin
>     >
>     >         _______________________________________________
>     >         netmod mailing list
>     >         netmod@ietf.org<mailto:netmod@ietf.org>
>     >         https://www.ietf.org/mailman/listinfo/netmod
>     >
>     >
>     >     _______________________________________________
>     >     netmod mailing list
>     >     netmod@ietf.org<mailto:netmod@ietf.org>
>     >     https://www.ietf.org/mailman/listinfo/netmod<https://www.ietf..org/mailman/listinfo/netmod>
>     >
>     >
>
>
_______________________________________________
netmod mailing list
netmod@ietf.org<mailto:netmod@ietf.org>
https://www.ietf.org/mailman/listinfo/netmod