Re: [Sedate] A syntax proposal: floating and future times

Bron Gondwana <brong@fastmailteam.com> Mon, 08 November 2021 09:04 UTC

Return-Path: <brong@fastmailteam.com>
X-Original-To: sedate@ietfa.amsl.com
Delivered-To: sedate@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 8CD9B3A0D77 for <sedate@ietfa.amsl.com>; Mon, 8 Nov 2021 01:04:52 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -2.1
X-Spam-Level:
X-Spam-Status: No, score=-2.1 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_MSPIKE_H2=-0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=fastmailteam.com header.b=YdNQILiJ; dkim=pass (2048-bit key) header.d=messagingengine.com header.b=Oa2Mw4zo
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 4zfvNECUHCXP for <sedate@ietfa.amsl.com>; Mon, 8 Nov 2021 01:04:47 -0800 (PST)
Received: from wout1-smtp.messagingengine.com (wout1-smtp.messagingengine.com [64.147.123.24]) (using TLSv1.2 with cipher ADH-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 0E9DF3A0CAD for <sedate@ietf.org>; Mon, 8 Nov 2021 01:04:46 -0800 (PST)
Received: from compute1.internal (compute1.nyi.internal [10.202.2.41]) by mailout.west.internal (Postfix) with ESMTP id F0FAE3201DE8 for <sedate@ietf.org>; Mon, 8 Nov 2021 04:04:45 -0500 (EST)
Received: from imap43 ([10.202.2.93]) by compute1.internal (MEProxy); Mon, 08 Nov 2021 04:04:46 -0500
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= fastmailteam.com; h=mime-version:message-id:in-reply-to :references:date:from:to:subject:content-type; s=fm1; bh=KP+UdiG 4jjy7EtT7skjxFsWnFNMl6AHZzEWEMj6j7MY=; b=YdNQILiJYlPjPdJ28EctIpp jcA4ymIH46oW+i4eLn2l5DLbVivTsRg7eKvXe2oAlQEgtfqbg6DIY7EdLcn0M9Wh Y8X9SNK5p16Cx8bgYV7X1PKcWXm3nbORjJsDOCKvHA06PfsAz84cYVeUMeyLKS8P Isni8/thEekuGzQJa1LGkFAG5rdLAbCQm28OaAG995sf2N1mbsX28SepWnijmKlf bNfkMAPx09QuOA79lU7Yv4mgCq1KYOj9RNz0pEGAT54SNFRhkTZHgZLnD3oTLdIs /eQCSSMVPkxwpJmL+PZPjg/ntJWuo7fwqgs99dR25KJv7xKiczkb7eTZ1Hu8IMA= =
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=content-type:date:from:in-reply-to :message-id:mime-version:references:subject:to:x-me-proxy :x-me-proxy:x-me-sender:x-me-sender:x-sasl-enc; s=fm1; bh=KP+Udi G4jjy7EtT7skjxFsWnFNMl6AHZzEWEMj6j7MY=; b=Oa2Mw4zoD1DpcYrlDXGdUU fx+v3hrAF5R66XSUOex1A4e9wHJCsfaTKRdNXYy0qOmisOuDkeS+a2Btw2Q+Oxgb 7h7rigchrcj0w2TVOX47tNvlHriCg3F77EbMkpeAGM0Y+3WV4iEruiN11Q/NHdz+ yUVfXlw5pz9KXOn+VPZOnh7Z8J4X0SdVrz9zpSiFvNWNY1zX/6kQtLfCTJQvewQo Lw8yYfkUCEKpojxbw63bJaDPFdq9v8Q75Y519EYgTipT6bBn1u+vBgoFz6zRE3/1 ul9oEnvJ4gMaOyjW/ZbcvIPQpaxHjZbxitbVNOIymJypSPMfePTQa2bFFEyy2YaQ ==
X-ME-Sender: <xms:LeiIYX4l711iwWa2ZnK9MiPkI7AxW27Ybmywk1WucoEfELBF3aSYjg> <xme:LeiIYc5GoPafIa7wmgxehkgJQuuVIb8o9UHZkafxoupWD7OMA3z0vEav-fSvG_YMs vrjkDfEuVU>
X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgedvuddruddugdduvdduucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdfqfgfvpdfurfetoffkrfgpnffqhgen uceurghilhhouhhtmecufedttdenucenucfjughrpefofgggkfgjfhffhffvufgtsegrtd erreerredtnecuhfhrohhmpedfuehrohhnucfiohhnugifrghnrgdfuceosghrohhnghes fhgrshhtmhgrihhlthgvrghmrdgtohhmqeenucggtffrrghtthgvrhhnpedvudeuieehgf dvheeuueejjeeuudfgiefgveetfeelteeffffgtdejjefgueduvdenucevlhhushhtvghr ufhiiigvpedtnecurfgrrhgrmhepmhgrihhlfhhrohhmpegsrhhonhhgsehfrghsthhmrg hilhhtvggrmhdrtghomh
X-ME-Proxy: <xmx:LeiIYeeRI-NztNRZtjY5k300-8P5j0R969g2FWO97qzxDZfHWUhBdA> <xmx:LeiIYYIVEsMTos7a8ucWnG3gLP6186TddkbsD7PufdQ0V9DFWI1irQ> <xmx:LeiIYbK4IRqgsljYo_kY_-507GyuwyUWz1jqyyCD-_f-OEZDKGdUgQ> <xmx:LeiIYQWCo92DAOgt6Evn-_OUEzqyrs62SWSoKHz3gG7DkiIa-qU8dw>
Received: by mailuser.nyi.internal (Postfix, from userid 501) id 2F067AC0DD1; Mon, 8 Nov 2021 04:04:45 -0500 (EST)
X-Mailer: MessagingEngine.com Webmail Interface
User-Agent: Cyrus-JMAP/3.5.0-alpha0-1420-gdf09e8761c-fm-20211101.001-gdf09e876
Mime-Version: 1.0
Message-Id: <67cbf820-a116-4c6b-aa2d-539174668021@dogfood.fastmail.com>
In-Reply-To: <CACy7CfgD+P9GZHy2HG=dSYubJyutX_7YnnW-gj=4FXbV1n4Anw@mail.gmail.com>
References: <dd7c1028-09bc-4839-b6d4-68e14e99b349@dogfood.fastmail.com> <c0dbaa85-5e5e-409d-a613-9302e9103283@dogfood.fastmail.com> <088a5135-1a39-4135-b8d7-e61113e3c143@beta.fastmail.com> <8964ee5c-463e-44cd-a2b4-e1e1a419337b@dogfood.fastmail.com> <CACy7CfgD+P9GZHy2HG=dSYubJyutX_7YnnW-gj=4FXbV1n4Anw@mail.gmail.com>
Date: Mon, 08 Nov 2021 20:04:25 +1100
From: Bron Gondwana <brong@fastmailteam.com>
To: sedate@ietf.org
Content-Type: multipart/alternative; boundary="c2f0af167f66488c905264ef41424ea6"
Archived-At: <https://mailarchive.ietf.org/arch/msg/sedate/uT0WOxYT7bFEzajAIAK77OiSajE>
Subject: Re: [Sedate] A syntax proposal: floating and future times
X-BeenThere: sedate@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Serialising Extended Data About Times and Events <sedate.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/sedate>, <mailto:sedate-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/sedate/>
List-Post: <mailto:sedate@ietf.org>
List-Help: <mailto:sedate-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/sedate>, <mailto:sedate-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 08 Nov 2021 09:04:58 -0000

On Mon, Nov 8, 2021, at 18:40, Justin Grant wrote:
>> *Changes to zone offsets*
> 
> My understanding is that there's three use cases:
> 1. The sender wants to keep the instant fixed, even if the offset of the time zone has changed (this may result in a different local time than what was originally captured)
> 2. The sender wants to keep the local time fixed, even if the offset of the time zone has changed (this may result in a different instant than what was originally captured)
> 3. The sender has no opinion. It will send both the offset and the time zone to the receiver, and it wants the receiver to decide what to do if the offset of the time zone has changed.
> 
> Here's how Temporal is currently (modulo whatever we decide here in SEDATE!) planning to handle these three cases:
> 1. Keep instant fixed by specifying a Z offset with a time zone annotation, e.g. 2022-11-26T09:00:00Z[Australia/Melbourne]

I hate it - it's very human-unfriendly.  Either the Z means something different here (ick) or you just specified a time 11 hours after the time I specified in my example.

> 2. Keep local time fixed by omitting the offset from the string, e.g. 2022-11-26T20:00:00[Australia/Melbourne]

Oh - you specified all of them 11 hours later.  My examples were all 9am in my time, but you've gone for 8pm in my time.

This looks great except for one knotty problem - it's not an RFC3339 production.  Which is why my proposal, which keeps the RFC3339, and it very clear.

> 3. Send both local time and offset, and leave it up to the receiver to decide what to do, e.g. 2022-11-26T20:00:00+11:00[Australia/Melbourne]

This is the one that I specified as "offset wins".  There was a fair bit of interest, in the working group, in having the behaviour always well specified and not having "implementation defined" be a choice.

> What do folks think about those three syntaxes?
> 
> For case (2), I'm not sure why we'd need a separate [tz=] syntax for this case, but maybe I'm missing something?

Not if you're allowed to trim the offset away from an RFC3339 date, no.  The 'tz' was there as a signifier of "the creator wants you to recalculate the offset before use.

>> 2022-11-26T09:00:00Z[tz=floating]
> 
> I admit I don't fully understand the use case for this syntax. If you know the instant but not the time zone, then why isn't  2022-11-26T09:00:00Z sufficient? If you know the local time but not the instant, then why isn't 2022-11-26T09:00:00 sufficient? If the only point of [tz=floating] is to notify the receiver that you don't know the time zone, then why not just omit the time zone annotation completely?

There are two reasons to use this over `2022-11-26T09:00:00`

1) so we keep the RFC3339 part intact.  I'm harping on about this because it's the entire point of my proposal.  Without that, the tz stuff is overkill.
2) it allows hinting of zone.  Hinting is optional of course, you could always use Z plus floating.  I don't know if explaining it out loud will help here.  I'll do up some nice slides anyway to see if I can make it clear.

(speaking of which - during the session I'll need to take my chair hat off to do this, so I'm glad I have Mark there to help)

>> It strikes me then that the fundamental problem here is that the goal is really to create a standardised serialisation of some date formats **that are not datestamps**, that are commonly used across applications on the web. It should use the same elements of syntax as RFC3339 but it's not exactly an "extension". All the problems seem to stem from trying to enforce that they can also be treated as single points in time.
> 
> Yep, I'm inclined to agree with Neil here. When sending a partial zoned timestamp (e.g. I don't know the offset, or I know the timezone), I think the most obvious way to express "I don't know X" is to omit "X" from the string. I'm not sure it's a good idea to create a new syntax that pretends that it's an RFC3339-compliant timestamp when it's really not.
> 
>> when this was proposed at the last IETF, there was fairly strong pushback to the idea of the first part not being exactly an RFC3339 production - so I'm proposing a format which always contains an RFC3339 component and yet is reliably convertable.
> 
> Do we know why there was such strong pushback?  What were the underlying concerns?
> 
> I don't know the people involved so can't be sure, but I'd guess that adhering to RFC3339 syntax but not actually providing a meaningful timestamp would generate *more* pushback. But that's just a guess. 

I guess we'll see :)  I'm not really attached to my idea or anything, but it's the proposal that was bouncing around in my head to satisfy the requirement for an RFC3339 basis.

Cheers,

Bron.
--
  Bron Gondwana, CEO, Fastmail Pty Ltd
  brong@fastmailteam.com