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)" 
<[email protected] on behalf of [email protected]> 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)" 
<[email protected] on behalf of [email protected]> 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" 
<[email protected] on behalf of [email protected]> 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
            [email protected]
            https://www.ietf.org/mailman/listinfo/netmod
            
        
        _______________________________________________
        netmod mailing list
        [email protected]
        https://www.ietf.org/mailman/listinfo/netmod
        
    
    _______________________________________________
    netmod mailing list
    [email protected]
    https://www.ietf.org/mailman/listinfo/netmod
    

_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to