Re: [netmod] Revision labels for submodules

"Reshad Rahman (rrahman)" <rrahman@cisco.com> Fri, 08 May 2020 13:50 UTC

Return-Path: <rrahman@cisco.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 490E53A080E for <netmod@ietfa.amsl.com>; Fri, 8 May 2020 06:50:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -9.598
X-Spam-Level:
X-Spam-Status: No, score=-9.598 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, RCVD_IN_MSPIKE_H4=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001, USER_IN_DEF_DKIM_WL=-7.5] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=cisco.com header.b=MsslWkKR; dkim=pass (1024-bit key) header.d=cisco.onmicrosoft.com header.b=NkcoBSXk
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 G0nn6Axb3bsw for <netmod@ietfa.amsl.com>; Fri, 8 May 2020 06:49:58 -0700 (PDT)
Received: from alln-iport-7.cisco.com (alln-iport-7.cisco.com [173.37.142.94]) (using TLSv1.2 with cipher DHE-RSA-SEED-SHA (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 604C33A005F for <netmod@ietf.org>; Fri, 8 May 2020 06:49:58 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=cisco.com; i=@cisco.com; l=12502; q=dns/txt; s=iport; t=1588945798; x=1590155398; h=from:to:subject:date:message-id:content-id: content-transfer-encoding:mime-version; bh=ZIe3aB98wmEf7wqWTPtT9LenEvdFGvPTftWm+z+l7Ys=; b=MsslWkKRSL2WmlHowuV46QCu29mVRLh4mIdtPVgnU27g+ScXWFZTF33j n3TqJ76z4S4+xI+8TJEL07H4HXEQxjdB5E+MIRn1R6godW/rnzs3OtEZ6 X6s3blK33DK858S9unHHHMxGVwYBIY4wnhGzZl1xCg/gYzm/WnLOhy0ip Y=;
IronPort-PHdr: 9a23:snk0Mxbhx2KnVXOmIL3DvGP/LSx94ef9IxIV55w7irlHbqWk+dH4MVfC4el21QaRD9mFtaICkOeF+6zjWGlV55GHvThCdZFXTBYKhI0QmBBoG8+KD0D3bZuIJyw3FchPThlpqne8N0UGRJigNxvJry764TsbAB6qMw1zK6z8EZLTiMLi0ee09tXTbgxEiSD7b6l1KUC9rB7asY8dho4xJw==
X-IronPort-Anti-Spam-Filtered: true
X-IronPort-Anti-Spam-Result: A0COEADhYrVe/4ENJK1mHQEBAQEJARIBBQUBQIFHgVRRBW9YLywKhBqDRgOLMZpJgUKBEANUCwEBAQwBARgNCAIEAQGDf0UZgXckOBMCAwEBCwEBBQEBAQIBBQRthVYMhXICAQMBARAREQwBASwMEQEIGgImAgQlCxUSBAESIoMEAYJLAy4BDqRcAoE5iGF2gTKDAQEBBYUwGIIOAwaBDiqCY4lhGoFBP4ERJxyCTT6CZwEBAhqBLzEhAoJaM4ItjkYBAzCCWIZCmlsKgkqIG5ANHYJclWqEdJAdgViIApNQAgQCBAUCDgEBBYFpIimBLXAVOyoBgj5QGA2QQINyhRSFQnQCECUCBgEHAQEDCXyQDQGBDwEB
X-IronPort-AV: E=Sophos;i="5.73,367,1583193600"; d="scan'208";a="475518147"
Received: from alln-core-9.cisco.com ([173.36.13.129]) by alln-iport-7.cisco.com with ESMTP/TLS/DHE-RSA-SEED-SHA; 08 May 2020 13:49:57 +0000
Received: from XCH-ALN-001.cisco.com (xch-aln-001.cisco.com [173.36.7.11]) by alln-core-9.cisco.com (8.15.2/8.15.2) with ESMTPS id 048Dnv6H007759 (version=TLSv1.2 cipher=AES256-SHA bits=256 verify=FAIL); Fri, 8 May 2020 13:49:57 GMT
Received: from xhs-rcd-002.cisco.com (173.37.227.247) by XCH-ALN-001.cisco.com (173.36.7.11) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 8 May 2020 08:49:57 -0500
Received: from xhs-rcd-003.cisco.com (173.37.227.248) by xhs-rcd-002.cisco.com (173.37.227.247) with Microsoft SMTP Server (TLS) id 15.0.1497.2; Fri, 8 May 2020 08:49:56 -0500
Received: from NAM10-DM6-obe.outbound.protection.outlook.com (72.163.14.9) by xhs-rcd-003.cisco.com (173.37.227.248) with Microsoft SMTP Server (TLS) id 15.0.1497.2 via Frontend Transport; Fri, 8 May 2020 08:49:56 -0500
ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=ikx2tfI09czk7kMw1FaaRqbBkUaNL5yg1lkPszKOA3+2ynsVI/xhR9tOX3UloqG6Tv359w62ompxXPBvJwhXNQmn01I0lSBJ6fECYO5BacRjI8/WRpz/m7q9EjXmK/+ccFvJ4SgJepp/PPhWqsnMgkClVz+zg32/4A3PgoUaakMkdm8DvmoFuBj4K/R4QNQhhnqEATRbz5bgXq/4okHSfCpG1NtCTEfX+bzAhPDy9QlZiN0xZW8xMjtiJa2Vj8ctdQhf1OIqif5yqL/QFU/WjeJyMYw+Zkxi32OziGEZsiR/awu1q4sZ6hnWqZ2uHYyxi5BPCax61QTCYEEUqiJAhg==
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=ZIe3aB98wmEf7wqWTPtT9LenEvdFGvPTftWm+z+l7Ys=; b=K/OSaCSSwUb5CYqenQHk3Uw0NqiKsmfVVOgpaNMwfNMtzTccTNntkZcQVzWu2oFzFC6jprBFgYVYmNRQdpLJNkvzf0HQ9OIGFHBikwoDvyvdqElFyNqRAV8SR1/VS8/lKxfnhT6geJ+jDG+MdHeRbNPRb4Zg4+Tv8HWWqM9/BfVTtdcDlZCfzKnLZH/4TP7g4VGSHBEA3Sab9LLgXEcTy5dD+XvYLkIlHtRlxlX63g8+ngzeexmuorhpiZJlfzlojQ6HuZYC5uQ7FggArrL4L4/0sb0Q4YTAlbmXUQivFH9tAGUFV70fX/iyPIYquhAAXYJuQE8fCTpO8Bzu/EnMlQ==
ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=cisco.com; dmarc=pass action=none header.from=cisco.com; dkim=pass header.d=cisco.com; arc=none
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=cisco.onmicrosoft.com; s=selector2-cisco-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ZIe3aB98wmEf7wqWTPtT9LenEvdFGvPTftWm+z+l7Ys=; b=NkcoBSXkOIdPaJ/LO7OaL3bXsyD8L6l5L9Sg8pYKVimSgE8mu12GxvgjvaESqnmB7+XhUqV//eDO/5B4pEAw2+cHD0eBcfes1WUBByXNwQWPVdfOxLbwCFg0rQBLL988YhJDyJUHsDvDxUBM7F95vYkonmcx/HbYnnbOa7RD6Ls=
Received: from DM6PR11MB3883.namprd11.prod.outlook.com (2603:10b6:5:19f::32) by DM6PR11MB3961.namprd11.prod.outlook.com (2603:10b6:5:19a::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.33; Fri, 8 May 2020 13:49:53 +0000
Received: from DM6PR11MB3883.namprd11.prod.outlook.com ([fe80::8062:e44:d30c:e04b]) by DM6PR11MB3883.namprd11.prod.outlook.com ([fe80::8062:e44:d30c:e04b%5]) with mapi id 15.20.2958.035; Fri, 8 May 2020 13:49:53 +0000
From: "Reshad Rahman (rrahman)" <rrahman@cisco.com>
To: Martin Björklund <mbj+ietf@4668.se>, "netmod@ietf.org" <netmod@ietf.org>, "Sterne, Jason (Nokia - CA/Ottawa)" <jason.sterne@nokia.com>
Thread-Topic: [netmod] Revision labels for submodules
Thread-Index: AQHWJT+MiAxw1tFb+k6vD0etivad/A==
Date: Fri, 08 May 2020 13:49:53 +0000
Message-ID: <8D4A99E4-93D3-495C-9B46-26C61BBABAA7@cisco.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach:
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/10.21.0.200113
authentication-results: 4668.se; dkim=none (message not signed) header.d=none;4668.se; dmarc=none action=none header.from=cisco.com;
x-originating-ip: [70.31.50.95]
x-ms-publictraffictype: Email
x-ms-office365-filtering-correlation-id: de968125-f870-4f86-8a97-08d7f356af8a
x-ms-traffictypediagnostic: DM6PR11MB3961:
x-microsoft-antispam-prvs: <DM6PR11MB3961DEE065DA1268D371EF92ABA20@DM6PR11MB3961.namprd11.prod.outlook.com>
x-ms-oob-tlc-oobclassifiers: OLM:9508;
x-forefront-prvs: 039735BC4E
x-ms-exchange-senderadcheck: 1
x-microsoft-antispam: BCL:0;
x-microsoft-antispam-message-info: 9zpbOqG9SBj/ZKale+lfXlWTAKbQx7ByihaYfARfi4mZDjkNgo8yuoYqBtu2D+4X80w05D+3dk824+xznRSachjSQSywsNqokJUP0yZIutzrW38WnA7YMFay4UquFDDWIqDOYT8wA0RUO37X2tAdH292SrLtK6XkRc6aBeujTAGsRKfCDvo5kFAgifkXDtDAx+5l2DT7trQoOd7fUJ5KyapbiUNJKh5bgjl8dWCQwc8Ofo2YRgVYaR1ksTynXeLAOaLlI7YVrAsv7dLmAxOjv0u/ph/5sfD0p5I+Sw2xwslC/+sydIGTxC/nwq9s/6BNQ3epXX9PDyM6ongQJFfLNAU90HGm0yDvfbMUmCJDuMA/C0LK0qQ6Y0NZRgek2NI+anjDcpPfLg+7jd9/7SCrWuQi/J1s1vFISWzdyE6QC5yhbP7+JDEobb6Jh+bH8aFn73/4KwNfaZDmH0rS3MoFtYFI//rb7wPaTZ+T8wT9LI+/tWtrWm3ZFtR6IUe0ImsM4knBrglZocVdp9WJxStEUVBakZsKuZLIadXNV7P+yWX/QIqEmpYsS0GSWbvVYrcZsEYyXHjX3U2TvOzNasWthU57ubxSQHhalHR407gwBZU=
x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM6PR11MB3883.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(376002)(39860400002)(136003)(366004)(396003)(346002)(33430700001)(110136005)(6512007)(316002)(186003)(26005)(6506007)(53546011)(71200400001)(6486002)(2906002)(86362001)(5660300002)(66476007)(66556008)(64756008)(66446008)(36756003)(66946007)(91956017)(76116006)(8676002)(8936002)(33440700001)(83280400001)(478600001)(83310400001)(83300400001)(83290400001)(83320400001)(66574014)(33656002)(2616005)(966005); DIR:OUT; SFP:1101;
x-ms-exchange-antispam-messagedata: AgR1tpaLAJ/UvaPMZHlzhaoD1+evWZoFhttld61+wdHbPLJYy/1/mL5wjD9+sb01+hndFx/z8vO2llDekWwGwe2LdY5QZpyeOftcS5uf+v0Fsk0TzEoNoP1K0TznT2VUOQIZZM6EwKmFg+ImzTozsyJ90k32bc5oP0sLJoTo9vJlEQ001trd4kQuBC9asCkLJ/0n/yJn6vQ3q80HvaQMmxxCxnCwEwZKl5F7lb3TjB+zk5bqqVKxRJfuywvxLQDIahNbiTaBfBMblun0Sv4ieWG6kUgXVHDA3q502ZhMToUCAPANtB7tNOBHauBpSFZl8fa3CPlWP+ico27asgjFi6kJoaNYxO6h/SphRX1Bnc/QmgFd5LTnTtZWZwLZcCJjztFFUopnhxO5nUcYIlg1bA3qbbMzFa+6TcmlYGLs4TIfhfxl/8L0bXTiv1L1zdEHBC3EX/OBIwpogFfl7y/DlJuy19XgFK076/oNms/bOmM=
x-ms-exchange-transport-forked: True
Content-Type: text/plain; charset="utf-8"
Content-ID: <72548EDEA91DBE4C9BB60D9D42E908EF@namprd11.prod.outlook.com>
Content-Transfer-Encoding: base64
MIME-Version: 1.0
X-MS-Exchange-CrossTenant-Network-Message-Id: de968125-f870-4f86-8a97-08d7f356af8a
X-MS-Exchange-CrossTenant-originalarrivaltime: 08 May 2020 13:49:53.3024 (UTC)
X-MS-Exchange-CrossTenant-fromentityheader: Hosted
X-MS-Exchange-CrossTenant-id: 5ae1af62-9505-4097-a69a-c1553ef7840e
X-MS-Exchange-CrossTenant-mailboxtype: HOSTED
X-MS-Exchange-CrossTenant-userprincipalname: yHqS4fb/PPDeNPdIFt1hfIeJua361DBagkfYVAoGu2hCFLQ1x02bi8l13gNWmBhbQvDuWj1AiUZA3STVhhUdbA==
X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB3961
X-OriginatorOrg: cisco.com
X-Outbound-SMTP-Client: 173.36.7.11, xch-aln-001.cisco.com
X-Outbound-Node: alln-core-9.cisco.com
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/eDJor-rtLumV57ecXSQ8u3C4Oek>
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: Fri, 08 May 2020 13:50:02 -0000

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.

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

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