Re: [netmod] Revision labels for submodules
Andy Bierman <andy@yumaworks.com> Wed, 13 May 2020 16:21 UTC
Return-Path: <andy@yumaworks.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 4F6D83A1030 for <netmod@ietfa.amsl.com>; Wed, 13 May 2020 09:21:40 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.887
X-Spam-Level:
X-Spam-Status: No, score=-1.887 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, SPF_HELO_NONE=0.001, T_SPF_PERMERROR=0.01, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=yumaworks-com.20150623.gappssmtp.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 nxXYRKhXlen5 for <netmod@ietfa.amsl.com>; Wed, 13 May 2020 09:21:37 -0700 (PDT)
Received: from mail-yb1-xb43.google.com (mail-yb1-xb43.google.com [IPv6:2607:f8b0:4864:20::b43]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 06A243A1024 for <netmod@ietf.org>; Wed, 13 May 2020 09:21:36 -0700 (PDT)
Received: by mail-yb1-xb43.google.com with SMTP id r14so33971ybm.12 for <netmod@ietf.org>; Wed, 13 May 2020 09:21:36 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yumaworks-com.20150623.gappssmtp.com; s=20150623; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=2NHi/L3ecROl3mPOcAOnuf6Gwv8uzCfA6yaGYenr0vM=; b=jHr51CBd/+4nmV2nc1p8nTlW0AO7/dm5tO3/Km/6Zzi51esWu2WNQdoZ4n3jM5BNFt sO313rNdBDkeSOS69HiWO5ZmlYAmxAuBs/rJ+RvLaoY0h4hSdE/xp05A2iZl6/VDJrtr jfX83+qIzjMGdXmaqSntID/Bi/DU8ROdGBU7J5yOT/tFKgAZpT/G5SOlQ8UWAO1A8CN5 txhD33H0Y9/4KahrG8wfdBQ1gJ97KM540rfMDG1cC4x4A40xZ3X8n+Bu7WTdOUFZ/0gI QMN8qn/ffoVv8UozeUgx6EIyoJzinX7yGhUJq1ZLhJ6RoMS0L4v3z5t9G+5rHL5uda1u pDYg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=2NHi/L3ecROl3mPOcAOnuf6Gwv8uzCfA6yaGYenr0vM=; b=on942Ij57q8KbqefF4BYFw0tck2kyhPRIpccyzifZ+hCUhBZkc8v/K3zBZtjzQ+B93 tIajazTswswqejk8Aiqy2SXkl4KVUdV+Np5UdcAGFji2KmYzunj4d2cbm/WVkW/15Hof gPJfECtIu6nyn7CsMNiY8Zv08Rb836koOiojg7K7sJlWoCfHLxQThIEW/7DfI+w9Gdvc /Fi+eciwCHm9vfiNAOAh+tCtMUEI2BkXeZU/Jgios+w2CSk3IcfzuEGwVO8x47BFAnmM /mzTYmFXtT8L8ohsfJnOwR0uqWkNRemuY2UIMSb/HHxviYA5xqELjRA46ojB9sjc9P8r bQqg==
X-Gm-Message-State: AGi0PuY1GsRJSFkTDMEykhoPAsTTnn9zaiNnZT1FZw/fFPGS5JzVbmWQ 10rPG6URKbqPGogHxUCbdzWfIhEqJQj6EFjyBd8XWw==
X-Google-Smtp-Source: APiQypIYdqgEYq7fshp9WKUp94MBycTz0eVd0rManT8Uw9wQq6EISLUyCDNmQktKKv1qcr9L6gWBVikwWeQIAdjgPQY=
X-Received: by 2002:a25:d015:: with SMTP id h21mr40387350ybg.145.1589386895755; Wed, 13 May 2020 09:21:35 -0700 (PDT)
MIME-Version: 1.0
References: <8D4A99E4-93D3-495C-9B46-26C61BBABAA7@cisco.com> <20200508.231215.893859438588129498.id@4668.se> <B692BC98-AA66-4E12-9EF5-516FFCF04F33@cisco.com> <20200509.175337.1668899395924812873.id@4668.se> <DM5PR08MB2633E41BFC1C1FBBB8D2C7059BA30@DM5PR08MB2633.namprd08.prod.outlook.com> <75D482FE-2F79-4B39-A7B7-B131510BF039@cisco.com> <DM5PR08MB26334810A88C7F994370156B9BBF0@DM5PR08MB2633.namprd08.prod.outlook.com>
In-Reply-To: <DM5PR08MB26334810A88C7F994370156B9BBF0@DM5PR08MB2633.namprd08.prod.outlook.com>
From: Andy Bierman <andy@yumaworks.com>
Date: Wed, 13 May 2020 09:21:24 -0700
Message-ID: <CABCOCHQ7S=iUUbDpUzv6cPwZtc77VqVK3aju3XyeHwWQD6-n_A@mail.gmail.com>
To: "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
Cc: "Reshad Rahman (rrahman)" <rrahman@cisco.com>, Martin Björklund <mbj+ietf@4668.se>, "netmod@ietf.org" <netmod@ietf.org>
Content-Type: multipart/alternative; boundary="00000000000055383c05a589f9a4"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/Gc7n8IHmtVQnjWDmGvJFRHqODv8>
Subject: Re: [netmod] Revision labels for submodules
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: Wed, 13 May 2020 16:21:40 -0000
Hi, On Wed, May 13, 2020 at 8:50 AM Sterne, Jason (Nokia - CA/Ottawa) < jason.sterne@nokia.com> wrote: > Hi guys, > > As someone who is heavily involved in the development of an extensive YANG > model comprised of submodules, I'm not a fan of mandating that include by > revision is mandatory for submodules. It may indeed be a good idea (so > perhaps SHOULD is fine) but I can see it causing problems on the > implementation side. > > The primary development of a data model may be distributed out to > submodules and the main module may only be a top level container for the > submodules (and rarely touched). This would suddenly create an ordering > dependency in the release process that requires the main module file to > systematically be updated after all development of the submodules is > halted. Then the results of the submodules has to be used to then go update > the module. Solvable - yes, but folks who work on large scale projects will > know that suddenly requiring that type of development process change isn't > as easy as it may sound on paper. > > It is possible to manage the "packaging" of submodules and modules out of > band or other mechanisms. > > I agree with you about SHOULD instead of MUST. The client should rely on the YANG library data for submodule revisions, since the include-by-revision is usually not used. It does seem like a good idea for main module conformance to lock down the submodule revisions expected for a specific main module revision. OpenConfig, for example, uses submodules but does not currently include by > version. I'm not proposing this is ideal. But I think we should leave it as > acceptable. > > Rgds, > Jason > > Andy > > -----Original Message----- > > From: Reshad Rahman (rrahman) <rrahman@cisco.com> > > Sent: Tuesday, May 12, 2020 9:46 AM > > To: Sterne, Jason (Nokia - CA/Ottawa) <jason.sterne@nokia.com>; Martin > > Björklund <mbj+ietf@4668.se> > > Cc: netmod@ietf.org > > Subject: Re: [netmod] Revision labels for submodules > > > > Hi Jason, > > > > On 2020-05-09, 12:52 PM, "Sterne, Jason (Nokia - CA/Ottawa)" > > <jason.sterne@nokia.com> wrote: > > > > Hi Martin, > > > > Your approach sounds good to me. I was forgetting about the > "editorial" > > level of change (e.g. the 3rd part of SemVer). So I agree that moving a > leaf > > would be an editorial change in both submodules. > > > > But what if a module is not doing include by revision? It may indeed > make > > sense to include by revision but it isn't mandated. For sake of argument > here > > what if the module itself didn't change at all in this case? > > It is now mandated in section 3 of draft-ietf-netmod-yang-module- > > versioning-00. > > > > > > It *feels* like the right thing to do here is to consider the module > overall > > to have an editorial change. > > > > The revision statement of sub-modules has a scope of the file (the > sub- > > module). It isn't clear to me whether the revision of a *module* has a > scope > > that includes all sub-modules or if it is just a scope of the module > file. But we > > could clarify that as part of this work. > > Because of include by revision, the module would have to change to > include > > a different revision of a sub-module. > > > > Regards, > > Reshad. > > > > Jason > > > > > -----Original Message----- > > > From: Martin Björklund <mbj+ietf@4668.se> > > > Sent: Saturday, May 9, 2020 11:54 AM > > > To: rrahman@cisco.com > > > Cc: netmod@ietf.org; Sterne, Jason (Nokia - CA/Ottawa) > > > <jason.sterne@nokia.com> > > > Subject: Re: [netmod] Revision labels for submodules > > > > > > "Reshad Rahman (rrahman)" <rrahman@cisco.com> wrote: > > > > Hi, > > > > > > > > On 2020-05-08, 5:12 PM, "Martin Björklund" <mbj+ietf@4668.se> > > wrote: > > > > > > > > Hi, > > > > > > > > "Reshad Rahman (rrahman)" <rrahman@cisco.com> wrote: > > > > > Hi, > > > > > > > > > > This came up during this week's meeting. We briefly > discussed > > whether > > > > > there's a need to version sub-modules or can we restrict > versioning > > to > > > > > modules only. We would like to hear from the WG on this, > > especially > > > > > those with experience managing sub-modules. > > > > > > > > Yes I think this is needed. At tail-f, there are several > modules with > > > > many submodules. These modules always use include by > revision, > > and > > > > always the main module is always uddated when any submodule > is > > > > updated. It doens't make much sense IMO to not use include > by > > > > revision. > > > > > > > > > For completeness, below is an update from Jason in github: > > > > > My initial reaction is that we should not preclude the use > of > > revision > > > > > label with a submodule. Submodules have their own version > > today. The > > > > > trick is to define (or explicitly say it is out of scope) > whether a > > > > > module version must change if any underlying submodule > versions > > > > > change. That gets difficult if you consider simply moving > a leaf > > from > > > > > one sub-module to another (without changing anything else > about > > it - > > > > > its context, etc). > > > > > > > > Why would this be difficult? The revision date is updated > on any > > > > editorial change (see 7.1.9 of RFC 7950). So if a leaf gets > moved > > > > from submodule A to submodule B, then their revisions are > udpated, > > and > > > > hence the module's include-by revision is udpated, and hence > the > > > > module's revision ois updated. > > > > > > > > I think what Jason meant is that by moving a leaf between > > submodules, > > > > it's possible the module's schema didn't change. > > > > So yes revision date is updated, but you can't blindly update the > > > > revision-label. > > > > > > Why not? > > > > > > > > > /martin > > > > > > > > > > > > > > Regards, > > > > Reshad. > > > > > > > > /martin > > > > > > > > > > > > > > > > > > > > > > Regards, > > > > > Reshad. > > > > > > > > > > On 2020-03-27, 5:44 PM, "netmod on behalf of Reshad Rahman > > > (rrahman)" > > > > > <netmod-bounces@ietf.org on behalf of > > > > > rrahman=40cisco.com@dmarc.ietf.org> wrote: > > > > > > > > > > Hi, > > > > > > > > > > https://github.com/netmod-wg/yang-ver-dt/issues/49 > > > > > > > > > > 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? > > > > > > > > > > Good point. What was meant by that the label space for > > modules and > > > > > sub-modules are orthogonal. e.g. the sub-module and > module > > both > > > have > > > > > the same label, it shouldn't be inferred that the 2 > are related. > > > > > We'll change/clarify the text. > > > > > > > > > > Regards, > > > > > Reshad. > > > > > > > > > > On 2020-03-20, 5:08 PM, "netmod on behalf of Reshad > Rahman > > > (rrahman)" > > > > > <netmod-bounces@ietf.org on behalf of > > > > > rrahman=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 on behalf of > mbj+ietf@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 > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > > _______________________________________________ > > > > > netmod mailing list > > > > > netmod@ietf.org > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > > _______________________________________________ > > > > > netmod mailing list > > > > > netmod@ietf.org > > > > > https://www.ietf.org/mailman/listinfo/netmod > > > > > > > > > > > > > > > > > > > > > > _______________________________________________ > netmod mailing list > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Martin Björklund
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Martin Björklund
- Re: [netmod] Revision labels for submodules Martin Björklund
- Re: [netmod] Revision labels for submodules Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] Revision labels for submodules Andy Bierman
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] Revision labels for submodules Jan Lindblad
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Sterne, Jason (Nokia - CA/Ottawa)
- Re: [netmod] Revision labels for submodules Andy Bierman
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)
- Re: [netmod] Revision labels for submodules Reshad Rahman (rrahman)