Re: [netmod] No descendent statements to input/output can be reordered

Martin Björklund <mbj+ietf@4668.se> Sat, 28 March 2020 08:43 UTC

Return-Path: <mbj+ietf@4668.se>
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 4812D3A053E for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2020 01:43:12 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.099
X-Spam-Level:
X-Spam-Status: No, score=-0.099 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, PDS_NAKED_TO_NUMERO=1.999, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=no autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=4668.se header.b=KKHDfCBg; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=qFouC88p
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 INYpJDF9v2L5 for <netmod@ietfa.amsl.com>; Sat, 28 Mar 2020 01:43:10 -0700 (PDT)
Received: from out1-smtp.messagingengine.com (out1-smtp.messagingengine.com [66.111.4.25]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 85E103A0418 for <netmod@ietf.org>; Sat, 28 Mar 2020 01:43:10 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal [10.202.2.42]) by mailout.nyi.internal (Postfix) with ESMTP id B967B5C0267; Sat, 28 Mar 2020 04:43:09 -0400 (EDT)
Received: from mailfrontend2 ([10.202.2.163]) by compute2.internal (MEProxy); Sat, 28 Mar 2020 04:43:09 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:cc:subject:from:in-reply-to:references :mime-version:content-type:content-transfer-encoding; s=fm1; bh= ugMyvZYbUFiBZtD4HfXDb1sTtxWYCxGNJrtwv3ePgaU=; b=KKHDfCBg+Pu048bc VX+9hKbMJrH+goYQyuRGNEO7eEE6TiD+n3ZsB96BT4XzQvMQsfpD3zWMWG9OK1ge ehFTuoDWgsbNts+6fhEf3IOsT63PCefw6DC6Ir1yJ/Q4iX8jNrHCxf6Hn65g+dD1 Rsk4JHARBmcDRuhbL/yJDZlmm40WZ34WRrZM83zKBtkzf+TqnN19KRvQCtudPX/0 BTFHVGSIMf0vZ1Fv0wcGk7zn3eFMfD4c9WtQTWslLYyxr+AXxTmtKdlh7rIS6r01 Mqne8jNOWtqsOQBiOrQg2+aeshw1dWgMCzpo3R6nAmDntQ/MBvsMz6sPzz+L5SKl PzG2PQ==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:content-transfer-encoding:content-type :date:from:in-reply-to:message-id:mime-version:references :subject:to:x-me-proxy:x-me-proxy:x-me-sender:x-me-sender :x-sasl-enc; s=fm2; bh=ugMyvZYbUFiBZtD4HfXDb1sTtxWYCxGNJrtwv3ePg aU=; b=qFouC88poTbO3VmRl/9c3t+QankUYzNL4izviT+ZLqjd+bicWjAF9N8Jm NBUBhKYdG45/39//z6BrARvhgqA0VTJHLrvGlD6KBADkXi2Xlu1m78uobMzffDWV MZZ+DhvvvG5O/KQ0yzJUpwTtdCTet9MpzCgv5UR/jCXSXBwqPuvo7tFsRtlIlT6V XWCMpvUsgKZpFKXJmHvqtuKY8jVcHRs/KLf8nzR+QELVOs5e855yN3KIKmFHBVwV LIG5Y64H6nPxnXKfdleV6MM4n8A1VviQIgS4yFt2KcbURpOU/GxSv20st5l2SGEr DHOIrqwm1DNLPZZqas1zAbfkri+2g==
X-ME-Sender: <xms:HQ5_Xoko9Wlo-fwpGLJbPgZNd-fYdXrDE_ZEd8kV4nPupjGTYHyaFA>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedrudeitddguddulecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhfgjfhfogggtgfesth gsredtredtjeenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdo ihgvthhfseegieeikedrshgvqeenucffohhmrghinhepghhithhhuhgsrdgtohhmpdhivg htfhdrohhrghenucfkphepudehhedrgedruddtfedruddvnecuvehluhhsthgvrhfuihii vgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgsjhdoihgvthhfseegieeikedrsh gv
X-ME-Proxy: <xmx:HQ5_XgCr4VqnKtk6o0Cf5qs19u5BkDSfgzAaKj_Z8wnW5daxXKBzSA> <xmx:HQ5_Xt_gABV9Ee50mNAkDWzqnon199J4efyhNFwkpDoDfn9o86Ufbg> <xmx:HQ5_XiQ_7bqyfcAep7gu_wP5GNXXPDalMYvE4iZX975Tol0-Gjrc7A> <xmx:HQ5_XusxVwheulUxVUuGRqCiGQfJVsz3RqwOv_2sdO8PEQbQQNGNYw>
Received: from localhost (unknown [155.4.103.12]) by mail.messagingengine.com (Postfix) with ESMTPA id C5A77306C696; Sat, 28 Mar 2020 04:43:08 -0400 (EDT)
Date: Sat, 28 Mar 2020 09:43:06 +0100 (CET)
Message-Id: <20200328.094306.1883371784477662660.id@4668.se>
To: rrahman@cisco.com
Cc: netmod@ietf.org
From: Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj+ietf@4668.se>
In-Reply-To: <809C7D15-95DD-49CF-975A-B55F08D8C782@cisco.com>
References: <809C7D15-95DD-49CF-975A-B55F08D8C782@cisco.com>
X-Mailer: Mew version 6.8 on Emacs 26.3
Mime-Version: 1.0
Content-Type: Text/Plain; charset=utf-8
Content-Transfer-Encoding: base64
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/1wPIaLPfjnLiiGBK0teLYUB7lJY>
Subject: Re: [netmod] No descendent statements to input/output can be reordered
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: Sat, 28 Mar 2020 08:43:12 -0000

"Reshad Rahman (rrahman)" <rrahman@cisco.com> wrote:
> Hi,
> 
> https://github.com/netmod-wg/yang-ver-dt/issues/47
> 
>         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").
> 
> 
> Sounds good. JTBC, by descendent you're referring to data nodes
> (children, grandchildren etc) and not to statements like type and
> description?

Yes I mean descendant nodes.


> Also, could you refresh our memory why the decision was made to
> preserve order of input/output data nodes?

This is b/c this order is preserved on-the-wire for some encodings
(like XML).


/martin



> 
> 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
>     
>