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

From: Kent Watsen <[email-masked]>
Date: Mon, 14 Jun 2021 10:21:39 +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 <[email-masked]> 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 <[email-masked]>   . o O ( IPv6 IøT consulting )
>           Sandelman Software Works Inc, Ottawa and Worldwide
> 
> 
> 
> 
> _______________________________________________
> Anima mailing list
> [email-masked]
> https://www.ietf.org/mailman/listinfo/anima