Re: [calsify] WGLC JSCalendar

Michael Douglass <mikeadouglass@gmail.com> Mon, 28 October 2019 03:19 UTC

Return-Path: <mikeadouglass@gmail.com>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 597B4120169 for <calsify@ietfa.amsl.com>; Sun, 27 Oct 2019 20:19:25 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.998
X-Spam-Level:
X-Spam-Status: No, score=-1.998 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
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 J5yJCRTJjcV2 for <calsify@ietfa.amsl.com>; Sun, 27 Oct 2019 20:19:23 -0700 (PDT)
Received: from mail-qk1-x743.google.com (mail-qk1-x743.google.com [IPv6:2607:f8b0:4864:20::743]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id EAD3C1200E7 for <calsify@ietf.org>; Sun, 27 Oct 2019 20:19:22 -0700 (PDT)
Received: by mail-qk1-x743.google.com with SMTP id p4so7226721qkf.5 for <calsify@ietf.org>; Sun, 27 Oct 2019 20:19:22 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=subject:to:references:from:message-id:date:user-agent:mime-version :in-reply-to:content-language; bh=2sBpRChsCsl/2ZOwuZsgWCgaomH7knXZcxRIYfyR3sI=; b=PjGruCoK575po/y8A/SLfpLsaWTxHpC1Ps9R1qNGe3ffk81EAxezuu8mYbc+2kuXiK 8wDanRheEhkkKAs8QRG1lCm4hYMglFY9S9LYwRWWCJJlSkwUw1NRg/TWp4gPA1qZuWib gZ7XBvZcihl+9+UTmP8EAkEoufTqTHbRqbtFxLcpeTuE1sRKN20d6A7WjVr8n25b1SG2 RwXfcbgNEOURz7rNnl71tADoRNYlB4lFnAc0Crer0Lyv+g568lKsGXHiBexL8jxf7mqM R2EcgbYQBWoAqTqNGgGyI8z3WaJJO86AQmbwn0lPYIwjFa0mID0iPpmxmAVKK7D3Arw7 5hFg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:subject:to:references:from:message-id:date :user-agent:mime-version:in-reply-to:content-language; bh=2sBpRChsCsl/2ZOwuZsgWCgaomH7knXZcxRIYfyR3sI=; b=pemtwabTSykr2gVHx52UX8ybJBKCs7NDCEp4YZXcSEVWkKWuoAifkGBsCcpYlnlj0e QP0IM/VBY6X5moCs8r0AqZpmKKAFh5OKmDckFoVLOkRT9G4GOvuJzGQEL0L9yfHgfhqM BHsBnajKtrHL9tLCJMQKLbO8NLUNG6wvmIBAWFJ1F9LoKdaPYWwmkhJGjMYbJ9X7ql9F ac8tiUZwrZ4H7PJPouFsCjV4JMiEOD5yxtC3ffwQKxVm6iJZ3y/CYzUhGz36KgmkBf6j Z8xdyq89S0N4HQ6w8ze6NhzWgcd0/+ok1KKUyU7Y7ZhH6Lc3rDjFdobZsP5TDjuL9Vgp syJg==
X-Gm-Message-State: APjAAAXzX82E1HBgoeMVE/DxMEVVDY9vm77SL2Qumh2HnFvbjRzV5d7k nefGI1jbAiJilP8FgsOBpbGJpvwE
X-Google-Smtp-Source: APXvYqyarOkCjs81VgxXgK5O9P9ZwVDH+SNny3VMyqwbiWLCr3obzsHGtPudZAwBtDucgyunCFyT/A==
X-Received: by 2002:a37:5842:: with SMTP id m63mr14024937qkb.59.1572232761724; Sun, 27 Oct 2019 20:19:21 -0700 (PDT)
Received: from Michaels-MacBook-Pro.local (cpe-74-70-80-66.nycap.res.rr.com. [74.70.80.66]) by smtp.googlemail.com with ESMTPSA id k29sm7176394qtu.70.2019.10.27.20.19.20 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Oct 2019 20:19:21 -0700 (PDT)
To: Neil Jenkins <neilj@fastmailteam.com>, Daniel Migault <daniel.migault=40ericsson.com@dmarc.ietf.org>, "calsify@ietf.org" <calsify@ietf.org>
References: <DM6PR15MB3531E3B26D3C5294B1D40564E3930@DM6PR15MB3531.namprd15.prod.outlook.com> <6d0fa1f3-5dbe-d4df-821f-a0bddb61546b@gmail.com> <3d216646-0235-0af4-b9ad-1401eea482c4@gmail.com> <c89952c7-90b9-ef17-0c7c-aceacde771e2@gmail.com> <7f83a966-d1e9-464e-acd2-45bb7fd05107@beta.fastmail.com> <98a0f7ca-213d-4be0-9b0c-310dad70c0ab@gmail.com> <595e1efa-97a0-4373-8d5f-d4e5e05a1838@dogfood.fastmail.com> <601a4ef3-d922-71e0-ab4b-8e539ed3f7ae@gmail.com> <669b29a4-1734-4ea1-9ac9-33e590d91762@dogfood.fastmail.com>
From: Michael Douglass <mikeadouglass@gmail.com>
Message-ID: <79252ea8-d949-8e0a-c2c5-a7a9f4dc5eba@gmail.com>
Date: Sun, 27 Oct 2019 23:19:19 -0400
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.14; rv:60.0) Gecko/20100101 Thunderbird/60.9.0
MIME-Version: 1.0
In-Reply-To: <669b29a4-1734-4ea1-9ac9-33e590d91762@dogfood.fastmail.com>
Content-Type: multipart/alternative; boundary="------------E72E41AC7D9FB7911E30C49C"
Content-Language: en-US
Archived-At: <https://mailarchive.ietf.org/arch/msg/calsify/whEEKh3ZCHgluG4a9KzCKG-GLrg>
Subject: Re: [calsify] WGLC JSCalendar
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: <calsify.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/calsify>, <mailto:calsify-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/calsify/>
List-Post: <mailto:calsify@ietf.org>
List-Help: <mailto:calsify-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/calsify>, <mailto:calsify-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 28 Oct 2019 03:19:32 -0000

Thanks for the changes below - I'll adjust my code and may be back with 
more on them.

I do have another concern:

5545 decided to deprecate multiple recurrence rules on the grounds 
clients (by which is meant UIs) don't support it.

This spec doesn't even make provision for it.

I've long felt that standards and data models shouldn't be driven solely 
by the needs or preferences of UI designers.

However, I also believe that multiple recurrence rules provide either a 
simpler way or the only way to express some of the situations i come 
across i public events. For example, I found a user had created 7 
identical recurring events to cover tours of a campus which occur at 
different times and with different patterns through the week. It's 
relatively easy to figure out how to accommodate that in the UI (a 
button to add another recurrence section).

It was however a lot of work to update all those events and keep them 
the same.

I've been considering supporting multiple rules to support this use case 
as I suspect it's not that uncommon.

Even when it's possible to create some complex rule it might well be 
easier to create a number of simple rules.

There's also the possibility of using standard calendar data to control 
processes.

I suspect current libraries already support multiple rules and I'd like 
to see that enabled in this spec.

I understand that if they turn up in a client they may not be able to 
render them but we're already in that position with a sufficiently 
complex single rule (often not all that complex)


On 10/27/19 20:28, Neil Jenkins wrote:
> On Sat, 26 Oct 2019, at 03:01, Michael Douglass wrote:
>> What I meant was that the objects in the list should have a type:
>>       "localizations": {
>>         "de": {
>>           "@type": "PatchObject"                    <------------------- this
>>           "title": "Live von der Music Bowl: The Band!",
>>           "description": "Schau dir das groesste Musikereignis an!",
>>           "virtualLocations/6f3696c6-1e07-47d0-9ce1-f50014b0041a/name":
>>                                   "Gratis Live-Stream aus der Music Bowl"
>>         }
>>       }
>>
>> I think patch objects are the only objects that don't have a type. I 
>> think for simplicity and ease of validation all objects should be 
>> required to have @type
>>
>
> No. The |@type| property is for objects with a named set of attributes 
> (essentially a class). The PatchObject is a primitive datatype, more 
> like Integer etc. There are no predefined keys; each key is a patch to 
> apply. So if you add |@type| there, that's actually a path to 
> overwrite the |@type| property on the object you apply it to!
>
> On Sat, 26 Oct 2019, at 03:17, Michael Douglass wrote:
>> So the status in 5.1.3 and 5.2.6 is essentially the status in rfc 5545
>>
>> Then we have participationStatus in 4.4.5 which comes from 5545 
>> partstat with
>>
>>        *  "needs-action": No status yet set by the participant.
>>        *  "accepted": The invited participant will participate.
>>        *  "declined": The invited participant will not participate.
>>        *  "tentative": The invited participant may participate.
>>
>> But we also have in 5.2.5 participantProgress with a status property:
>>
>>        *  "completed": The participant completed this task.
>>        *  "in-process": The participant has started this task.
>>        *  "failed": The participant failed to complete this task.
>>
>> Those values are essentially the partstat values from 5545 - so now 
>> we could have a participationStatus of declined and a 
>> participantProgress/status of completed which doesn't make any sense.
>>
>> I like the idea of the participantProgress object but maybe it should 
>> be common to all and the participantStatus should be moved there. The 
>> task specific part should define the allowable set of values as 5545 
>> does.
>>
>
> I agree this is confusing. Looking at it, I think the best thing is to 
> rename the "status" property on the JSTask to "progress", and use the 
> same property on a Participant (no need for a whole complex object 
> like we currently have). This makes it consistent again: the same 
> property name means the same semantics, different property name means 
> different allowed values and semantics. If that description is a bit 
> hard to follow, see the diff here 
> <https://github.com/CalConnect/PUBLIC_DRAFTS/commit/3546a6a8d9ded46185b1bb96a5a693353d16d360>, 
> or look at the diff in the new revision.
>
> On Sun, 27 Oct 2019, at 07:51, Michael Douglass wrote:
>> >> Table in section 8.2.6 appears to be missing an entry for links
>> > and locale
>> and frequency
>
> Thanks, fixed. I've also added "uri" from VirtualLocations and all of 
> the other RecurrenceRule props. I think I've checked them all now!
>
> Since there have been quite a few fixes, I've published a new draft 
> <https://tools.ietf.org/html/draft-ietf-calext-jscalendar-21> with all 
> the changes. Thanks for all the great feedback Mike!
>
> Neil.