Subject: [yang-doctors] Fwd: YANG Catalog Latest Developments - October 2017

From: Benoit Claise <[email-masked]>
Date: Sun, 8 Oct 2017 23:47:14 +0200

FYI. More tools for the YANG doctors.

Regards, Benoit

-------- Forwarded Message --------
Subject: 	YANG Catalog Latest Developments - October 2017
Date: 	Sun, 8 Oct 2017 23:00:56 +0200
From: 	Benoit Claise <[email-masked]>
To: 	[email-masked]
CC: 	Joe Clarke (jclarke) <[email-masked]>, me <[email-masked]>

Dear all,

On behalf of the full team of dedicated people, we would like to share 
the latest developments on the yangcatalog.org project.

- We added a belongs-to leaf to track parent modules.
Use case: an easy lookup of the name of the module that includes this 
submodule

-  We added lists to track dependents and dependencies for a given module.
Use case: an easy lookup of all dependents (those YANG modules that 
depend on the target module) and dependencies (those YANG modules are 
imported by the target module). This is a key feature for the impact 
analysis tool 
<https://www.yangcatalog.org/yang-search/impact_analysis.php>.

- We simplified the generated-from enumerated values.
Use case: knowing whether a YANG module is generated from a MIB per 
RFC6643, whether a YANG module is generated from platform internal, 
proprietary structure, or code, or whether a YANG module is authored 
manually.

- We refined the type for compilation-result to be an inet:uri.
Use case: we now store the compilation result (from pyang, confdc, 
yangdump-pro, and yanglint) as a separate file, in order to improve the 
performance and readability.

- We added the concept of semantic versioning

Two distinct leaves in the YANG module contains this semver semantic:

the semantic-version leaf contains the value reported as metadata

by a specific YANG module.

the derived-semantic-version leaf is established by examining the

the YANG module themselves.As such, only the YANG syntax, as

opposed to the implementation changes that lead some some semantic

changes.

Use case: we want to understand if two YANG modules (with the same YANG 
module name) are backward compatible.
This is especially important for generated models and openconfig models, 
but might be important for IETF YANG modules as well.
See the discussion on the NETMOD mailing list 
<https://www.ietf.org/mail-archive/web/netmod/current/maillist.html>.

- We reorderedthe « organization »leaf to be with other module keys.
Use case: the YANG module details view 
<https://www.yangcatalog.org/yang-search/module_details.php?module=ietf-interfaces>(which 
starts to be quite complete) combined the metedata in a more logical way.

- All of the above points are documented in our new draft version (-02): 
YANG module for yangcatalog.org 
<https://datatracker.ietf.org/doc/draft-clacla-netmod-model-catalog/>.
This YANG module is used as the foundation for the APIs for yangcatalog.org.

- We improved the YANG impact analysis to quickly be able to determine 
the different impacted standard development organizations, consortia, 
and manufacturers.
See an example here 
<https://www.yangcatalog.org/yang-search/impact_analysis.php?modules%5B%5D=ietf-interfaces&recurse=0&rfcs=1&show_subm=1&show_dir=both>. 
By clicking on an organization, the YANG modules from this organization 
are highlighted. Note that this function is also cumulative.
Next to that, the rim colors expresses that maturity level (INITIAL, 
RATIFIED, ADOPTED), the compilation failure, or the bottleneck for 
ratification.

- We developed a feature to determine the combined email addresses of 
all dependent YANG modules.
Use case: when a YANG module is updated, we proactively want to warn all 
authors of impacted YANG modules (because they import the target module).
As an example, for the ietf-routing YANG module, this produces the 
following list.
{
     "output": {
         "author-email": [
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" <mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" <mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>,
"[email-masked]" <mailto:[email-masked]>,
"[email-masked]" 
<mailto:[email-masked]>
         ]
     }
}

Don't hesitate to provide your feedback on the YANG catalag set of tools 
at [email-masked] <mailto:[email-masked]>

Feel free to forward this email.

Subscribe 
<https://www.marcuscom.com/mailman/listinfo/yangcatalog-announce>to 
[email-masked] <mailto:[email-masked]>to get updates 
about the YANG Catalog.

Regards, Joe and Benoit, on behalf of the team.