Re: [Anima] looking for practical advice on managing YANG source in XML format RFCs

Kent Watsen <kent@watsen.net> Mon, 14 June 2021 10:21 UTC

Return-Path: <0100017a0a0a837e-ed759916-40e8-4856-9eb3-16fb586a0834-000000@amazonses.watsen.net>
X-Original-To: anima@ietfa.amsl.com
Delivered-To: anima@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 3790F3A1EE6; Mon, 14 Jun 2021 03:21:46 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.892
X-Spam-Level:
X-Spam-Status: No, score=-1.892 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, MIME_QP_LONG_LINE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (1024-bit key) header.d=amazonses.com
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 OudcpgNqrbdF; Mon, 14 Jun 2021 03:21:41 -0700 (PDT)
Received: from a8-83.smtp-out.amazonses.com (a8-83.smtp-out.amazonses.com [54.240.8.83]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 983823A1EE5; Mon, 14 Jun 2021 03:21:40 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/simple; s=ug7nbtf4gccmlpwj322ax3p6ow6yfsug; d=amazonses.com; t=1623666099; h=Content-Type:Content-Transfer-Encoding:From:Mime-Version:Subject:Date:Message-Id:References:Cc:In-Reply-To:To:Feedback-ID; bh=ZjVEsQ72C2pu3v6sZtp1pEUhbayay5VvXxOxUBGqcrg=; b=kQOLARn1sI+eV4DRXIUbuvCcxEVdghlLYeFSaSfFnroUc0QGr9ihTpuRg+RZFtzV FFa9k/hzIf4PdDUlyETVIJ+6wny7SVcmh0r6FjDhPhrAthCITWYNQBO2o9CbKOrJFIX wPSNg8G7Rjlh0N9ibeP7/rhzp1KAX4gtg/fSVNFA=
Content-Type: multipart/alternative; boundary="Apple-Mail-77300609-97C4-4B11-99D8-B8C4879FF125"
Content-Transfer-Encoding: 7bit
From: Kent Watsen <kent@watsen.net>
Mime-Version: 1.0 (1.0)
Date: Mon, 14 Jun 2021 10:21:39 +0000
Message-ID: <0100017a0a0a837e-ed759916-40e8-4856-9eb3-16fb586a0834-000000@email.amazonses.com>
References: <6795.1623632992@localhost>
Cc: netmod@ietf.org, tools-discuss@ietf.org, anima@ietf.org
In-Reply-To: <6795.1623632992@localhost>
To: Michael Richardson <mcr+ietf@sandelman.ca>
X-Mailer: iPhone Mail (18A8395)
Feedback-ID: 1.us-east-1.DKmIRZFhhsBhtmFMNikgwZUWVrODEw9qVcPhqJEI2DA=:AmazonSES
X-SES-Outgoing: 2021.06.14-54.240.8.83
Archived-At: <https://mailarchive.ietf.org/arch/msg/anima/eWW5ILCK1ZI0-NfHtLWQMVrreL8>
Subject: Re: [Anima] looking for practical advice on managing YANG source in XML format RFCs
X-BeenThere: anima@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Autonomic Networking Integrated Model and Approach <anima.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/anima>, <mailto:anima-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/anima/>
List-Post: <mailto:anima@ietf.org>
List-Help: <mailto:anima-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/anima>, <mailto:anima-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 14 Jun 2021 10:21:46 -0000

Hi Michael!

There isn’t a standard of any sort, but as an active author of a large number of drafts, I’ve been force to automate as much as possible:

  - validating the schema
  - validating examples
  - generating tree diagrams
  - stitching all off the above into an XML file
  - on a per-build basis 

AFAIK, my system is more complete than used by other authors, most whom seem to do it manually, with mixed results...

I author in XML v3 with macros that get expanded in the source, you may have linked my INSERT_TEXT_IN_FILE macro earlier, that ‘insert-figures’ consumes.  It’s effectively the same, with little improvements here and there. 

There’s no “tool” to do it*, each draft begins as a copy/paste of one prior, and then the Makefile, refs/validate-all.sh, and refs/gen-trees.sh files are tweaked as needed.   For examples: see the top-10 repos listed here: https://github.com/netconf-wg. 

* I was previously working on ‘xiax’ here: https://github.com/kwatsen/xiax. 

K. 

> On Jun 13, 2021, at 9:10 PM, Michael Richardson <mcr+ietf@sandelman.ca> wrote:
> 
> 
> Hi, I'm not a regular netmod reader.
> I subscribe via IMAP to look into what's going on.  If I'm asking a FAQ, I
> appologize as I didn't find anything in the 25K messages archived.
> I saw Christian's message in 2019 about org-rfc-export.
> I'm not sure if I should Reply-To: tools or netmod.
> 
> I'm looking for advice on how to manage things.
> A summary of my questions:
> 
> 1) how to process yang files with YYYY-DD-MM into XML.
> 2) how to generate yang tree files.
> 3) how do I get my YANG includes downloaded, and do I put them into my repo?
> 4) how to do this with MT Makefiles?
> 
> When we were working on RFC8995 and RFC8366, in the days before Martin
> Thompson's makefile was around, I just put pyang processing into my simple
> Makefile.  It's here:  https://github.com/anima-wg/anima-bootstrap/blob/master/Makefile
> 
> The perl script at: https://github.com/anima-wg/anima-bootstrap/blob/master/insert-figures
> was then developed to insert stuff into the XML.  It's rather hacky in some ways.
> It started it's life as just something to find the latest @YYYY-MM-DD yang
> file which the Makefile created. (Kent wrote that sed line three quarters of
> a decade ago, and the sed line now is old enough to trick-or-treat)
> Over time, it grew the ability to insert other bits of code or diagrams.
> I keep using it, even when I've moved to Markdown because it inserts the
> right artwork stuff, and knows to deal with YANG stuff.  I also keep using my
> Makefile, because except for the simplest uses, the MT ones are too
> complicated for me to hack.
> 
> With kramdown source, I can mostly just add stuff to the MT Makefile to
> generate the files I need, and then mostly (without insert-figures), I can
> use the ::include mechanism in kramdown to get the right things.  But, no
> magic YYYY-MM-DD stuff.
> 
> So now I am collaborating with some co-authors which want to stick to XMLv3
> rather than kramdown, and whose understanding of Makefiles is poor.  I want
> to stick with the normal stuff so that all the github/etc. tooling works for
> everyone involved.
> 
> I'm looking for advice on how do this this?
> 
> --
> Michael Richardson <mcr+IETF@sandelman.ca>   . o O ( IPv6 IøT consulting )
>           Sandelman Software Works Inc, Ottawa and Worldwide
> 
> 
> 
> 
> _______________________________________________
> Anima mailing list
> Anima@ietf.org
> https://www.ietf.org/mailman/listinfo/anima