Re: [calsify] SKIP was Re: AD review of draft-ietf-calext-rscale-03

Ken Murchison <murch@andrew.cmu.edu> Tue, 03 February 2015 20:24 UTC

Return-Path: <murch@andrew.cmu.edu>
X-Original-To: calsify@ietfa.amsl.com
Delivered-To: calsify@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9DF981A8965 for <calsify@ietfa.amsl.com>; Tue, 3 Feb 2015 12:24:13 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -3.009
X-Spam-Level:
X-Spam-Status: No, score=-3.009 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, J_CHICKENPOX_44=0.6, J_CHICKENPOX_75=0.6, RCVD_IN_DNSWL_MED=-2.3, T_RP_MATCHES_RCVD=-0.01] autolearn=ham
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 BBZM5_VFaUwT for <calsify@ietfa.amsl.com>; Tue, 3 Feb 2015 12:24:11 -0800 (PST)
Received: from smtp.andrew.cmu.edu (SMTP.ANDREW.CMU.EDU [128.2.105.203]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 242211A897A for <calsify@ietf.org>; Tue, 3 Feb 2015 12:23:20 -0800 (PST)
Received: from localhost.localdomain (cpe-76-180-151-43.buffalo.res.rr.com [76.180.151.43]) (user=murch mech=PLAIN (0 bits)) by smtp.andrew.cmu.edu (8.14.8/8.14.8) with ESMTP id t13KNDB7008327 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NOT); Tue, 3 Feb 2015 15:23:13 -0500
Message-ID: <54D12E31.4020506@andrew.cmu.edu>
Date: Tue, 03 Feb 2015 15:23:13 -0500
From: Ken Murchison <murch@andrew.cmu.edu>
Organization: Carnegie Mellon University
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0
MIME-Version: 1.0
To: Marten Gajda <marten@dmfs.org>, calsify@ietf.org
References: <68FCD7D11F934509267D5915@cyrus.local> <CALaySJKQP9WjRQV2qrgfLiGwj-SQAUCF6RVcQuRrUYNpfqp17A@mail.gmail.com> <7FF77F2FE3390FFD1149E953@cyrus.local> <CALaySJK3RiXXHTq9MC4nwA4c_gZzEVDoWa96MDc7Ue4yDRgbWA@mail.gmail.com> <C80A141CD062EFF630B6D2BB@caldav.corp.apple.com> <54D0E2E9.2030505@andrew.cmu.edu> <99B9DDB4AEFC12755724C5DD@caldav.corp.apple.com> <54D107AC.3050706@andrew.cmu.edu> <2D953326EFEE238B1CCF867E@caldav.corp.apple.com> <54D10C50.20909@andrew.cmu.edu> <54D10FDB.6070001@andrew.cmu.edu> <54D12AAC.7000202@dmfs.org>
In-Reply-To: <54D12AAC.7000202@dmfs.org>
Content-Type: multipart/alternative; boundary="------------020000070805070907090209"
X-PMX-Version: 6.0.3.2322014, Antispam-Engine: 2.7.2.2107409, Antispam-Data: 2015.2.3.201820
X-SMTP-Spam-Clean: 28% ( SXL_IP_DYNAMIC 3, HTML_NO_HTTP 0.1, BODYTEXTH_SIZE_10000_LESS 0, DATE_TZ_NA 0, FROM_EDU_TLD 0, RDNS_GENERIC_POOLED 0, RDNS_POOLED 0, RDNS_RESIDENTIAL 0, RDNS_SUSP 0, RDNS_SUSP_GENERIC 0, RDNS_SUSP_SPECIFIC 0, REFERENCES 0, __ANY_URI 0, __BAT_BOUNDARY 0, __BOUNCE_CHALLENGE_SUBJ 0, __BOUNCE_NDR_SUBJ_EXEMPT 0, __CT 0, __CTYPE_HAS_BOUNDARY 0, __CTYPE_MULTIPART 0, __CTYPE_MULTIPART_ALT 0, __FORWARDED_MSG 0, __HAS_FROM 0, __HAS_HTML 0, __HAS_MSGID 0, __IN_REP_TO 0, __MIME_HTML 0, __MIME_VERSION 0, __MOZILLA_MSGID 0, __MOZILLA_USER_AGENT 0, __RDNS_POOLED_1 0, __REFERENCES 0, __SANE_MSGID 0, __SUBJ_ALPHA_NEGATE 0, __TAG_EXISTS_HTML 0, __TO_MALFORMED_2 0, __URI_NO_PATH 0, __URI_NO_WWW 0, __URI_NS , __USER_AGENT 0)
X-SMTP-Spam-Score: 28%
X-Scanned-By: MIMEDefang 2.74 on 128.2.105.203
Archived-At: <http://mailarchive.ietf.org/arch/msg/calsify/Je30zFGKyXh1D5hQXw2mcNs23Ek>
Subject: Re: [calsify] SKIP was Re: AD review of draft-ietf-calext-rscale-03
X-BeenThere: calsify@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Tue, 03 Feb 2015 20:24:13 -0000

On 02/03/2015 03:08 PM, Marten Gajda wrote:
> @Ken: Sorry for the double post, I hit the wrong reply button
>
> Am 03.02.2015 um 19:13 schrieb Ken Murchison:
>> On 02/03/2015 12:58 PM, Ken Murchison wrote:
>>> On 02/03/2015 12:51 PM, Cyrus Daboo wrote:
>>>> Hi Ken,
>>>>
>>>> --On February 3, 2015 at 12:38:52 PM -0500 Ken Murchison 
>>>> <murch@andrew.cmu.edu> wrote:
>>>>
>>>>> I believe we can get by with just a single SKIP and your previous 
>>>>> rules
>>>>> to handle both cases above (using Hebrew leap month):
>>>>>
>>>>> RRULE:FREQ=YEARLY;RSCALE=HEBREW;SKIP=FORWARD;BYMONTH=5L;BYMONTHDAY=30
>>>>>
>>>>> Would yield 1 Nisan (skipping forward both a month and day)
>>>>>
>>>>>
>>>>> RRULE:FREQ=YEARLY;RSCALE=HEBREW;SKIP=FORWARD;BYMONTH=5L;BYMONTHDAY=-1
>>>>>
>>>>> Would yield 29 Adar (skipping forward just a month)
>>>>>
>>>>
>>>> Actually I am not convinced about that since the spec says that 
>>>> SKIP is applied AFTER all other rule parts are processed (except 
>>>> for BYSETPOS, COUNT and UNTIL). So the BYMONTHDAY=-1 refers to the 
>>>> last day of the invalid month, 30 Adar I, which then becomes the 
>>>> invalid date 30 Adar after the month skip and then 1 Nisan after 
>>>> the day skip.
>>>
>>> Hmm, I think you're right based on the current wording.  I don't 
>>> recall exactly how we decided on that wording, but perhaps it might 
>>> needs to be adjusted.
>>
>> Looking at RFC 5545:
>>
>>       If multiple BYxxx rule parts are specified, then after evaluating
>>       the specified FREQ and INTERVAL rule parts, the BYxxx rule parts
>>       are applied to the current set of evaluated occurrences in the
>>       following order: BYMONTH, BYWEEKNO, BYYEARDAY, BYMONTHDAY, BYDAY,
>>       BYHOUR, BYMINUTE, BYSECOND and BYSETPOS; then COUNT and UNTIL are
>>       evaluated.
>>
>>
>> I'm wondering if we shouldn't have SKIP applied both immediately 
>> following BYMONTH and BYMONTHDAY evaluation.  I don't think we want 
>> the other BYxxx rule parts to be operating on invalid dates at any 
>> point.  Thoughts?
>>
> The only reason I can come up with right now, is that a rule with 
> RSCALE & SKIP=OMIT could have different results than the same rule 
> without RSCALE and SKIP.
>
> example:
>
> DTSTART;VALUE=DATE:20120229
> RRULE:FREQ=YEARLY;BYMONTH=2;BYDAY=SU
>
> -> all Sundays in February, every year
>
> DTSTART;VALUE=DATE:20120229
> RRULE:FREQ=YEARLY;RSCALE=GREGORIAN;BYMONTH=2;BYDAY=SU;SKIP=OMIT
>
> -> all Sundays in February, but only in leap years, since SKIP would 
> filter Feb. 29th in non-leap years before BYDAY is evaluated

I think both of these come out the same (and my libical computes the 
same) as there is no BYMONTHDAY or anything else forcing the expansion 
onto Feb 29 in a non-leap year.  In this case the DTSTART just gives us 
the first instance (which in this case doesn't fall on a Sunday so isn't 
included).  After that, the BYMONTH+BYDAY is what really drives the 
expansion.

-- 
Kenneth Murchison
Principal Systems Software Engineer
Carnegie Mellon University