Internet-Draft | Format Framework | August 2022 |
Hoffman | Expires 9 February 2023 | [Page] |
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".¶
This Internet-Draft is submitted in full conformance with the provisions of BCP 78 and BCP 79.¶
Internet-Drafts are working documents of the Internet Engineering Task Force (IETF). Note that other groups may also distribute working documents as Internet-Drafts. The list of current Internet-Drafts is at https://datatracker.ietf.org/drafts/current/.¶
Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet-Drafts as reference material or to cite them other than as "work in progress."¶
This Internet-Draft will expire on 9 February 2023.¶
Copyright (c) 2022 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include Revised BSD License text as described in Section 4.e of the Trust Legal Provisions and are provided without warranty as described in the Revised BSD License.¶
[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 [RFC8651], published in October 2019. In the time since then, the new framework has been applied to all published RFCs.¶
The implementation of the framework did not go completely as planned. The canonical format changed many times between the publication of [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.¶
This document describes how the RFC format framework was actually implemented. This document also updates [RFC7990] in that it changes the definition of the canonical format for RFCs. This document explicitly does not update the other documents referenced in [RFC7990], but it does describe how the implementation of the formats for the RFC series has differed from that described in [RFC7990].¶
The RFC Editor has changed the XML v3 vocabulary used to generate RFCs many times since the publication of [RFC7991]. The XML grammars used are currently cataloged at https://github.com/rfc-format/v3grammar. [[ 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.¶
The current vocabulary is published as https://datatracker.ietf.org/doc/draft-irse-draft-irse-xml2rfcv3-implemented/. [[ It would probably be good to move that document to rfc-editor.org ]]¶
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.¶
Section 3 of [RFC7990] defines the canonical format as:¶
Canonical format: the authorized, recognized, accepted, and archived version of the document¶
That definition is the only place in [RFC7990] that uses the word "archived" or "archive". [RFC6949] uses the word in a fashion similar to [RFC7990]. [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."¶
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.¶
At the time that this document is written, the RFC Editor has not changed the XML files for RFCs after they were published.¶
The definition of "canonical format" in Section 3 of [RFC7990] is updated to be:¶
Canonical format: the authorized, recognized, accepted, and most recent archived version of the document¶
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.¶
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 [RFC7990] is updated to say:¶
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.¶
[[ 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. ]]¶
This document has no IANA considerations.¶
This document has the same security considerations as [RFC7990]. Those are:¶
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.¶