<?xml version="1.0" encoding="UTF-8"?>
  <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
  <!-- generated by https://github.com/cabo/kramdown-rfc version 1.6.14 (Ruby 2.6.8) -->


<!DOCTYPE rfc  [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">

]>


<rfc ipr="trust200902" docName="draft-hoffman-rfc-format-framework-as-implemented-00" category="std" consensus="true" submissionType="IETF" updates="7990" tocDepth="4" tocInclude="true" sortRefs="true" symRefs="true">
  <front>
    <title abbrev="Format Framework">RFC Format Framework As Implemented</title>

    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>

    <date year="2022" month="August" day="08"/>

    
    
    <keyword>Internet-Draft</keyword>

    <abstract>


<t>RFC 7990 "serves as the framework that provides the problem statement,
lays out a road map of the documents that capture the specific
requirements, and describes the transition plan" for the format of RFCs.
The eventual implementation of the framework happened somewhat
differently than was described in RFC 7990.
This document describes how the framework was, and is being, implemented.
It updates RFC 7990 by changing the definition of the "canonical format".</t>



    </abstract>



  </front>

  <middle>


<section anchor="introduction"><name>Introduction</name>

<t><xref target="RFC7990"/>, published in December 2016, defined a framework for how RFCs would be published in the future,
including new formats and a new canonical format for archiving RFCs.
The first RFC to be published using the framework was <xref target="RFC8651"/>, published in October 2019.
In the time since then, the new framework has been applied to all published RFCs.</t>

<t>The implementation of the framework did not go completely as planned.
The canonical format changed many times between the publication of <xref target="RFC7991"/> and now,
and is expected to change more times in the future.
Similarly, the software used to generate the non-canonical HTML, plain text, and PDF formats
also changed during that time.</t>

<t>This document describes how the RFC format framework was actually implemented.
This document also updates <xref target="RFC7990"/> in that it changes the definition of the canonical format for RFCs.
This document explicitly does not update the other documents referenced in <xref target="RFC7990"/>,
but it does describe how the implementation of the formats for the RFC series has differed
from that described in <xref target="RFC7990"/>.</t>

</section>
<section anchor="multiple-xml-v3-vocabularies"><name>Multiple XML v3 Vocabularies</name>

<t>The RFC Editor has changed the XML v3 vocabulary used to generate RFCs many times since the publication of <xref target="RFC7991"/>.
The XML grammars used are currently cataloged at <eref target="https://github.com/rfc-format/v3grammar">https://github.com/rfc-format/v3grammar</eref>.
[[ It would probably be good to move that list and all of the files to rfc-editor.org ]]
This means that different RFCs were published using different XML grammar.
In every case so far, the newer grammar has been a superset of the previous grammar so that
all of the RFCs published earlier would be valid in the newest grammar.</t>

<t>The current vocabulary is published as <eref target="https://datatracker.ietf.org/doc/draft-irse-draft-irse-xml2rfcv3-implemented/">https://datatracker.ietf.org/doc/draft-irse-draft-irse-xml2rfcv3-implemented/</eref>.
[[ It would probably be good to move that document to rfc-editor.org ]]</t>

</section>
<section anchor="rendering-rfcs-in-html-plain-text-and-pdf"><name>Rendering RFCs in HTML, Plain Text, and PDF</name>

<t>The rendering of the non-canonical formats evolved after the initial implementation of the framework.
Thus, accessing the files for the non-canonical formats would get different results over time.
The rendering is expected to continue to change in the future.</t>

</section>
<section anchor="updated-definition-of-canonical-format"><name>Updated Definition of "Canonical Format"</name>

<t>Section 3 of <xref target="RFC7990"/> defines the canonical format as:</t>

<ul empty="true"><li>
  <t>Canonical format: the authorized, recognized, accepted, and
archived version of the document</t>
</li></ul>

<t>That definition is the only place in <xref target="RFC7990"/> that uses the word "archived" or "archive".
<xref target="RFC6949"/> uses the word in a fashion similar to <xref target="RFC7990"/>.
<xref target="RFC6635"/>, the earlier model for the RFC Editor as a whole, says
"The archive of RFC documents, any source documents needed
to recreate the RFC documents, and any associated original documents
(such as lists of errata, tools, and, for some early items, originals
that are not machine readable) need to be secured against any kind of
data storage failure."</t>

<t>These definitions never explicitly state that the initial archived version of a document must never change.
However, some people in the IETF community have said that they make that assumption.
Others say that the archived version can change to fix XML format errors as long as the
underlying meaning of the text does not change.</t>

<t>At the time that this document is written, the RFC Editor has not changed the XML files for
RFCs after they were published.</t>

<t>The definition of "canonical format" in Section 3 of <xref target="RFC7990"/> is updated to be:</t>

<ul empty="true"><li>
  <t>Canonical format: the authorized, recognized, accepted, and
most recent archived version of the document</t>
</li></ul>

<t>Section 5 of <xref target="RFC7990"/> says:</t>

<ul empty="true"><li>
  <t>The final XML file produced by the RFC Editor will be considered the
canonical format for RFCs; it is the lowest common denominator that
holds all the information intended for an RFC.</t>
</li></ul>

<t>This wording does not take into account the need to change the XML file to fix XML errors.
XML format errors, and better design choices, have been discovered by the community since
the first RFCs were published using the XML format.
In order to allow the RFC Editor to publish correct XML for all RFCs,
Section 5 of <xref target="RFC7990"/> is updated to say:</t>

<ul empty="true"><li>
  <t>The XML file produced by the RFC Editor will be considered the
canonical format for RFCs; it is the lowest common denominator that
holds all the information intended for an RFC. The RFC Editor may
change the file over time to incorporate changes in the XML format.
THe RFC Editor must also make available all earlier versions of the
XML file.</t>
</li></ul>

<t>[[ There is no need to bikeshed how the RFC Editor
will make these available. They will propose a method, and the
community will tell them if that's OK. ]]</t>

</section>
<section anchor="iana-considerations"><name>IANA Considerations</name>

<t>This document has no IANA considerations.</t>

</section>
<section anchor="security-considerations"><name>Security Considerations</name>

<t>This document has the same security considerations as <xref target="RFC7990"/>. Those are:</t>

<t>Changing the format for RFCs involves modifying a great number of
components to publication.  Understanding those changes and the
implications for the entire tool chain is critical so as to avoid
unintended bugs that would allow unintended changes to text.
Unintended changes to text could in turn corrupt a standard,
practice, or critical piece of information about a protocol.</t>

</section>


  </middle>

  <back>


    <references title='Normative References'>





<reference anchor='RFC7990' target='https://www.rfc-editor.org/info/rfc7990'>
<front>
<title>RFC Format Framework</title>
<author fullname='H. Flanagan' initials='H.' surname='Flanagan'><organization/></author>
<date month='December' year='2016'/>
<abstract><t>In order to improve the readability of RFCs while supporting their archivability, the canonical format of the RFC Series will be transitioning from plain-text ASCII to XML using the xml2rfc version 3 vocabulary; different publication formats will be rendered from that base document.  With these changes comes an increase in complexity for authors, consumers, and the publisher of RFCs.  This document serves as the framework that provides the problem statement, lays out a road map of the documents that capture the specific requirements, and describes the transition plan.</t></abstract>
</front>
<seriesInfo name='RFC' value='7990'/>
<seriesInfo name='DOI' value='10.17487/RFC7990'/>
</reference>




    </references>

    <references title='Informative References'>





<reference anchor='RFC6635' target='https://www.rfc-editor.org/info/rfc6635'>
<front>
<title>RFC Editor Model (Version 2)</title>
<author fullname='O. Kolkman' initials='O.' role='editor' surname='Kolkman'><organization/></author>
<author fullname='J. Halpern' initials='J.' role='editor' surname='Halpern'><organization/></author>
<author><organization>IAB</organization></author>
<date month='June' year='2012'/>
<abstract><t>The RFC Editor model described in this document divides the responsibilities for the RFC Series into three functions: the RFC Series Editor, the RFC Production Center, and the RFC Publisher. Internet Architecture Board (IAB) oversight via the RFC Series Oversight Committee (RSOC) is described, as is the relationship between the IETF Administrative Oversight Committee (IAOC) and the RSOC.  This document reflects the experience gained with &quot;RFC Editor Model (Version 1)&quot;, documented in RFC 5620, and obsoletes that document.  This document is not an Internet Standards Track  specification; it is published for informational purposes.</t></abstract>
</front>
<seriesInfo name='RFC' value='6635'/>
<seriesInfo name='DOI' value='10.17487/RFC6635'/>
</reference>



<reference anchor='RFC6949' target='https://www.rfc-editor.org/info/rfc6949'>
<front>
<title>RFC Series Format Requirements and Future Development</title>
<author fullname='H. Flanagan' initials='H.' surname='Flanagan'><organization/></author>
<author fullname='N. Brownlee' initials='N.' surname='Brownlee'><organization/></author>
<date month='May' year='2013'/>
<abstract><t>This document describes the current requirements and requests for enhancements for the format of the canonical version of RFCs.  Terms are defined to help clarify exactly which stages of document production are under discussion for format changes.  The requirements described in this document will determine what changes will be made to RFC format.  This document updates RFC 2223.</t></abstract>
</front>
<seriesInfo name='RFC' value='6949'/>
<seriesInfo name='DOI' value='10.17487/RFC6949'/>
</reference>



<reference anchor='RFC7991' target='https://www.rfc-editor.org/info/rfc7991'>
<front>
<title>The &quot;xml2rfc&quot; Version 3 Vocabulary</title>
<author fullname='P. Hoffman' initials='P.' surname='Hoffman'><organization/></author>
<date month='December' year='2016'/>
<abstract><t>This document defines the &quot;xml2rfc&quot; version 3 vocabulary: an XML-based language used for writing RFCs and Internet-Drafts.  It is heavily derived from the version 2 vocabulary that is also under discussion.  This document obsoletes the v2 grammar described in RFC 7749.</t></abstract>
</front>
<seriesInfo name='RFC' value='7991'/>
<seriesInfo name='DOI' value='10.17487/RFC7991'/>
</reference>



<reference anchor='RFC8651' target='https://www.rfc-editor.org/info/rfc8651'>
<front>
<title>Dynamic Link Exchange Protocol (DLEP) Control-Plane-Based Pause Extension</title>
<author fullname='B. Cheng' initials='B.' surname='Cheng'><organization/></author>
<author fullname='D. Wiggins' initials='D.' surname='Wiggins'><organization/></author>
<author fullname='L. Berger' initials='L.' role='editor' surname='Berger'><organization/></author>
<date month='October' year='2019'/>
<abstract><t>This document defines an extension to the Dynamic Link Exchange Protocol (DLEP) that enables a modem to use DLEP messages to pause and resume data traffic coming from its peer router.</t></abstract>
</front>
<seriesInfo name='RFC' value='8651'/>
<seriesInfo name='DOI' value='10.17487/RFC8651'/>
</reference>




    </references>



  </back>

<!-- ##markdown-source:
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
NunbLVAWXeXa8UviBnuX+A+rmjvMIxgAAA==

-->

</rfc>

