Hello NETMOD WG,

At IETF 119, during the YANG Versioning discussions, there was a suggestion to 
raise the filename issue again as one last issue to resolve before going to 
last call.

Version 10 of Module Versioning had the following content that was subsequently 
removed in version 11:
https://datatracker.ietf.org/doc/html/draft-ietf-netmod-yang-module-versioning-10#name-file-names

3.4.1.  File names

   This section updates [RFC7950] section 5.2, [RFC6020] section 5.2 and
   [RFC8407] section 3.2

   If a revision has an associated revision label, then it is
   RECOMMENDED that the name of the file for that revision be of the
   form:

     module-or-submodule-name ['#' revision-label] ( '.yang' / '.yin' )

       E.g., acme-router-module#2.0.3.yang

   YANG module (or submodule) files may be identified using either the
   revision-date (as per [RFC8407] section 3.2) or the revision label.

At least one major implementation is already using YANG Semver in filenames, 
and the IETF 119 attendees raised the concern that if we don't specify a 
desired filename format, then an de-facto standard will likely occur. Or 
perhaps we'll end up with multiple competing approaches to having a YANG Semver 
in a filename.

There are a number of advantages of having the key version identifier in the 
filename (hence why it is recommended in RFC 7950 and RFC 8407). Resolving the 
new 'recommended-min' extensions in Module Versioning and YANG Semver would 
also be easier if the YANG Semver is right in the filename.

In the IETF 118 Hackathon, Per demonstrated that modifying pyang to handle the 
additional filename format was a fairly trivial change. But it still may take 
other tool authors time to update other tools.

Some potential issues for us to consider & discuss as a WG:

  1.  Should we mention anything about potential use of symlinks (e.g. instead 
of having 2 copies of a module with two different filenames, one with revision 
date, the other with YANG Semver, just have one of them symlink to the other?)
  2.  The YANG Semver draft mandates that IETF YANG modules have a YANG Semver. 
Do we also need to recommend/mandate something specific about filenames for 
IETF YANG modules (e.g. in the CODE BEGINS line in RFCs)?
  3.  Will most tools that haven't been modified yet to recognize the new 
filename format simply interpret the #X.Y.Z as part of the module name? Will 
they complain that the filename doesn't match the module name?
  4.  Will some tools & processes fail because of the "#" (i.e. consider it a 
comment marker and chop off the chars that follow)?

Another possible approach is something along these lines:
*If* you are going to put a YANG Semver into a module filename, then you MUST 
use this format:   <name>#<yang semver>.yang

That doesn't preclude having both a revision date format and a YANG Semver 
format, but doesn't specifically suggest to use one or the other. Then perhaps 
YANG-NEXT could mandate the YANG Semver filename format?

So the big questions are:

  *   Whether to include this filename convention in the YANG Semver draft?
  *   How strong a recommendation/mandate should it be?

Jason (he/him)

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

Reply via email to