<?xml version='1.0' encoding='UTF-8'?>

<!-- [rfced] pre-edited by ST 09/16/24 -->

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

<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rswg-rfc7990-updates-12" number="0000" category="info" submissionType="editorial" obsoletes="7990" updates="9280" tocInclude="true" sortRefs="true" symRefs="true" version="3" xml:lang="en">

  <front>
    <title abbrev="RFC Formats and Versions">RFC Formats and Versions</title>
    <seriesInfo name="RFC" value="0000"/>
    <author initials="P." surname="Hoffman" fullname="Paul Hoffman">
      <organization>ICANN</organization>
      <address>
        <email>paul.hoffman@icann.org</email>
      </address>
    </author>
    <author initials="H." surname="Flanagan" fullname="Heather Flanagan">
      <organization>Spherical Cow Consulting</organization>
      <address>
        <email>hlf@sphericalcowconsulting.com</email>
      </address>
    </author>
    <date year="2024" month="October"/>

<!-- [rfced] Please insert any keywords (beyond those that appear in
the title) for use on https://www.rfc-editor.org/search. -->

<keyword>example</keyword>

    <abstract>

<t>In order to improve the readability of RFCs while supporting their archivability, the definitive version of the RFC Series transitioned from plain-text ASCII to XML using the RFCXML vocabulary; different publication versions are rendered from that base document.
This document describes how RFCs are published.</t>
      <t>This document obsoletes RFC 7990.
This document also updates the stability policy in RFC 9280.</t>
    </abstract>
  </front>
  <middle>


<section anchor="introduction">
      <name>Introduction</name>
      <t>"RFC Series Format Requirements and Future Development" <xref target="RFC6949"/> discussed the need to improve the display of items such as author names and artwork in RFCs as well as the need to improve the ability of RFCs to be displayed properly on various devices.
Based on the discussions with communities of interest, such as the IETF, the RFC Series Editor decided to explore a change to the format of the Series.
<xref target="RFC7990"/> was the culmination of that exploration.</t>
      <t>This document is concerned with the production of RFCs, focusing on the published documents.
It does not address any changes to the processes each stream uses to develop and review their submissions (specifically, how Internet-Drafts will be developed).
While I-Ds have a similar set of issues and concerns, directly addressing those issues for I-Ds should be discussed within each document stream.</t>
      <t>The details described in this document are expected to continue to change over time as the community and the RFC Production Center (RPC) gains further experience implementing the policies described here.</t>
      <t>Implementors of those components are advised to avoid assuming that all such changes will be backwards-compatible.</t>
      <section anchor="changes-to-rfc-7990">
        <name>Changes to RFC 7990</name>
        <t><xref target="RFC7990"/> defined a framework for how RFCs would be published after that document was published, including new formats and a new "canonical format" for archiving RFCs.
It talked about "the XML file" as if there would only be one XML file for an RFC because that was the expectation at the time <xref target="RFC7990"/> was published.
It also talked about "publication formats" as the versions of HTML, text, and PDF derived from the "canonical format".</t>
        <t>After extensive experience with publishing RFCs in the RFCXML format <xref target="RFC7991"/>, it has been decided that an RFC's XML file can be updated for narrowly limited purposes.
This document changes <xref target="RFC7990"/> in significant ways:</t>
        <ul spacing="normal">
          <li>
            <t>It defines four terms that replace the use of the term "canonical" and clarifies "format":
            </t>
            <ul spacing="normal">
              <li>
                <t>The "definitive format", which is RFCXML</t>
              </li>
              <li>
                <t>The "definitive version", which is a published RFC in the definitive format</t>
              </li>
              <li>
                <t>A "publication format", which is currently one of PDF, plain text, or HTML</t>
              </li>
              <li>
                <t>A "publication version", which is a published RFC in one of the publication formats</t>
              </li>
            </ul>
          </li>
          <li>
            <t>It defines a policy governing how the RFCXML format changes.</t>
          </li>
          <li>
            <t>It defines a policy for when the definitive version of an RFC can be updated and older definitive versions archived.</t>
          </li>
          <li>
            <t>It defines a policy for when the publication versions of an RFC can be updated and older publication versions archived.</t>
          </li>
        </ul>
        <t>When using the new terminology, it is important to note that <xref target="RFC7990"/> used the term "canonical format" to mean two very different things. Quoting from RFC 7990:</t>

<blockquote>
            <t>Canonical format: the authorized, recognized, accepted, and archived version of the document</t>
        </blockquote>
        <t>and</t>
        <blockquote>
            <t>At the highest level, the changes being made to the RFC format involve breaking away from solely ASCII plain text and moving to a canonical format that includes all the information required for rendering a document into a wide variety of publication formats.</t>
        </blockquote>
        <t>This document uses two terms, "definitive version" and "definitive format", for the earlier term "canonical format".</t>
        <t>Other terminology changes made by this document are the following:
- It changes the phrase "xml2rfc version 3" to "RFCXML".
- It changes the name of the body that publishes RFCs from "RFC Editor" to "RFC Production Center" (RPC).</t>
        <t>Historical text from <xref target="RFC7990"/> such as Sections <xref target="RFC7990" section="2" sectionFormat="bare"/> ("Problem Statement"), <xref target="RFC7990" section="4" sectionFormat="bare"/> ("Overview of the Decision-Making Process"), and <xref target="RFC7990" section="10" sectionFormat="bare"/> ("Transition Plan") were purposely omitted from this document.
Text from <xref target="RFC7990"/> that repeated what was in other RFCs, particularly Sections <xref target="RFC7990" section="8" sectionFormat="bare" /> (Figures and Artwork) and <xref target="RFC7990" section="9" sectionFormat="bare" /> (Content and Page Layout) were also removed.</t>
      </section>
      <section anchor="changes-to-9280">
        <name>Changes to RFC 9280</name>
        <t><xref target="RFC9280" sectionFormat="of" section="7.6" /> currently says:</t>
<blockquote>
            <t>Once published, RFC Series documents are not changed.</t>
        </blockquote>
        <t>This document replaces that sentence with:</t>
<blockquote>
            <t>Once published, RFCs may be re-issued, but the semantic content of publication versions shall be preserved to the greatest extent possible.</t>
</blockquote>
        <t>This document also creates a new policy that would exist in <xref target="RFC9280" sectionFormat="of" section="7"/>:</t>

<blockquote>
            <t>7.8.  Consistency</t>
            <t indent="3">RFCs are copyedited, formatted, published, and may be reissued to maintain a consistent presentation.</t>
</blockquote>
        <t><xref target="updating"/> and <xref target="pub-versions"/> in this document are based on this updated policy in <xref target="RFC9280"/>.</t>
      </section>
      <section anchor="key-changes-from-the-earlier-rfc-process">
        <name>Key Changes from the Earlier RFC Process</name>
        <t>The first RFC to be published following the guidance of the group of RFCs described in <xref target="RFC7990"/> was <xref target="RFC8651"/>, published in October 2019.
In the time since then, all published RFCs have followed the general plan from <xref target="RFC7990"/>.</t>
        <t>At the highest level, the changes that <xref target="RFC7990"/> made to the RFC format involved breaking away from solely ASCII <xref target="RFC0020"/> plain text and moving to a definitive format that includes all the information required for rendering a document into a wide variety of publication formats.
The RPC became responsible for more than just the plain-text file and a PDF rendering that was created from the plain text at the time of publication; the RPC now creates the definitive version and three publication versions of the RFC in order to meet the diverse requirements of the community.</t>
        <t>The final RFCXML file produced by the RPC is the definitive version for RFCs; it holds all the information intended for an RFC.
Additional publication versions (HTML, PDF, and plain text) are also published by the RPC.
The publication formats are described in <xref target="pub-versions"/> and fully specified in other RFCs.</t>
      </section>
    </section>
    <section anchor="definitive-version-of-an-rfc">
      <name>Definitive Version of an RFC</name>
      <t>The definitive version produced by the RPC is the publication version that holds all the information intended for an RFC.
The RPC may change the definitive version of an RFC over time (that is, change the XML file), as described in <xref target="updating"/>.
See <xref target="RFC7991"/> for the original complete description of RFCXML.</t>
      <t>The XML may contain SVG line art, as originally described in <xref target="RFC7996"/>.
That SVG will also appear in the HTML publication versions.
The XML may contain non-ASCII characters, as originally described in <xref target="RFC7997"/>.
These characters will appear in all the publication versions.</t>
      <t>The definitive version must contain all information necessary to render the specified publication versions; any question about what was intended in the publication will be answered from this file.
It is self-contained with all the semantic content known at publication time.
For instance, all features that reference externally defined input are expanded.
It does not contain src attributes for &lt;artwork&gt; or &lt;sourcecode&gt; elements.
It  does not contain comments or processing instructions.</t>
      <section anchor="updating">
        <name>Updating the Definitive Version of an RFC</name>
        <t>RFCs may be re-issued, as described in <xref target="changes-to-9280"/>.
Such changes must preserve the semantics expressed in the original RFC.
Reasons to make such changes include updates to the RFCXML schema, errors discovered in the XML, and changes to the tooling used to generate the publication versions of the definitive version of the RFC.
The RPC will keep a public record of when it re-issues any RFC, and give a short description of its reasoning for each change.</t>
      </section>
      <section anchor="expected-updates-to-rfcxml">
        <name>Expected Updates to RFCXML</name>
        <t>It is anticipated that <xref target="RFC7991"/> will be updated.
Updates to the RFCXML specification that are applied to existing RFCs should preserve to the greatest extent possible the semantics expressed in the original RFC.
The goal of limiting changes only to syntax is to preserve the semantic meaning encoded in the published document.</t>
        <t>This policy does not require that updates to RFCXML avoid all risk of introducing semantic changes to existing RFCs.
Instead, it only requires that such updates consider the potential for semantic changes, take steps to understand the risk of a semantic change (either deliberate or inadvertent), and to limit those risks.</t>
      </section>
    </section>
    <section anchor="pub-versions">
      <name>Publication Versions</name>
      <t>The RPC is permitted but not required to re-issue publication versions of an RFC, as described in <xref target="changes-to-9280"/>.
In deciding whether to update the publication versions of an RFC, the RPC will take into account both the risk of semantic changes and consistency of the series.</t>
      <t>XML format errors and better design choices have been discovered by the community since the first RFCs were published using the RFCXML format.
When the XML in a definitive version changes, the publication versions may change, even if this might not result in observable differences.
Similarly, as production tools change, publication versions may be regenerated to ensure a consistent presentation.</t>
    </section>
    <section anchor="archived-documents">
      <name>Archived Documents</name>
      <t>The RPC will keep an archived set of all definitive versions of RFCs as well as archived sets of the publication versions for an RFC that were previously published.
These archived sets must be available using the same access methods as for current definitive and publication versions.
Every archived set shall record the date that a definitive and/or publication version was created or reissued.</t>
      <t>When the RPC archives definitive and publication versions, it does so in a manner that allows them to be found by people who want the historical (as compared to current) files.</t>
      <t>This document does not specify how archives are maintained or how archived documents might be located or identified.
The methods for storage and access will be determined by the RPC in consultation with the technical community.</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>Allowing changes to the definitive versions and publication versions of RFCs introduces risks.
A significant risk is that unintended changes could occur in either the definitive version or publication versions of an RFC as a result of an editing error, or may be introduced into a publication version when it is regenerated from the definitive version.
This may result in the corruption of a standard, practice, or critical piece of information about a protocol, and harm to the reputation of the RFC series.</t>
      <t>The RPC is expected to identify, track, and actively mitigate risks introduced by this new policy.</t>
    </section>
    <section anchor="acknowledgments">
      <name>Acknowledgments</name>
      <t><contact fullname="Martin Thomson"/> wrote a great deal of the significant text here as part of draft-thomson-rswg-syntax-change.</t>
      <t>This document has greatly benefited from the input of the RSWG.
In particular,
<contact fullname="Alexis Rossi"/>,
<contact fullname="Brian Carpenter"/>,
<contact fullname="Eliot Lear"/>,
<contact fullname="Jay Daley"/>,
<contact fullname="Jean Mahoney"/>,
<contact fullname="John Levine"/>,
and <contact fullname="Pete Resnick"/>,
gave significant input on the early drafts of this document.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7991.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7996.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7997.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.9280.xml"/>
      </references>
      <references anchor="sec-informative-references">
        <name>Informative References</name>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.0020.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.6949.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.7990.xml"/>
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.8651.xml"/>
      </references>
    </references>
  </back>
</rfc>
