Hi Pawel,

again  comments below.

Il 21/06/2026 08:20, Pawel Kowalik ha scritto:
Hi Mario,

On 20.06.26 08:02, Mario Loffredo wrote:

Il 19/06/2026 18:54, Pawel Kowalik ha scritto:
Hi Mario,

On 19.06.26 18:47, Mario Loffredo wrote:
[ML] This is an example of how the given backward-incompatible change can be handled by changing the extension identifier, thus maximizing the scope of the change.

In both cases, a transition must be managed to deprecate an extension feature. However, in the first example, the transition aims to deprecate risk_ext.score; in the second example, the transition aims to deprecate the entire risk_ext member (and any other extension features).

Deprecation of risk_ext.score without change of extension identifier is a complex decision, as in fact it would be breaking for unaware client so in fact would again require a change of extension identifier.

Why would it break clients ?

What would be the difference between deprecating risk_ext1 in favor of risK_ext2 and deprecating risk_ext.score by adding risk_ext.normalizedScore and then managing the transition from risk_ext.score to risk_ext.normalizedScore ?

The clients seeing risk_ext1 in the RDAP conformance shall be able to interoperate with the server announcing it, with the specification versions the client happened to implement at a time.

So as long as risk_ext1 is there, the risk_ext.score shall be there. If risk_ext.score is gone, also risk_ext1 shall be gone, otherwise the clients would see risk_ext1 and either try to read an non-existing property (if it was obligatory) or maybe misinterpret the result (if for example missing optional risk_ext.score had a meaning).

If the client does not see risk_ext1, it would certainly have code paths for handling no extension support reliably.

Checking the rdapConformance values ​​does not minimize the likelihood of causing problems for clients unless they implement a defensive parser, which Andy considers very complex.

The rdap-extensions draft describes a transition period approach where both the old and new version of an extension are served simultaneously. However, after the old version is removed and only the new payload remains, the clients only knowing the old version break — so the statement that it is safe to remove is false.

A big limitation is that RDAP extension identifiers are opaque, and, as also pointed out in Section 5.4 of rdap-extensions, overlapping successors are indistinguishable from one extension referencing another extension. This means a client cannot programmatically determine whether risk_ext2 is a breaking successor to risk_ext1 or a completely unrelated extension — it must consult the specification. That way, clients relying on the previous version of the extension will continue to function as intended, while clients wanting to make use of the newer version of the extension can check for the new identifier in the response.

Best,

Mario


Kind Regards,
Pawel



--
Dott. Mario Loffredo
Senior Technologist
Technological Unit “Digital Innovation”
Institute of Informatics and Telematics (IIT)
National Research Council (CNR)
Address: Via G. Moruzzi 1, I-56124 PISA, Italy
Phone: +39.0503153497
Web: http://www.iit.cnr.it/mario.loffredo

_______________________________________________
regext mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to