Re: [netmod] example modules in 6087bis
Martin Bjorklund <mbj@tail-f.com> Thu, 19 January 2017 10:00 UTC
Return-Path: <mbj@tail-f.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 7B679129428 for <netmod@ietfa.amsl.com>; Thu, 19 Jan 2017 02:00:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -5.1
X-Spam-Level:
X-Spam-Status: No, score=-5.1 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RP_MATCHES_RCVD=-3.199, SPF_PASS=-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 6nZcbOP9i2lU for <netmod@ietfa.amsl.com>; Thu, 19 Jan 2017 02:00:52 -0800 (PST)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id A66D5127ABE for <netmod@ietf.org>; Thu, 19 Jan 2017 02:00:52 -0800 (PST)
Received: from localhost (unknown [173.38.220.36]) by mail.tail-f.com (Postfix) with ESMTPSA id BFCD21AE018A; Thu, 19 Jan 2017 11:00:51 +0100 (CET)
Date: Thu, 19 Jan 2017 11:00:50 +0100
Message-Id: <20170119.110050.821999647646840232.mbj@tail-f.com>
To: andy@yumaworks.com
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHRkFwDrQrGqk61nh-3fc+emtJEshdEMqA+G4r2YaKxwdg@mail.gmail.com>
References: <20170116.164803.729427888661667991.mbj@tail-f.com> <c41146ec-3db9-1752-d32f-0367418c7e66@cisco.com> <CABCOCHRkFwDrQrGqk61nh-3fc+emtJEshdEMqA+G4r2YaKxwdg@mail.gmail.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/WFSJb9jHrlZJIutffnXSKbApgdE>
Cc: netmod@ietf.org
Subject: Re: [netmod] example modules in 6087bis
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.17
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, 19 Jan 2017 10:00:54 -0000
Andy Bierman <andy@yumaworks.com> wrote: > On Wed, Jan 18, 2017 at 9:12 AM, Benoit Claise <bclaise@cisco.com> wrote: > > > Martin, > > > > Hi, > > > > It turns out that the recommendations on example modules are a bit > > unclear. Different drafts do very different things. Some examples: > > https://tools.ietf.org/html/draft-ietf-i2rs-yang-l3-topology-08#section-6.1.2 > > > > This example module really looks like a real module. It uses an > > IANA-controlled namespace, and the meta-statements indicate that this > > is a normative modules. But the module does not use the <CODE> tags. > > > > https://tools.ietf.org/html/draft-ietf-netconf-restconf-18#appendix-C.1 > > > > This module is better, but it is written to follow RFC 6087 rules > > (pass pyang --ietf), with the result that it contains a bit of "noise" > > > > It takes a lot of YANG experience to be able to distinguish what is noise > > or not. > > > > I agree. I see Martin's point though -- maintenance clauses like contact > and organization > are not really needed for examples. > > > > with some meaningless descriptions and meta-statements. It also does > > not use <CODE> tags. > > > > > > A good example (IMO) is found inhttps://tools.ietf.org/html/rfc8022#appendix-C > > > > It uses descriptions when necessary (high s/n), no fake > > meta-statements etc. > > > > However, it might be a good idea to require example modules to have a > > "description" statement that explains what the module examplifies. > > For example, the example-rip could have: > > > > description > > "This example module demonstrates how the core routing data model > > can be extended to support a new control-plane protocol. It is > > intended as an illustration rather than a real definition of a > > data model for the Routing Information Protocol (RIP)."; > > > > > > > > I think that 6087bis is clear when it says: > > > > The guidelines in this document refer mainly to a normative complete > > module or submodule, but may be applicable to example modules and > > YANG fragments as well. > > > > I think this states that example modules do not have to pass pyang > > --ietf. > > > > > > In order to make this more clear, I suggest the following changes to > > draft-ietf-netmod-rfc6087bis-09 > > > > In the Terminology section 2.4: > > > > NEW: > > > > o Example module: A complete YANG module or submodule that is > > intended to illustrate some specific aspect, but not intended for > > actual use. > > > > It doesn't solve this issue, because https://tools.ietf.org/html/ > > draft-ietf-netmod-rfc6087bis-09#section-4.2.1 says: > > > > The <CODE BEGINS> convention SHOULD be used for complete example > > modules, but not YANG fragments. > > > > That implies to me that we have 3 types: > > 1. *complete *example modules => I read it that they must pass pyang > > -ietf, SHOULD have <CODE BEGINS> > > If there is <CODE BEGINS>, it's because people will want to extract > > it, and play with it. So the tools chain must work > > 2. the other example modules. No <CODE BEGINS>. I guess they don't pass > > pyang > > 3. YANG fragments. No <CODE BEGINS>. I guess they don't pass pyang > > > > In practice, 2 and 3 are the same. So we need just two definition > > > > Scrap "complete" would help but that's not enough: > > > > The <CODE BEGINS> convention SHOULD be used for example > > modules, but not YANG fragments. > > > > We only need to clarify 3 points > > <CODE BEGINS>, yes/no > > pyang, yes/no > > pyang --ietf yes/no > > > > I guess we want, putting all this together: > > > > o Example module: A complete YANG module or submodule that is > > intended to illustrate some specific aspect, but not intended for > > actual use. Example module MUST be valid according to RFC 7950, > > except when they are used to illustrate some illegal constructs. > > Example module MAY be valid according to the rules in this document. > > > > o YANG fragment: A incomplete YANG module or submodule that is > > intended to illustrate some specific aspect, but not intended for > > actual use. YANG fragments MUST be valid according to RFC 7950, > > except when they are used to illustrate some illegal constructs. > > > > > This is good Fine with me. > I prefer: > - MUST use CODE BEGINS for a real module > - MUST NOT use CODE BEGINS for an example module I agree (see below) > - MUST pass pyang --ietf for a real module > - MUST pass pyang for example module Yes, this follows from Benoit's proposed text above. > I have already received private emails about implementing the > example-jukebox > module in RESTCONF as part of the standard. We already have operational > experience that people can be confused by the example modules, and > think they are supposed to be implemented for RFC compliance. > > > > > > The <CODE BEGINS> convention SHOULD be used for example > > modules that pass validation according to RFC 7950. > > > > The <CODE BEGINS> convention MUST NOT be used for YANG fragment > > and for example modules that are used to illustrate some illegal constructs > > (therefore failing validation according to RFC 7950). > > > > > > > This text concerns me a little > We are not following the <CODE BEGINS> anywhere for examples. > the tools are extracting anything that starts "module blah". > IMO this makes it easier to confuse real and example modules. > I would prefer to consider only real modules as Code Components. I agree. /martin > > (We collect broken modules to test the compiler in modules/test/fail folder, > so even bad modules might be extracted.) > > > > In section 4: > > > > NEW: > > > > All normative modules or submodules, example modules or submodules, > > and example YANG fragments MUST be valid according to RFC 7950, > > except when they are used to illustrate some illegal constructs. > > > > We wouldn't need this if you take my proposal > > > > In Section 4.2.1 "Example Modules": > > > > NEW: > > > > An example module SHOULD have a namespace on the form > > > > o http://example.com/<module-name> OR > > o urn:example:<module-name> > > > > An example module SHOULD have a description statement that describes > > that it is an example module, and what it examplifies. > > > > An example module SHOULD NOT have any additional meta-statements > > (i.e., "organization", "contact", or "reference"). > > > > An example module SHOULD use the "description" statement in any > > definition where it is required to understand the example. > > > > > > Fine. > > > > Note that the RESTCONF RFC publication depends on this RFC6087bis > > convention. So let's quickly come to a conclusion. > > > > Regards, Benoit > > > > > > Andy > > > > > /martin > > > > _______________________________________________ > > netmod mailing listnetmod@ietf.orghttps://www.ietf.org/mailman/listinfo/netmod > > . > > > > > > > > > > _______________________________________________ > > netmod mailing list > > netmod@ietf.org > > https://www.ietf.org/mailman/listinfo/netmod > > > >
- [netmod] example modules in 6087bis Martin Bjorklund
- Re: [netmod] example modules in 6087bis Andy Bierman
- Re: [netmod] example modules in 6087bis Martin Bjorklund
- Re: [netmod] example modules in 6087bis Benoit Claise
- Re: [netmod] example modules in 6087bis Andy Bierman
- Re: [netmod] example modules in 6087bis Martin Bjorklund
- Re: [netmod] example modules in 6087bis Ladislav Lhotka
- Re: [netmod] example modules in 6087bis Benoit Claise
- Re: [netmod] example modules in 6087bis Kent Watsen
- Re: [netmod] example modules in 6087bis Martin Bjorklund
- Re: [netmod] example modules in 6087bis Andy Bierman
- Re: [netmod] example modules in 6087bis Kent Watsen
- Re: [netmod] example modules in 6087bis Benoit Claise
- Re: [netmod] example modules in 6087bis Martin Bjorklund
- Re: [netmod] example modules in 6087bis Mahesh Jethanandani
- Re: [netmod] example modules in 6087bis-10 t.petch