Subject: Lets deprecate EXRULE, Re: [Ietf-calsify] summary of jabber sessions and confirmation of issues

From: cyrus at daboo.name (Cyrus Daboo)
Date: Wed Oct 11 08:59:41 2006

Hi Reinhold,

--On October 11, 2006 5:16:28 PM +0200 Reinhold Kainhofer 
<[email-masked]> wrote:

>> Issue 25: The proposal now is to deprecate EXRULE.  Cyrus to kick off
>> discussion.  OPEN
>
> If we remove that confusing sentence from issue 14 and properly re-word
> the  issue in 13, it's clear that the DTSTART is not automatically
> generated by  the EXRULE, thus the DTSTART is not always excluded and the
> issue is solved.
>
> I'm fine with deprecating exrule (although I worked hard to implement
> multiple  exrules support it in libkcal...).

We can't do that because issue 13 cannot be resolved in the way you propose 
as per my pervious email.

The problem we have is this:

1) If we take the 2445 statement that DTSTART is always the first instance 
in a rule set, and say that applies to EXRULE, then the presence of ANY 
EXRULE will always exclude the DTSTART - so there is no way to define an 
EXRULE that does not exclude the DTSTART. This would force clients to use a 
'fake' DTSTART value that they know would be excluded, so that the actual 
first instance occurs when it should. Ugly!

2) If we say that DTSTART is not the first instance for the EXRULE set, 
then we have an inconsistency in the way COUNT & INTERVAL work in RRULE and 
EXRULE.

Because of this, and the fact that EXRULE is rarely used, I think we should 
deprecate its use in 2445bis. That means implementations MUST NOT generate 
EXRULE, but may choose to continue accepting EXRULE in whatever fashion 
they currently do.

-- 
Cyrus Daboo

---

From: andrew_dowden at softdesign.net.nz (Andrew N Dowden)
Date: Wed Oct 11 20:12:31 2006

Cyrus Daboo wrote:
> We can't do that because issue 13 cannot be resolved in the way you
> propose as per my pervious email.
>
> 1) If we take the 2445 statement that DTSTART is always the first
> instance in a rule set, and say that applies to EXRULE, then the
> presence of ANY EXRULE will always exclude the DTSTART - so there is
> no way to define an EXRULE that does not exclude the DTSTART. This
> would force clients to use a 'fake' DTSTART value that they know would
> be excluded, so that the actual first instance occurs when it should.
> Ugly!
>
> 2) If we say that DTSTART is not the first instance for the EXRULE
> set, then we have an inconsistency in the way COUNT & INTERVAL work in
> RRULE and EXRULE.
>
> Because of this, and the fact that EXRULE is rarely used, I think we
> should deprecate its use in 2445bis. That means implementations MUST
> NOT generate EXRULE, but may choose to continue accepting EXRULE in
> whatever fashion they currently do.
>
I have previously argued that DTSTART needs to be better defined, and
that this would then solve the problems identified with RRULE, EXRULE,
and COUNT or BYSETPOS

    previous post, to Bugzilla (as regards rfc2445, recurrence and DTSTART)
    https://bugzilla.mozilla.org/show_bug.cgi?id=266298#c10

In summary: (yet to be worded in rfc-speak)

(a.) The recurrence set is generated from DTSTART property, along with
RRULE, RDATE, EXDATE and EXRULE properties.
     [RESULT: as set of date/times]

(b.) DTSTART property defines first instance in the recurrence set.
    [RESULT: excludes from recurrence set (if any) all date/times prior
to DTSTART]

(c.) DTSTART property, if specified, counts as the first occurrence.
    [EXCEPTION: each time/date instance within recurrence set is
counted; if DTSTART is NOT within recurrence set, it is NOT counted.]

If this needs to be restated, reposted, or clarified (in context of more
recent discussions) then please advise.

PS. Sorry I forgot to post this discussion into  calsify  (where it
belongs).

-- 
_______________________________________________

  SoftDesign Group
  Dowden Software Associates
  P O Box 31 132, Lower Hutt 5040, NEW ZEALAND