[Cbor] WGLC redux (Re: đź”” WGLC on draft-ietf-cbor-cde-08)

Carsten Bormann <cabo@tzi.org> Mon, 31 March 2025 12:29 UTC

Return-Path: <cabo@tzi.org>
X-Original-To: cbor@mail2.ietf.org
Delivered-To: cbor@mail2.ietf.org
Received: from localhost (localhost [127.0.0.1]) by mail2.ietf.org (Postfix) with ESMTP id 952011514884; Mon, 31 Mar 2025 05:29:30 -0700 (PDT)
X-Virus-Scanned: amavisd-new at ietf.org
X-Spam-Flag: NO
X-Spam-Score: -3.387
X-Spam-Level:
X-Spam-Status: No, score=-3.387 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_MED=-2.3, RDNS_NONE=0.793, T_SPF_HELO_TEMPERROR=0.01, T_SPF_TEMPERROR=0.01] autolearn=ham autolearn_force=no
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 eYBpQt8TyrG9; Mon, 31 Mar 2025 05:29:29 -0700 (PDT)
Received: from smtp.zfn.uni-bremen.de (unknown [IPv6:2001:638:708:32::21]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature ECDSA (P-256) server-digest SHA256) (No client certificate requested) by mail2.ietf.org (Postfix) with ESMTPS id 7B11D151487E; Mon, 31 Mar 2025 05:29:29 -0700 (PDT)
Received: from smtpclient.apple (clients-pool2-0517.vpn.uni-bremen.de [134.102.214.5]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.zfn.uni-bremen.de (Postfix) with ESMTPSA id 4ZR9Rk54bjzDCj3; Mon, 31 Mar 2025 14:29:22 +0200 (CEST)
Content-Type: text/plain; charset="utf-8"
Mime-Version: 1.0 (Mac OS X Mail 16.0 \(3826.400.131.1.6\))
From: Carsten Bormann <cabo@tzi.org>
In-Reply-To: <Z8oi3HMTum5eriSw@hephaistos.amsuess.com>
Date: Mon, 31 Mar 2025 14:29:12 +0200
Content-Transfer-Encoding: quoted-printable
Message-Id: <ABE85E99-9B1F-4B09-8910-9CEB58DA1240@tzi.org>
References: <Z8oi3HMTum5eriSw@hephaistos.amsuess.com>
To: CBOR <cbor@ietf.org>
X-Mailer: Apple Mail (2.3826.400.131.1.6)
Message-ID-Hash: 6GWK3O7BZLDN52ESUKJL7NAWYFJNX2ES
X-Message-ID-Hash: 6GWK3O7BZLDN52ESUKJL7NAWYFJNX2ES
X-MailFrom: cabo@tzi.org
X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; header-match-cbor.ietf.org-0; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header
CC: draft-ietf-cbor-cde@ietf.org
X-Mailman-Version: 3.3.9rc6
Precedence: list
Subject: [Cbor] WGLC redux (Re: đź”” WGLC on draft-ietf-cbor-cde-08)
List-Id: "Concise Binary Object Representation (CBOR)" <cbor.ietf.org>
Archived-At: <https://mailarchive.ietf.org/arch/msg/cbor/uWYqTxvP_2SqFGBcaSgSc16XyXg>
List-Archive: <https://mailarchive.ietf.org/arch/browse/cbor>
List-Help: <mailto:cbor-request@ietf.org?subject=help>
List-Owner: <mailto:cbor-owner@ietf.org>
List-Post: <mailto:cbor@ietf.org>
List-Subscribe: <mailto:cbor-join@ietf.org>
List-Unsubscribe: <mailto:cbor-leave@ietf.org>

Hi,

preparing for Wednesday’s interim, I looked at the ~ 32 messages on this mailing list that mentioned the draft since WGLC, preparing for submitting -09.

I couldn’t really do much with the messages that said they wanted some other documents instead, such as a discussion of CBOR interoperability considerations, which the CDE document is not about.

Anders agreed that this document should move forward, but had these points [1]:

[1]: <https://mailarchive.ietf.org/arch/msg/cbor/2tgHTlheVhaOMpecfeZ-ORFm1hE>

> UNCLEAR RATIONALE:

Both abstract and first paragraph of the introduction provide rationale for CDE (and the new term “basic serialization”).

> UNFINISHED RESEARCH:

Anders has a question about dCBOR, which is irrelevant to the present document.
(There also is no research necessary to answer this question.)

> COMPATIBILITY ISSUES:

Anders believes there is some interoperability danger from creating CBOR profiles.
I actually agree, which is why CDE unifies the existing approaches to deterministic encoding in one common best current practice, which also could be called “profile" (but: there is only one).
There also is an attempt to describe dCBOR as a competitor profile to CDE, which it isn’t.

> MIXING LEVELS:
> The CDE draft spans everything from encoding numbers

(Which is indeed properly the subject of CDE)

> to how
> you deal with objects having multiple representations (like some
> CBOR date objects).  

CDE points out that you might have to say something about this (deterministic representation down from the application level) in conjunction with CDE (deterministic encoding of CBOR data items).
It doesn’t define a best current practice for *what* to say (too application specific), but does introduce terms that might help with *how* to say it.
In any case, it points out that the fact that you might have to say something doesn’t invalidate CDE as the one common best current practice for deterministic encoding.
This is necessary to understand when using this BCP.

> VERBOSITY:
> CDE is (obviously) a follow-up document to RFC 8949. As such it
> inherited a style of writing which I as a "normal engineer" have
> issues with.  Both documents feels more like "PhD dissertations",
> than specifications targeting implementers.  Personally, I used
> https://cbor.me as the "truth", when navigating RFC 8949.

Indeed, we clearly have different styles.
The “implementer’s manual” style Anders seems to like just doesn’t cut it when creating actual specifications.
It is great for blog posts and Wiki pages, though (hint, hint).


Laurence [2] points out that much of the CDE document is already specified in RFC 8949.
Still, he thinks that CDE should be standards-track, not BCP as currently planned.
I don’t think this would be entirely wrong, but BCP just is closer to what this document does: delineating an important set of related statements already in RFC 8949 and supplying a common term for them, including making a choice where one is left open by RFC 8949.

There are also a few things in [2] that aren’t quite right, but I won’t niggle with the text in the comment.
I just would like to state my disagreement with his finding of CDE to be "an opportunity to refine the normative definitions of basic serialization, preferred serialization, and CDE” in the sense of restating RFC 8949 and making CDE update RFC 8949.
Restatements are bad [restate], and, if at all, I’d go into the inverse direction to point out that many CBOR-based standards (e.g., COSE) miraculously already make use of CDE as is (as always, of the subset of CDE they need, which is small for COSE).  
But that would be informational, and it maybe fits better on a Wiki page.

[restate]: https://www.ietf.org/archive/id/draft-bormann-restatement-03.html

Laurence also would like to rename “basic serialization” into “CIE” (CBOR Interoperable Encoding), which would be highly misleading, as it would imply other choices provided by RFC 8949 aren’t interoperable, which they surely are.

[2]: <https://mailarchive.ietf.org/arch/msg/cbor/OW3t8mohL9QMxYugJ7nzV-NBd5A>

Michael [3] thinks we should publish "a set of canonical encoding templates”.  I’m not quite sure what that would be, but the point of CDE is that we only need one “Common Deterministic Encoding” and not a menu of templates to choose from.  In any case, he was quite affirmative of this document.

[3]: <https://mailarchive.ietf.org/arch/msg/cbor/6dwAUypkoJTkxg2xwhOERpORdug>


We have a number of additional comments that essentially reflect a process of becoming aware of the application-level deterministic representation (ALDR) issue and how it is different from CDE (but can be addressed in a way that works well together with CDE).
I think these comments are great support for not ignoring ALDR.

We got lots of great editorial input from Laurence that I tried to incorporate after aligning terminology.
Some of this is already merged, and there is a PR [09] with some more that previews what I will submit as -09.
There is now some minimal consideration of how the existence of encoding variants influences interoperability with partial implementations in Appendix A [09-iop].
Please check [09-html] and [09-diff].
This PR also includes a slightly updated form of three useful tables of examples in Anders’ “base” document, now forming Appendix D.

[09]: https://github.com/cbor-wg/draft-ietf-cbor-cde/pull/28
[09-iop]: https://cbor-wg.github.io/draft-ietf-cbor-cde/models-edit/draft-ietf-cbor-cde.html#appendix-A-5
[09-html]: https://cbor-wg.github.io/draft-ietf-cbor-cde/models-edit/draft-ietf-cbor-cde.html
[09-diff]: https://author-tools.ietf.org/api/iddiff?url_1=https://cbor-wg.github.io/draft-ietf-cbor-cde/draft-ietf-cbor-cde.txt&url_2=https://cbor-wg.github.io/draft-ietf-cbor-cde/models-edit/draft-ietf-cbor-cde.txt

I’ll do another editorial round before submitting, so comments are welcome (of course, even after submitting -09 as well).

> On 2025-03-06, at 23:34, Christian AmsĂĽss <christian@amsuess.com> wrote:
> 
> The call will run until Marh 26th […]

I’m not a chair of this group, so I’ll leave it to the chairs to consider whether the other feedback we got (e.g., from Wolf McNally [wm]) was affirmative.

[wm]: <https://mailarchive.ietf.org/arch/msg/cbor/2tgHTlheVhaOMpecfeZ-ORFm1hE>

> PS. We don't have a shepherd assigned for this document, any volunteers?

Any takers?  We could discuss this on Wednesday as well.

GrĂĽĂźe, Carsten