Return-Path: <ladislav@lhotka.name>
X-Original-To: netmod@mail2.ietf.org
Delivered-To: netmod@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1])
	by mail2.ietf.org (Postfix) with ESMTP id A864063BCDC6
	for <netmod@mail2.ietf.org>; Tue, 16 Sep 2025 10:06:01 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -1.205
X-Spam-Level: 
X-Spam-Status: No, score=-1.205 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, HTML_MESSAGE=0.001,
	MIME_HTML_ONLY=0.1, MIME_HTML_ONLY_MULTI=0.001,
	MIME_QP_LONG_LINE=0.001, MPART_ALT_DIFF=0.79,
	RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001,
	RCVD_IN_VALIDITY_SAFE_BLOCKED=0.001, SPF_HELO_NONE=0.001,
	SPF_PASS=-0.001] autolearn=no autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key)
	header.d=lhotka.name header.b="Ie3t6kJs"; dkim=pass (2048-bit key)
	header.d=lhotka.name header.b="D5dG6a4i"
Received: from mail2.ietf.org ([166.84.6.31])
	by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024)
	with ESMTP id LwMlBeMfEYKI for <netmod@mail2.ietf.org>;
	Tue, 16 Sep 2025 10:06:00 -0700 (PDT)
Received: from trail.lhotka.name (trail.lhotka.name [77.48.224.143])
	(using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)
	 key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256)
	(No client certificate requested)
	by mail2.ietf.org (Postfix) with ESMTPS id E64AE63BCDB2
	for <netmod@ietf.org>; Tue, 16 Sep 2025 10:05:59 -0700 (PDT)
Received: by trail.lhotka.name (Postfix, from userid 109)
	id A34B8860A55; Tue, 16 Sep 2025 19:05:52 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lhotka.name;
	s=202504; t=1758042352;
	bh=xX2qt65fof7jqxPnMEELSRADOGgWWasIQ5qYt0rcNY4=;
	h=From:Subject:Date:References:Cc:In-Reply-To:To:From;
	b=Ie3t6kJsutwZW6DaA25cyylfEJ1OchPlGQKwGVFZyK/mnz4bxGKbcFiqOHfQEe3c+
	 AHiB0UjEQYZ974/sEkMB4FcmEg9GIjjW8+1oL0kWqX5GXF8dmcIaBX+NtvK0nuw6k4
	 IbDjhOjzX/qWL+2O1u4PQ9o4XNi4Op9ptDZ6Urc8uC+Tps745xd4cQ0xWcOzHnmJ1f
	 4Q7apqN3A0N5ZhMPfbLEGalgR3/wZntcX5ntu6+wNsjsnFwGqNmoK+20GzXgM7iill
	 qv+zIDxVbmMNs9DPm6d59qnEhUX0KX9GFcFtTIGCHBl8ALai+R9MapuiNKDPhSGrTi
	 zAfltnTDQA97g==
Received: from smtpclient.apple (ogg3tj.static.otenet.gr [94.71.88.39])
	by trail.lhotka.name (Postfix) with ESMTPSA id E6FC3860175;
	Tue, 16 Sep 2025 19:05:50 +0200 (CEST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=lhotka.name;
	s=202504; t=1758042351;
	bh=xX2qt65fof7jqxPnMEELSRADOGgWWasIQ5qYt0rcNY4=;
	h=From:Subject:Date:References:Cc:In-Reply-To:To:From;
	b=D5dG6a4iby/WUeETyGCmmiyrTleVJcPvmepxNOpDThQT0avC46TIwJ1kYFSHjF/YZ
	 RbGDLEWtIplORNGsxABP6Ak0I6zk4I2gmOFaqSOJdlvyPzngEmqbAefpiqmVW5Fd63
	 56vsicV2r7+33RC84XWV1zbNQ02gOj38urweitmO/HWAZWalnIu2zrQjSqHGEflKAE
	 PFbHfrLfHTNClomZTELHU/SvONLGH/5W5M8mHiOxwGHmNpxVZmVXERdY3Vq8j9LKtI
	 lBuAZV+P9b5SF+JowX9INmlH5fLr1a28JVixy6/unG0uDoGZMkT54sQcYYa29sjLvx
	 oIVwsu+BGHVpg==
Content-Type: multipart/alternative;
 boundary=Apple-Mail-51F71103-C2B1-40F9-8FB7-F49BE9D51925
Content-Transfer-Encoding: 7bit
From: Ladislav Lhotka <ladislav@lhotka.name>
Mime-Version: 1.0 (1.0)
Date: Tue, 16 Sep 2025 20:05:38 +0300
Message-Id: <112900FE-EA1B-4D6E-98D0-F3AC5C365E6C@lhotka.name>
References: <d04b3608-d683-4822-9ca6-952a90d68d57@everything-ops.net>
In-Reply-To: <d04b3608-d683-4822-9ca6-952a90d68d57@everything-ops.net>
To: benoit@everything-ops.net
X-Mailer: iPad Mail (22G100)
Message-ID-Hash: M6NN4W7YLHKXSFNYHTTLPUOXXBOTL5W6
X-Message-ID-Hash: M6NN4W7YLHKXSFNYHTTLPUOXXBOTL5W6
X-MailFrom: ladislav@lhotka.name
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency;
 loop; banned-address; member-moderation; header-match-netmod.ietf.org-0;
 nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size;
 news-moderation; no-subject; digests; suspicious-header
CC: Working Group NETMOD <netmod@ietf.org>
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: =?utf-8?q?=5Bnetmod=5D_Re=3A_Fwd=3A_=5Bonions=5D_FW=3A_New_Version_Notificat?=
	=?utf-8?q?ion_for_draft-cardona-claise-onion-yang-coverage-00=2Etxt?=
List-Id: NETMOD WG list <netmod.ietf.org>
Archived-At: 
 <https://mailarchive.ietf.org/arch/msg/netmod/U8FY-Z9lvS3gR89xjXCRNm6dqDE>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Owner: <mailto:netmod-owner@ietf.org>
List-Post: <mailto:netmod@ietf.org>
List-Subscribe: <mailto:netmod-join@ietf.org>
List-Unsubscribe: <mailto:netmod-leave@ietf.org>


--Apple-Mail-51F71103-C2B1-40F9-8FB7-F49BE9D51925
Content-Type: text/html;
	charset=utf-8
Content-Transfer-Encoding: quoted-printable

<html><head><meta http-equiv=3D"content-type" content=3D"text/html; charset=3D=
utf-8"></head><body dir=3D"auto">Hi Benoit,<div><br></div><div>FWIW, yangson=
 [1] allows for printing ascii tree with indicated coverage of each schema n=
ode by preceding validations, like this:</div><div><pre style=3D"box-sizing:=
 border-box; line-height: 1.4; font-family: SFMono-Regular, Menlo, Monaco, C=
onsolas, &quot;Liberation Mono&quot;, &quot;Courier New&quot;, Courier, mono=
space; font-size: 12px; text-wrap-mode: nowrap; margin-top: 0px; margin-bott=
om: 0px; padding: 12px; overflow: auto; caret-color: rgb(64, 64, 64); color:=
 rgb(64, 64, 64); -webkit-text-size-adjust: 100%; background-color: rgb(238,=
 255, 204);"><span class=3D"gp" style=3D"box-sizing: border-box; color: rgb(=
198, 93, 9); font-weight: bold; pointer-events: none;">&gt;&gt;&gt; </span><=
span class=3D"nb" style=3D"box-sizing: border-box; color: rgb(0, 112, 32);">=
print</span><span class=3D"p" style=3D"box-sizing: border-box;">(</span><spa=
n class=3D"n" style=3D"box-sizing: border-box;">dm</span><span class=3D"o" s=
tyle=3D"box-sizing: border-box; color: rgb(102, 102, 102);">.</span><span cl=
ass=3D"n" style=3D"box-sizing: border-box;">ascii_tree</span><span class=3D"=
p" style=3D"box-sizing: border-box;">(</span><span class=3D"n" style=3D"box-=
sizing: border-box;">no_types</span><span class=3D"o" style=3D"box-sizing: b=
order-box; color: rgb(102, 102, 102);">=3D</span><span class=3D"kc" style=3D=
"box-sizing: border-box; color: rgb(0, 112, 32); font-weight: bold;">True</s=
pan><span class=3D"p" style=3D"box-sizing: border-box;">,</span> <span class=
=3D"n" style=3D"box-sizing: border-box;">val_count</span><span class=3D"o" s=
tyle=3D"box-sizing: border-box; color: rgb(102, 102, 102);">=3D</span><span c=
lass=3D"kc" style=3D"box-sizing: border-box; color: rgb(0, 112, 32); font-we=
ight: bold;">True</span><span class=3D"p" style=3D"box-sizing: border-box;">=
),</span> <span class=3D"n" style=3D"box-sizing: border-box;">end</span><spa=
n class=3D"o" style=3D"box-sizing: border-box; color: rgb(102, 102, 102);">=3D=
</span><span class=3D"s1" style=3D"box-sizing: border-box; color: rgb(64, 11=
2, 160);">''</span><span class=3D"p" style=3D"box-sizing: border-box;">)</sp=
an>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>+--rw example-2:bag {1}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>   +--ro bar {1}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>   +--rw baz? {0}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>   +--rw foo# [number] {5}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>      +--rw in-words? {5}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>      +--rw number {5}</span>
<span class=3D"go" style=3D"box-sizing: border-box; color: rgb(51, 51, 51);"=
>      +--rw prime? {3}</span></pre><div dir=3D"ltr"><div><br></div><div>See=
 [2] for details.</div><div><br></div><div>Cheers, Lada</div><div><br></div>=
<div>PS. I have to acknowledge this was originally Kent=E2=80=99s idea.</div=
><div><br></div><div>[1]&nbsp;<a href=3D"https://github.com/CZ-NIC/yangson">=
https://github.com/CZ-NIC/yangson</a></div><div>[2]&nbsp;<a href=3D"https://=
yangson.labs.nic.cz/datamodel.html#yangson.datamodel.DataModel.ascii_tree">h=
ttps://yangson.labs.nic.cz/datamodel.html#yangson.datamodel.DataModel.ascii_=
tree<br></a>=E2=80=94</div><div>Ladislav Lhotka<div>PGP Key ID:&nbsp;<span s=
tyle=3D"background-color: rgba(255, 255, 255, 0);">0xB8F92B08A9F76C67</span>=
</div>






</div></div><div dir=3D"ltr"><br><blockquote type=3D"cite">16.=E2=80=AF9.=E2=
=80=AF2025 v&nbsp;10:48, benoit@everything-ops.net:<br><br></blockquote></di=
v><blockquote type=3D"cite"><div dir=3D"ltr">=EF=BB=BF

 =20

    <meta http-equiv=3D"content-type" content=3D"text/html; charset=3DUTF-8"=
>
 =20
 =20
    FYI.<br>
    <br>
    Regards, Camilo and Benoit<br>
    <div class=3D"moz-forward-container"><br>
      <br>
      -------- Forwarded Message --------
      <table cellpadding=3D"0" cellspacing=3D"0" border=3D"0" class=3D"moz-e=
mail-headers-table">
        <tbody>
          <tr>
            <th valign=3D"BASELINE" align=3D"RIGHT" nowrap=3D"nowrap">Subjec=
t:
            </th>
            <td>[onions] FW: New Version Notification for
              draft-cardona-claise-onion-yang-coverage-00.txt</td>
          </tr>
          <tr>
            <th valign=3D"BASELINE" align=3D"RIGHT" nowrap=3D"nowrap">Date: <=
/th>
            <td>Mon, 15 Sep 2025 12:21:09 -0500</td>
          </tr>
          <tr>
            <th valign=3D"BASELINE" align=3D"RIGHT" nowrap=3D"nowrap">From: <=
/th>
            <td>Camilo Cardona <a class=3D"moz-txt-link-rfc2396E" href=3D"ma=
ilto:camilo@gin.ntt.net">&lt;camilo@gin.ntt.net&gt;</a></td>
          </tr>
          <tr>
            <th valign=3D"BASELINE" align=3D"RIGHT" nowrap=3D"nowrap">To: </=
th>
            <td><a class=3D"moz-txt-link-abbreviated" href=3D"mailto:onions@=
ietf.org">onions@ietf.org</a></td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      Hello all,<br>
      <br>
      While working on a large YANG module, we developed a prototype for
      a tool to measure how much of a module is =E2=80=9Ccovered=E2=80=9D by=
 instance
      examples. In the process of thinking about how to share the tool
      more broadly, we started asking ourselves what would be needed to
      automate the process end-to-end.<br>
      <br>
      This led us to write a draft, link below this email. <br>
      The document proposes:<br>
      <br>
      - A way to consistently extract example instances from IETF
      documents.<br>
      <br>
      - Validate those examples against the YANG modules they use.<br>
      <br>
      - Calculate a coverage view of the module based on those examples.<br>=

      <br>
      The main goal of this is to end up with at least one tool that
      will be available to implement this process. Such a tool could
      help authors and reviewers improve the design of YANG models by
      making gaps in examples and coverage visible.<br>
      <br>
      Although ONION is still taking shape, its focus YANG tooling made
      us think this would be the right place to start presenting the
      work and gathering feedback.<br>
      <br>
      Comments, suggestions, and reactions are welcome.<br>
      <br>
      Thanks,<br>
      Camilo<br>
      <br>
      =EF=BB=BFOn 15/9/25, 12:17, "<a class=3D"moz-txt-link-abbreviated" hre=
f=3D"mailto:internet-drafts@ietf.org">internet-drafts@ietf.org</a>
      <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:internet-drafts@ietf=
.org">&lt;mailto:internet-drafts@ietf.org&gt;</a>"
      &lt;<a class=3D"moz-txt-link-abbreviated" href=3D"mailto:internet-draf=
ts@ietf.org">internet-drafts@ietf.org</a>
      <a class=3D"moz-txt-link-rfc2396E" href=3D"mailto:internet-drafts@ietf=
.org">&lt;mailto:internet-drafts@ietf.org&gt;</a>&gt; wrote:<br>
      <br>
      <br>
      A new version of Internet-Draft<br>
      draft-cardona-claise-onion-yang-coverage-00.txt has been
      successfully<br>
      submitted by Camilo Cardona and posted to the<br>
      IETF repository.<br>
      <br>
      <br>
      Name: draft-cardona-claise-onion-yang-coverage<br>
      Revision: 00<br>
      Title: Guidelines for YANG Example Validation and Coverage
      Analysis in IETF Documents<br>
      Date: 2025-09-15<br>
      Group: Individual Submission<br>
      Pages: 12<br>
      URL:
<a class=3D"moz-txt-link-freetext" href=3D"https://www.ietf.org/archive/id/d=
raft-cardona-claise-onion-yang-coverage-00.txt">https://www.ietf.org/archive=
/id/draft-cardona-claise-onion-yang-coverage-00.txt</a>
<a class=3D"moz-txt-link-rfc2396E" href=3D"https://www.ietf.org/archive/id/d=
raft-cardona-claise-onion-yang-coverage-00.txt">&lt;https://www.ietf.org/arc=
hive/id/draft-cardona-claise-onion-yang-coverage-00.txt&gt;</a><br>
      Status:
<a class=3D"moz-txt-link-freetext" href=3D"https://datatracker.ietf.org/doc/=
draft-cardona-claise-onion-yang-coverage/">https://datatracker.ietf.org/doc/=
draft-cardona-claise-onion-yang-coverage/</a>
<a class=3D"moz-txt-link-rfc2396E" href=3D"https://datatracker.ietf.org/doc/=
draft-cardona-claise-onion-yang-coverage/">&lt;https://datatracker.ietf.org/=
doc/draft-cardona-claise-onion-yang-coverage/&gt;</a><br>
      HTMLized:
<a class=3D"moz-txt-link-freetext" href=3D"https://datatracker.ietf.org/doc/=
html/draft-cardona-claise-onion-yang-coverage">https://datatracker.ietf.org/=
doc/html/draft-cardona-claise-onion-yang-coverage</a>
<a class=3D"moz-txt-link-rfc2396E" href=3D"https://datatracker.ietf.org/doc/=
html/draft-cardona-claise-onion-yang-coverage">&lt;https://datatracker.ietf.=
org/doc/html/draft-cardona-claise-onion-yang-coverage&gt;</a><br>
      <br>
      <br>
      <br>
      <br>
      Abstract:<br>
      <br>
      <br>
      This document defines guidelines for including YANG example
      instances<br>
      in IETF documents in a way that enables automatic extraction and<br>
      validation. It introduces the concept of YANG module "coverage" to<br>=

      measure how thoroughly example instances exercise a YANG module's<br>
      data nodes. The goal is to improve the quality and usability of
      YANG<br>
      models in IETF documents by providing authors with tools to
      validate<br>
      their examples and assess coverage completeness.<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      The IETF Secretariat<br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      <br>
      _______________________________________________<br>
      onions mailing list -- <a class=3D"moz-txt-link-abbreviated" href=3D"m=
ailto:onions@ietf.org">onions@ietf.org</a><br>
      To unsubscribe send an email to <a class=3D"moz-txt-link-abbreviated" h=
ref=3D"mailto:onions-leave@ietf.org">onions-leave@ietf.org</a><br>
    </div>
 =20

<span>_______________________________________________</span><br><span>netmod=
 mailing list -- netmod@ietf.org</span><br><span>To unsubscribe send an emai=
l to netmod-leave@ietf.org</span><br></div></blockquote></div></body></html>=

--Apple-Mail-51F71103-C2B1-40F9-8FB7-F49BE9D51925--

