[netmod] mbj review of draft-verdt-netmod-yang-module-versioning-01

Martin Björklund <mbj+ietf@4668.se> Tue, 10 March 2020 19:30 UTC

Return-Path: <mbj+ietf@4668.se>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost []) by ietfa.amsl.com (Postfix) with ESMTP id E51563A09A6 for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2020 12:30:32 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.099
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=GS46Gg2o; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=T+v19PLc
Received: from mail.ietf.org ([]) by localhost (ietfa.amsl.com []) (amavisd-new, port 10024) with ESMTP id 5cfawKNBsq9C for <netmod@ietfa.amsl.com>; Tue, 10 Mar 2020 12:30:31 -0700 (PDT)
Received: from new1-smtp.messagingengine.com (new1-smtp.messagingengine.com []) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 2765E3A0948 for <netmod@ietf.org>; Tue, 10 Mar 2020 12:30:31 -0700 (PDT)
Received: from compute2.internal (compute2.nyi.internal []) by mailnew.nyi.internal (Postfix) with ESMTP id 4104D2291 for <netmod@ietf.org>; Tue, 10 Mar 2020 15:30:30 -0400 (EDT)
Received: from mailfrontend2 ([]) by compute2.internal (MEProxy); Tue, 10 Mar 2020 15:30:30 -0400
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=4668.se; h=date :message-id:to:subject:from:mime-version:content-type :content-transfer-encoding; s=fm1; bh=r1Soq84s1QFkyvD/sQo+NJ0X97 nCeEE9Xrx9WjV05vc=; b=GS46Gg2oE+IEV6P8+35u97vXcS6otK9HXcUbVgtSm9 Kp+dSHWfolt1WIFXUbgbMU+1pHONJmjOW9hJDTxg66r/PSvUSB/Dj8HrliYz30zE TeGO1Z9jHvOPo3Jpx/8vkJ7DGNjRDT65ZgcPv8xE1Gt4ST/Wf4oI4wXGtDdGprfu pHJ09FducKMw6l0IFlIn5S+vvnUZ+Z7IQsLBkm4eZpKamy47G6fdCgtZPF8xP36G 8ojv+Mxtto/0IABaokU15MIAdvDGVq64N30kK9PwPJipj/yMomSOPzNqyUaYp7f6 gwPwj08GjJQTC/bYv8gfbGDXRRqS6+8vxNIawilGOHKw==
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-transfer-encoding:content-type :date:from:message-id:mime-version:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm2; bh=r1Soq8 4s1QFkyvD/sQo+NJ0X97nCeEE9Xrx9WjV05vc=; b=T+v19PLcodIbq5OmLSfIfb moOtZ5GieCVnkqsr/RG/1xGJhDYuIEwJHABymmAi/sN1eR41lRRG6yUUN3hzbRMb nVW7s5OBOLV+f+P+fA+Vxd4+bSOUUefVBBhcxywujjZEgmPsvVh1ict5gmmc7Hg3 A42zaBZXpIRC8cBqsBT5pzfbEsMQEQXLLlB0SKjrkRCp0fYSTBhvKJ5Q4lc4ZLS1 d7jwXKOjujtF+G3HWMGHhZ74VyIzSBPxzN9Gv46snbOZzOdmrclClSw7DT1/23V+ N9gsPfbH/KPAnCWceW0BHu+8wkVDWvasEZrEuVVZYl83UTqDj3r1WusXk/fJPjLw ==
X-ME-Sender: <xms:1epnXtelJzp-aY-DL-8i9-HfudasY_rQ-WYSt4cEvO-I2lX3KMudZg>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedugedruddvtddguddukecutefuodetggdotefrod ftvfcurfhrohhfihhlvgemucfhrghsthforghilhdpqfgfvfdpuffrtefokffrpgfnqfgh necuuegrihhlohhuthemuceftddtnecunecujfgurhepfffkvffuhffogggtgfesthejre dtredtvdenucfhrhhomhepofgrrhhtihhnuceujhpnrhhklhhunhguuceomhgsjhdoihgv thhfseegieeikedrshgvqeenucfkphepudehkedrudejgedrgedrgeegnecuvehluhhsth gvrhfuihiivgeptdenucfrrghrrghmpehmrghilhhfrhhomhepmhgsjhdoihgvthhfseeg ieeikedrshgv
X-ME-Proxy: <xmx:1epnXvdiD4RvokolxfiIQ8fgRJ9Tr1PX2o9CswcsB1PfcS9yjeMi1g> <xmx:1epnXqEAfH10VlOnHmZyi-M6xOyh2dDBbluEEnFtAvKE2ydJdD-Jvw> <xmx:1epnXmH79GBHMrIALuZS7IYQzoyu77q8VAlxDRXw9VtJ2-7NUgw0yA> <xmx:1upnXrakP2vZMhg2fhtREoaUO2Oa6S32SCSkM4KLzjmhBXJI19WC7A>
Received: from localhost (unknown []) by mail.messagingengine.com (Postfix) with ESMTPA id 7303C30611FB for <netmod@ietf.org>; Tue, 10 Mar 2020 15:30:29 -0400 (EDT)
Date: Tue, 10 Mar 2020 20:30:27 +0100 (CET)
Message-Id: <20200310.203027.522986329204385274.id@4668.se>
To: netmod@ietf.org
From: Martin =?iso-8859-1?Q?Bj=F6rklund?= <mbj+ietf@4668.se>
X-Mailer: Mew version 6.8 on Emacs 25.2
Mime-Version: 1.0
Content-Type: Text/Plain; charset=us-ascii
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/MTGomxcdyNOmB7mgsFhItLKNJgk>
Subject: [netmod] mbj review of draft-verdt-netmod-yang-module-versioning-01
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: Tue, 10 Mar 2020 19:30:40 -0000


Here are my review comments of

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 {
           "Imperial measurements are being phased out in favor
            of their metric equivalents.  Use metric-temperature
         "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;
           "Imperial measurements are being phased out in favor
            of their metric equivalents.  Use metric-temperature

            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

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


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.