[regext] Extension Versioning Location Information and What Changes the Version Options
"Gould, James" <jgould@verisign.com> Tue, 16 June 2026 14:58 UTC
Return-Path: <jgould@verisign.com>
X-Original-To: regext@mail2.ietf.org
Delivered-To: regext@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id AEA31102345FB for <regext@mail2.ietf.org>; Tue, 16 Jun 2026 07:58:34 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=ietf.org; s=ietf1; t=1781621914; bh=KzTpPss3veK30WbzemXW9CPiW4yrAfqZ7oHZU6kPafI=; h=From:To:Subject:Date; b=YuJOnPWmz8qaXABdeclOLCzYoroTfsVQIbrN5D9LCNwNWiPOX1O4rZK9Z1a4xCcEq IpMZ2+q1Qlywdcl7MWQ8tlH77vaoWICzeNVYRrDmbTKNu8bUnE2WawCb6LSJPKKepK fkKhBwu7eaxNTvHicXXmSuH+Pk60Nn6Z9BoEqLcg=
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -4.395
X-Spam-Level:
X-Spam-Status: No, score=-4.395 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_VALIDITY_CERTIFIED_BLOCKED=0.001, RCVD_IN_VALIDITY_RPBL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_NONE=0.001] autolearn=ham autolearn_force=no
Authentication-Results: mail2.ietf.org (amavisd-new); dkim=pass (2048-bit key) header.d=verisign.com
Received: from mail2.ietf.org ([166.84.6.31]) by localhost (mail2.ietf.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 6eVt06Y3758F for <regext@mail2.ietf.org>; Tue, 16 Jun 2026 07:58:34 -0700 (PDT)
Received: from mail4.verisign.com (mail4.verisign.com [69.58.187.30]) by mail2.ietf.org (Postfix) with ESMTP id B140E1023446A for <regext@ietf.org>; Tue, 16 Jun 2026 07:57:09 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=verisign.com; l=36556; q=dns/txt; s=VRSN; t=1781621829; h=from:to:subject:date:message-id:mime-version; bh=KzTpPss3veK30WbzemXW9CPiW4yrAfqZ7oHZU6kPafI=; b=Dbqvue9CFWaXZnRgS4Elu7dFMW8qW5uhswVsSL6DFf90r7P22gSAO+C7 YvS8CMl4cQO58a5JL/jxb7mG4hVZDfZ86APECwc4lJg2DTRkxdt+UOX1+ lwE3mUi/lHK+gx1kuj2yiWpYwdmgweHE4gLuX4PdZsgeGwbFlaPPv3Nrw 4YjXp7XYpMWt2tLYRvfuFwycyxwXdiHzj6+QNQX0LOQxVEfV/9eZRDWwA 9qxQlYfr76JGwM6BxDHdYVl+OLUp2wUHfxg9woDITAgZBqn1NL6m5Pen8 BtdeW26puHkpXomlbcoONlz3jfYfmFQPZBAoKgMHrL7OXNV9Kr/vc6ng7 g==;
X-CSE-ConnectionGUID: pzS7x1cRSZGp8hjg11OvUQ==
X-CSE-MsgGUID: zgbmSPN2QmentfvBtmFN1g==
X-ThreatScanner-Verdict: Negative
IronPort-Data: A9a23:KAXkQKn+FZD8+glZhTvC5bvo5gxfJ0RdPkR7XQ2eYbSJt16W5oE+e lBvADTXbaqKYmPrO4chWDmFhUgFuMLUx4BhTAVp+Xg3FHwS+MafWN6QJxqhNn7OIMHIERs35 JtCNtTOcslqECGB/kvwbrO49Hctjq3XTOX1UuSs1kydJONBYH5JZUVLx7dg3eaE+OSEPj5hm e8eguWAY1Osi2R+bT8e4vjd9EIysav/52wRt1dkOa4W7VbXmyVMXMMUKJ/qIiqjSOG4PAIYq 8Xrl+jlozyDr3/BLvv/z94Xp2VTGua60TCm0yQQA+7+xEAb+ETe645jXNIEc0Bblj6VqN54z dRJpPSYRBwgVkH2sL11vyJwTWckYcWqxJedeSLh6ZLKkRWdG5fR664G4H8ebNVwFtlfXDkmG cwwcFglch2FjuSq97O3IsEErtgjNsTiILQEsXhmyzzDZd5+KXwUa/yXjTPw9G5YavFmRZ4yV eJAAdZcRE2ojyl0B7siIMlWcNGA3SCjLmIC+Dp5koJsi4Tb5FQZPLHFboKJKoTSLSlfth7wS mnupwwVDvyGXTA2JPXsHn+E34fycS3HtI06DK+Dqe4zi2eo9EMLWB0UWgLihueEsxvrMz5fA xR8FisGiIkW2xWUaPTNB0f+vnWDpAZaUtYWDfch7keGza+8DwSxXzBCFGIfLoV77olsHlTG1 XfQ9z/tLT5gt6CRRVqD+62VtjK9P24eKmpqiSosEVVav4e7/dBbYhTnXNlpFZWNqIfMHDz23 z6UhjQ7qZNKgptev0m81RWd6962nbDTQwE49hn/X2+54EV+foHNWmCzwV3a6fkZM4CUXgHb+ WMagZHY6eEVSJuK0i2JT7xLAquy4bCONzi0bUNTIqTNPg+FoxaLFb28KhknTKu1Gq7ooQPUX XI=
IronPort-HdrOrdr: A9a23:h8lHw6tDQh3kvLBbAx7D7Wc47skDq9V00zEX/kB9WHVpm6uj5q WTdZUgpH3JYVkqOE3I9ervBEDiexzhHPdOiOEs1NyZLWrbUQWTTb1K3M/NzzrtACXi+uMY/r cIScRDIey1KVRhl8717E2bH8ZI+rO62ZHtoevF1X9iQUVRdqd6425CZzqzCEFsWwVcP5Y/Ga ed4sYvnVGdRUg=
X-Talos-CUID: 9a23:TUTu/m58MdL1WBtRu9ss7FwvRdB8eUfm/ljIc0+6Bj8wb6OocArF
X-Talos-MUID: 9a23:2fyGIwbbCUZjguBTpTDmgQpaEp1R5qmoFE4Tu4kDle/dOnkl
X-IronPort-AV: E=Sophos;i="6.24,208,1774310400"; d="png'150?scan'150,208,217,150";a="46746059"
Received: from MILG1WNEX01.vcorp.ad.vrsn.com (10.246.152.21) by MILG1WNEX02.vcorp.ad.vrsn.com (10.246.152.23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.2562.37; Tue, 16 Jun 2026 10:57:09 -0400
Received: from MILG1WNEX01.vcorp.ad.vrsn.com ([10.246.152.21]) by MILG1WNEX01.vcorp.ad.vrsn.com ([10.246.152.21]) with mapi id 15.02.2562.037; Tue, 16 Jun 2026 10:57:09 -0400
From: "Gould, James" <jgould@verisign.com>
To: "regext@ietf.org" <regext@ietf.org>
Thread-Topic: Extension Versioning Location Information and What Changes the Version Options
Thread-Index: AQHc/aBn5QWBCfV95UGsHqveJ0mO/g==
Date: Tue, 16 Jun 2026 14:57:09 +0000
Message-ID: <C0F73A89-0469-4673-AC40-EF5615CFF6B3@verisign.com>
Accept-Language: en-US
Content-Language: en-US
X-MS-Has-Attach: yes
X-MS-TNEF-Correlator:
user-agent: Microsoft-MacOutlook/16.108.26041219
x-originating-ip: [10.246.152.17]
Content-Type: multipart/related; boundary="_004_C0F73A8904694673AC40EF5615CFF6B3verisigncom_"; type="multipart/alternative"
MIME-Version: 1.0
Message-ID-Hash: ODKNJ7DRKJD3FCAA3OOONQ4RQSTHOVNP
X-Message-ID-Hash: ODKNJ7DRKJD3FCAA3OOONQ4RQSTHOVNP
X-MailFrom: jgould@verisign.com
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-regext.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [regext] Extension Versioning Location Information and What Changes the Version Options
List-Id: Registration Protocols Extensions Working Group <regext.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/regext/XHyPXtm0fCFlnHeHEU_kr63cg7s>
List-Archive: <https://mailarchive.ietf.org/arch/browse/regext>
List-Help: <mailto:regext-request@ietf.org?subject=help>
List-Owner: <mailto:regext-owner@ietf.org>
List-Post: <mailto:regext@ietf.org>
List-Subscribe: <mailto:regext-join@ietf.org>
List-Unsubscribe: <mailto:regext-leave@ietf.org>
There has been a lot of discussion related to extension versioning on the mailing list. To help define a path forward, I’ve provided a set of options for the Location of Versioning Information (Opaque Versioning, Embedded Versioning, Point Versioning) and What Changes the Version (Breaking Change, Interface Change, Any Change) below for the working group to weigh in.
1. Location of Versioning Information
a. Entire Extension Identifier supported by Opaque Versioning – The only signal of a change in interface is a change to the entire Extension Identifier with no pre-defined embedded versioning scheme.
b.Embedded in Extension Identifier (New versioning type, such as Embedded Versioning) – This type of versioning would formally define a versioning scheme in the format of the Extension Identifier, where the ‘_’ can only be used as a separator for the extension elements, so the scheme needs to leverage a predefined alphanumeric format using snake case for word separators. One option is to embed the major and minor values used in the Point Versioning into the Extension Identifier, such as the following Extension Versioning Identifier. An example would be “exampleExtV01V12”.
i. embedded-version-identifier = name “V” major “V” minor ; Complies with "name" ABNF rule from RFC 7480
ii. name = ALPHA *( ALPHA / DIGIT) ; Subset of “name” ABNF rule from RFC 7480
iii. major = 2DIGIT ; Numerically increasing value with a leading “0” when < 10
iv. minor = 2DIGIT ; Numerically increasing value with a leading “0” when < 10
c. Point Versioning (any versioning type that doesn’t include the versioning directly in the Extension Identifier) – The versioning is additive to the Extension Identifier, where the Extension Identifier acts as a namespace. Extensions that support Point Versioning includes a dependency on the implementation of the Versioning Extension for clients to be capable of knowing the extension versions supported by the server and to indicate what extension version it desires to use. The server supports a default version of each Point Versioning Extension implemented with the capability for the client to override the default using a query parameter or a media type parameter.
2. What Changes the Version
a. Breaking Change – The only requirement for changing the version is when the successor extension makes a breaking change to the predecessor extension. Learning new optional features in an implemented successor extension would need to be communicated out-of-band.
b.Interface Change – Any interface change (breaking or non-breaking) changes the version of the successor extension. A non-interface change in the extension specification does not change the version, so therefore the mapping of the extension specification to the version is embedded in the specification, such as the use of the Extension Version Identifier section for Point Versioning.
c. Any Change – Any change to the specification changes the version of the successor extension. The scheme for the versioning can be based on the draft versions, while considering the possible change in the extension names as well as draft version numbers (e.g., proprietary example-ext changes to individual draft draft-author-example-ext-01 changes to working group draft draft-ietf-example-ext-00). Nit changes to a specification will result in a version change.
Are there additional options that should be considered?
In thinking about the options, my preference continues to be “Point Versioning” for the “Location of Versioning Information” and “Interface Change” for “What Changes the Version”. This keeps the versioning information outside of the Extension Identifier, since there are too many use cases for embedding the versioning inside the Extension Identifier that is not well suited for the “name” ABNF rule from RFC 7480. The versioning needs to support defining the full interface of an extension so that clients don’t break when expecting an older interface or when expecting a newer interface. The mapping of the specification to the interface can be included directly in the specification, such as including an “Extension Version Identifier” section, as done in draft-ietf-regext-rdap-versioning (Section 6), draft-ietf-regext-rdap-jscontact (Section 3.1.2), and draft-loffredo-regext-rdap-verified-contacts (Section 7). There can be proprietary extensions, individual IETF draft extensions, working group IETF drafts, and finally RFCs that don’t provide for a consistent naming scheme that can be used in the Extension Identifier.
Thanks,
--
JG
[cid87442*image001.png@01D960C5.C631DA40]
James Gould
Fellow Engineer
jgould@Verisign.com<applewebdata://13890C55-AAE8-4BF3-A6CE-B4BA42740803/jgould@Verisign.com>
703-948-3271
12061 Bluemont Way
Reston, VA 20190
Verisign.com<http://verisigninc.com/>
- [regext] Extension Versioning Location Informatio… Gould, James
- [regext] Re: Extension Versioning Location Inform… Pawel Kowalik
- [regext] Re: Extension Versioning Location Inform… Gould, James
- [regext] Re: Extension Versioning Location Inform… Andy Newton
- [regext] Re: Extension Versioning Location Inform… Gould, James
- [regext] Re: Extension Versioning Location Inform… Pawel Kowalik
- [regext] Re: Extension Versioning Location Inform… Gould, James
- [regext] Re: Extension Versioning Location Inform… Jasdip Singh
- [regext] Re: Extension Versioning Location Inform… Gould, James