From 4a77e41940746b0f223721eac258db37cec73f43 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Sat, 15 Dec 2018 02:19:27 +0000 Subject: [PATCH 01/12] docs/design/recurrence.html: rm implemented suggestion The ability for the user to define which day of the week should be considered the start of the week, was added in [4ab665b8764b3fe67b2bd63acf7d68f2eb97b911](https://github.com/GothenburgBitFactory/taskwarrior/commit/4ab665b8764b3fe67b2bd63acf7d68f2eb97b911) and [fd823871f0ee840288d3b4fdd095cc2970f8adad](https://github.com/GothenburgBitFactory/taskwarrior/commit/fd823871f0ee840288d3b4fdd095cc2970f8adad). --- html/docs/design/recurrence.html | 5 ----- 1 file changed, 5 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 031c9bc7..6dd87b55 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -231,11 +231,6 @@

Proposal: Exotic Dates

Got suggestions?

-

Proposal: User-Defined Week Start

-

- TBD -

-

Implementation: Adding a new periodic template

From e48cf9bbdcd15d9cead8c4f5f8250caa08cfc557 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Sat, 15 Dec 2018 19:47:31 +0000 Subject: [PATCH 02/12] Completing chained instance should synthesize next one --- html/docs/design/recurrence.html | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 031c9bc7..9445d8c7 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -196,10 +196,10 @@

Proposal: On load, auto-upgrade legacy tasks

-

Proposal: Deleting a chained instance

+

Proposal: Deleting/completing a chained instance

- Deleting a rtype:chained instance causes the next - chained instance to be synthesized. + Deleting or completing a rtype:chained instance + causes the next chained instance to be synthesized. This gives the illusion that the due date is simply pushed out to (now + template.recur). From bd5b3b3dfae00dfd54475578df4185132b1837c8 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Sun, 16 Dec 2018 18:22:42 +0000 Subject: [PATCH 03/12] Fix proposal header level/indentation. Update nav. --- html/docs/design/recurrence.html | 222 +++++++++++++++++-------------- 1 file changed, 121 insertions(+), 101 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 031c9bc7..ae8dc5db 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -122,119 +122,129 @@

Criticism of Current Implementation

- -

Proposal: Eliminate mask, imaѕk Attributes

-

- The mask attribute in the template is replaced by - last, which indicates the most recent instance index - synthesized. - - Because instances are never synthesized out of order, we only - need to store the most recent index. + +

Proposals

- The imask attribute in the instance is no longer - needed. -

+ +
Proposal: Eliminate mask, imaѕk Attributes
+

+ The mask attribute in the template is replaced by + last, which indicates the most recent instance index + synthesized. -

Proposal: Rename parent to template

-

- The name parent implies subtasks, and confuses those - who inspect the internals. The value remains the UUID of the - template. This frees up the namespace for future use with subtasks. -

+ Because instances are never synthesized out of order, we only + need to store the most recent index. -

Proposal: New 'rtype' attribute

-

- To indicate the flavor of recurrence, support the following values: - - - - - - - - - - -
periodic - Instances are created on a regular schedule. - Example: send birthday flowers. It must occur on a regular - schedule, and doesn't matter if you were late last year. - This is the default value. -
chained - Instances are created back to back, so when one instance ends, - the next begins, with the same recurrence. - Example: mow the lawn. If you mow two days late, the next - instance is not two days early to compensate. -
-

+ The imask attribute in the instance is no longer + needed. +

-

Proposal: Use relative offsets

-

- The delta between wait and due date in - the template should be reflected in the delta between - wait and due date in the instance. + +

Proposal: Rename parent to template
+

+ The name parent implies subtasks, and confuses those + who inspect the internals. The value remains the UUID of the + template. This frees up the namespace for future use with subtasks. +

- Similarly, 'scheduled' must be handled the same way. -

+ +
Proposal: New 'rtype' attribute
+

+ To indicate the flavor of recurrence, support the following values: + + + + + + + + + + +
periodic + Instances are created on a regular schedule. + Example: send birthday flowers. It must occur on a regular + schedule, and doesn't matter if you were late last year. + This is the default value. +
chained + Instances are created back to back, so when one instance ends, + the next begins, with the same recurrence. + Example: mow the lawn. If you mow two days late, the next + instance is not two days early to compensate. +
+

-

Proposal: On load, auto-upgrade legacy tasks

-

- Upgrade template: -

+ +
Proposal: Use relative offsets
+

+ The delta between wait and due date in + the template should be reflected in the delta between + wait and due date in the instance. - Upgrade instance: -

-

+ Similarly, 'scheduled' must be handled the same way. +

-

Proposal: Deleting a chained instance

-

- Deleting a rtype:chained instance causes the next - chained instance to be synthesized. + +

Proposal: On load, auto-upgrade legacy tasks
+

+ Upgrade template: +

+ + Upgrade instance: + +

- This gives the illusion that the due date is simply pushed out to - (now + template.recur). -

+ +
Proposal: Deleting a chained instance
+

+ Deleting a rtype:chained instance causes the next + chained instance to be synthesized. -

Proposal: Modification Propagation

-

- TBD -

+ This gives the illusion that the due date is simply pushed out to + (now + template.recur). +

-

Proposal: Exotic Dates

-

- Expand date specifications to use pattern phrases: -

+ +
Proposal: Modification Propagation
+

+ TBD +

- Got suggestions? -

+ +
Proposal: Exotic Dates
+

+ Expand date specifications to use pattern phrases: +

+ + Got suggestions? +

-

Proposal: User-Defined Week Start

-

- TBD -

+
Proposal: User-Defined Week Start
+

+ TBD +

Implementation: Adding a new periodic template

@@ -343,7 +353,17 @@

Implementation: Special handling for months

  • Recurrence
  • Terminology
  • Critique
  • -
  • Proposal
  • +
  • Proposals +
  • Implementation
  • From c5a938cb8707ad1cfe2af06e08fa6f3914f1aa34 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Mon, 17 Dec 2018 19:20:04 +0000 Subject: [PATCH 04/12] Promote all headings up one level Otherwise, due to bootstrap.css, the "h5" headings end up with the same size, weight, and decoration as the "p" element text and are not visually obvious as headings. --- html/docs/design/recurrence.html | 34 ++++++++++++++++---------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index ae8dc5db..8113b62f 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -54,7 +54,7 @@
    -

    Draft

    +

    Draft

    This is a draft design document. Your feedback @@ -63,14 +63,14 @@

    Draft

    -

    Recurrence

    +

    Recurrence

    Recurrence needs an overhaul to improve weaknesses and add new features.

    -

    Terminology

    +

    Terminology

    • @@ -95,7 +95,7 @@

      Terminology

      -

      Criticism of Current Implementation

      +

      Criticism of Current Implementation

      • @@ -123,10 +123,10 @@

        Criticism of Current Implementation

        -

        Proposals

        +

        Proposals

        -
        Proposal: Eliminate mask, imaѕk Attributes
        +

        Proposal: Eliminate mask, imaѕk Attributes

        The mask attribute in the template is replaced by last, which indicates the most recent instance index @@ -140,7 +140,7 @@

        Proposal: Eliminate mask, imaѕk Attributes

        -
        Proposal: Rename parent to template
        +

        Proposal: Rename parent to template

        The name parent implies subtasks, and confuses those who inspect the internals. The value remains the UUID of the @@ -148,7 +148,7 @@

        Proposal: Rename parent to template

        -
        Proposal: New 'rtype' attribute
        +

        Proposal: New 'rtype' attribute

        To indicate the flavor of recurrence, support the following values: @@ -175,7 +175,7 @@

        Proposal: New 'rtype' attribute

        -
        Proposal: Use relative offsets
        +

        Proposal: Use relative offsets

        The delta between wait and due date in the template should be reflected in the delta between @@ -185,7 +185,7 @@

        Proposal: Use relative offsets

        -
        Proposal: On load, auto-upgrade legacy tasks
        +

        Proposal: On load, auto-upgrade legacy tasks

        Upgrade template:

          @@ -204,7 +204,7 @@
          Proposal: On load, auto-upgrade legacy tasks

          -
          Proposal: Deleting a chained instance
          +

          Proposal: Deleting a chained instance

          Deleting a rtype:chained instance causes the next chained instance to be synthesized. @@ -214,13 +214,13 @@

          Proposal: Deleting a chained instance

          -
          Proposal: Modification Propagation
          +

          Proposal: Modification Propagation

          TBD

          -
          Proposal: Exotic Dates
          +

          Proposal: Exotic Dates

          Expand date specifications to use pattern phrases:

            @@ -241,13 +241,13 @@
            Proposal: Exotic Dates
            Got suggestions?

            -
            Proposal: User-Defined Week Start
            +

            Proposal: User-Defined Week Start

            TBD

            -

            Implementation: Adding a new periodic template

            +

            Implementation: Adding a new periodic template

            When adding a new periodic template: @@ -280,7 +280,7 @@

            Implementation: Adding a new periodic template

            template.last: N

            -

            Implementation: Adding a new chained template

            +

            Implementation: Adding a new chained template

            When adding a new chained template: @@ -312,7 +312,7 @@

            Implementation: Adding a new chained template

            show only one pending task at a time.

            -

            Implementation: Special handling for months

            +

            Implementation: Special handling for months

            Certain recurrence periods are inexact:

              From bb692e29f283dbb65f5d3460af0309b3e833bfd9 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Mon, 17 Dec 2018 20:41:59 +0000 Subject: [PATCH 05/12] Fix implementation header level/indentation. Update nav. --- html/docs/design/recurrence.html | 110 +++++++++++++++++-------------- 1 file changed, 60 insertions(+), 50 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 8113b62f..430e81fa 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -247,14 +247,17 @@

              Proposal: User-Defined Week Start

              -

              Implementation: Adding a new periodic template

              -

              - When adding a new periodic template: +

              Implementation

              + + +

              Implementation: Adding a new periodic template

              +

              + When adding a new periodic template: -

              task add ... due:D recur:R wait:D-1wk scheduled:D-1wk until:U
              +
              task add ... due:D recur:R wait:D-1wk scheduled:D-1wk until:U
              - Creates: -
              template.uuid:        NEW_UUID
              +                Creates:
              +                
              template.uuid:        NEW_UUID
               template.description: ...
               template.entry:       now
               template.modified:    now
              @@ -266,9 +269,9 @@ 

              Implementation: Adding a new periodic template

              template.rtype: periodic template.last:
              - Creating the Nth instance (index N): + Creating the Nth instance (index N): -
              Clone instance from template.
              +                
              Clone instance from template.
               
               instance.uuid:        NEW_UUID
               instance.modified:    now
              @@ -278,16 +281,17 @@ 

              Implementation: Adding a new periodic template

              instance.start: template.last: N
              -

              +

              -

              Implementation: Adding a new chained template

              -

              - When adding a new chained template: + +

              Implementation: Adding a new chained template

              +

              + When adding a new chained template: -

              task add ... due:D recur:R wait:D-1wk scheduled:D-1wk until:U rtype:chained
              +
              task add ... due:D recur:R wait:D-1wk scheduled:D-1wk until:U rtype:chained
              - Creates: -
              template.uuid:        NEW_UUID
              +                Creates:
              +                
              template.uuid:        NEW_UUID
               template.description: ...
               template.entry:       now
               template.modified:    now
              @@ -298,48 +302,49 @@ 

              Implementation: Adding a new chained template

              template.until: U template.rtype: chained
              - Creating the Nth instance (index N): -
              Clone instance from template.
              +                Creating the Nth instance (index N):
              +                
              Clone instance from template.
               
              -instance.uuid:        NEW_UUID
              -instance.modified:    now
              -instance.due:         instance[N-1].end + template.recur
              -instance.wait:        instance.due + (template.due - template.wait)
              -instance.scheduled:   instance.due + (template.due - template.scheduled)
              -instance.start:
              +instance.uui d: NEW_UUID +instance.mod ified: now +instance.due : instance[N-1].end + template.recur +instance.wai t: instance.due + (template.due - template.wait) +instance.sch eduled: instance.due + (template.due - template.scheduled) +instance.sta rt:
              - Chained tasks do not obey rc.recurrence.limit, and - show only one pending task at a time. -

              + Chained tasks do not obey rc.recurrence.limit, and + show only one pending task at a time. +

              -

              Implementation: Special handling for months

              -

              - Certain recurrence periods are inexact: -

                -
              • P1M
              • -
              • P1Y
              • -
              • P1D
              • -
              + +

              Implementation: Special handling for months

              +

              + Certain recurrence periods are inexact: +

                +
              • P1M
              • +
              • P1Y
              • +
              • P1D
              • +
              - When the recurrence period is P1M the number of days - in a month varies and causes drift. -

              + When the recurrence period is P1M the number of days + in a month varies and causes drift. +

              -

              - When the recurrence period is P1Y the number of days - in a year varies and causes drift. -

              +

              + When the recurrence period is P1Y the number of days + in a year varies and causes drift. +

              -

              - When the recurrence period is P1D the number of hours - in a day varies due to daylight savings, and causes drift. -

              +

              + When the recurrence period is P1D the number of hours + in a day varies due to daylight savings, and causes drift. +

              -

              - Drift should be avoided by carefully implementing: +

              + Drift should be avoided by carefully implementing: -

              instance.due: template.due + (N * template.recur)
              -

              +
              instance.due: template.due + (N * template.recur)
              +


    @@ -364,7 +369,12 @@

    Implementation: Special handling for months

  • Modification Propagation
  • Exotic Dates
  • -
  • Implementation
  • +
  • Implementation +
  • From 5969325439156f7f904f0f6be5cd704aa7427650 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 01:48:40 +0000 Subject: [PATCH 06/12] Put two related sections adjacent --- html/docs/design/recurrence.html | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 211c40b1..a069fb92 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -67,7 +67,7 @@

    Recurrence

    Recurrence needs an overhaul to improve weaknesses and add new features. -

    +

    Terminology

    @@ -174,6 +174,16 @@

    Proposal: New 'rtype' attribute

    + +

    Proposal: Deleting/completing a chained instance

    +

    + Deleting or completing a rtype:chained instance + causes the next chained instance to be synthesized. + + This gives the illusion that the due date is simply pushed out + to (now + template.recur). +

    +

    Proposal: Use relative offsets

    @@ -203,16 +213,6 @@

    Proposal: On load, auto-upgrade legacy tasks

    - -

    Proposal: Deleting/completing a chained instance

    -

    - Deleting or completing a rtype:chained instance - causes the next chained instance to be synthesized. - - This gives the illusion that the due date is simply pushed out - to (now + template.recur). -

    -

    Proposal: Modification Propagation

    @@ -358,9 +358,9 @@

    Implementation: Special handling for months

  • Eliminate mask, imaѕk Attributes
  • Rename parent to template
  • New 'rtype' attribute
  • +
  • Deleting a chained instance
  • Use relative offsets
  • On load, auto-upgrade legacy tasks
  • -
  • Deleting a chained instance
  • Modification Propagation
  • Exotic Dates
  • From c2ecd927871579d344b90d07a20dea6b30d72469 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 12:38:54 +0000 Subject: [PATCH 07/12] Note correspondence between `rtype` and Org-mode Clarify similarities between these two programs' recurrence types, by incorporating material from [this comment](https://github.com/GothenburgBitFactory/taskwarrior/issues/1835#issuecomment-447605003). Strip extraneous prose. --- html/docs/design/recurrence.html | 50 ++++++++++++++++++++------------ 1 file changed, 32 insertions(+), 18 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index a069fb92..e4ecbd01 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -153,24 +153,38 @@

    Proposal: New 'rtype' attribute

    To indicate the flavor of recurrence, support the following values: - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    periodic - Instances are created on a regular schedule. - Example: send birthday flowers. It must occur on a regular - schedule, and doesn't matter if you were late last year. - This is the default value. -
    chained - Instances are created back to back, so when one instance ends, - the next begins, with the same recurrence. - Example: mow the lawn. If you mow two days late, the next - instance is not two days early to compensate. -
    Proposed TaskWarrior 'rtype'Org-mode equivalentInstances accumulate if not done or deletedNext task's due date set toExample
    periodic (default)+YLatest instance's due date + intervalSend birthday flowers. (Must occur on a regular schedule, and doesn't matter if you were late last year.)
    chained.+NLatest instance's done date + intervalMow the lawn. (If you mow two days late, the next instance is not two days early to compensate.)
    N/A++NLatest instance's due date + n x interval, where n is an integer that is incremented until the next task's due date is in the future

    From 8d2c37d5c52f435718a6ad46085b037c6a6ef012 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 12:50:11 +0000 Subject: [PATCH 08/12] Consolidate "Proposal: Deleting/completing a chained instance" into "Proposal: New 'rtype' attribute", for concision. --- html/docs/design/recurrence.html | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index e4ecbd01..47442836 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -160,6 +160,7 @@

    Proposal: New 'rtype' attribute

    Instances accumulate if not done or deleted Next task's due date set to Example + Notes @@ -169,6 +170,7 @@

    Proposal: New 'rtype' attribute

    Y Latest instance's due date + interval Send birthday flowers. (Must occur on a regular schedule, and doesn't matter if you were late last year.) + chained @@ -176,6 +178,10 @@

    Proposal: New 'rtype' attribute

    N Latest instance's done date + interval Mow the lawn. (If you mow two days late, the next instance is not two days early to compensate.) + Deleting/completing an instance causes next chained + instance to be synthesized, giving illusion that due + date is simply changed to (now + + template.recur). N/A @@ -183,21 +189,12 @@

    Proposal: New 'rtype' attribute

    N Latest instance's due date + n x interval, where n is an integer that is incremented until the next task's due date is in the future +

    - -

    Proposal: Deleting/completing a chained instance

    -

    - Deleting or completing a rtype:chained instance - causes the next chained instance to be synthesized. - - This gives the illusion that the due date is simply pushed out - to (now + template.recur). -

    -

    Proposal: Use relative offsets

    @@ -372,7 +369,6 @@

    Implementation: Special handling for months

  • Eliminate mask, imaѕk Attributes
  • Rename parent to template
  • New 'rtype' attribute
  • -
  • Deleting a chained instance
  • Use relative offsets
  • On load, auto-upgrade legacy tasks
  • Modification Propagation
  • From 7f3001648a8a242d4c2918b5510b0ca65626ffed Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 21:33:31 +0000 Subject: [PATCH 09/12] Move implementation note to implementation section Both because that seems the most relevant place for it, and because the table was too narrow to accommodate so many columns with cells containing full sentences of text. Also delete the now-unnecessary "Notes" column from the `rtype` proposal table. --- html/docs/design/recurrence.html | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 47442836..4117670e 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -160,7 +160,6 @@

    Proposal: New 'rtype' attribute

    Instances accumulate if not done or deleted Next task's due date set to Example - Notes @@ -170,7 +169,6 @@

    Proposal: New 'rtype' attribute

    Y Latest instance's due date + interval Send birthday flowers. (Must occur on a regular schedule, and doesn't matter if you were late last year.) - chained @@ -178,10 +176,6 @@

    Proposal: New 'rtype' attribute

    N Latest instance's done date + interval Mow the lawn. (If you mow two days late, the next instance is not two days early to compensate.) - Deleting/completing an instance causes next chained - instance to be synthesized, giving illusion that due - date is simply changed to (now + - template.recur). N/A @@ -189,7 +183,6 @@

    Proposal: New 'rtype' attribute

    N Latest instance's due date + n x interval, where n is an integer that is incremented until the next task's due date is in the future - @@ -291,6 +284,11 @@

    Implementation: Adding a new periodic template

    Implementation: Adding a new chained template

    +

    + Deleting/completing an instance should cause the next chained + instance to be synthesized, giving illusion that due date is + simply changed to (now + template.recur). +

    When adding a new chained template: From a131943d158cea38152054806cd2adcca8a3cf4e Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 13:26:52 +0000 Subject: [PATCH 10/12] Improve example for `rtype:periodic` If you are very late buying birthday flowers, it might be better to wait until next year (depends on the person, I guess). But rent is more black-and-white: it is due regularly, and if not paid then the obligations accumulate. The replacement example was inspired by one of the examples given at https://orgmode.org/manual/Repeated-tasks.html --- html/docs/design/recurrence.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 4117670e..65050b8d 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -168,7 +168,7 @@

    Proposal: New 'rtype' attribute

    + Y Latest instance's due date + interval - Send birthday flowers. (Must occur on a regular schedule, and doesn't matter if you were late last year.) + Pay your rent every month. (You may be late, but you can't just skip a month.) chained From a5ebc83b6f6500c404219d8a3e3c151d164bf407 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 13:26:52 +0000 Subject: [PATCH 11/12] Add example for Org-mode recurrence type `++` Useful to help distinguish it from `rtype:periodic` and `rtype:chained`. The replacement example was inspired by one of the examples given at https://orgmode.org/manual/Repeated-tasks.html --- html/docs/design/recurrence.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 65050b8d..41acaf94 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -175,14 +175,14 @@

    Proposal: New 'rtype' attribute

    .+ N Latest instance's done date + interval - Mow the lawn. (If you mow two days late, the next instance is not two days early to compensate.) + Ring your mother daily. (If you delay or skip, you don't ring her twice the next day to compensate.) N/A ++ N Latest instance's due date + n x interval, where n is an integer that is incremented until the next task's due date is in the future - + Ring your aunt every Sunday. (If you delay or skip, you don't ring twice next time to compensate, but you should thereafter resume the routine.) From 9baf62e1224be42acc63a41fd3c8f83139fcb442 Mon Sep 17 00:00:00 2001 From: Sam Pablo Kuper Date: Tue, 18 Dec 2018 23:34:00 +0000 Subject: [PATCH 12/12] Propose TW gains `rtype:snapping`, like Org `++`. "Snapping" is a term that has currency already in software, especially in image editing tools. It refers to something that would otherwise be free-floating "snapping" instead to a grid of pre-defined intervals. --- html/docs/design/recurrence.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/html/docs/design/recurrence.html b/html/docs/design/recurrence.html index 41acaf94..2a895062 100644 --- a/html/docs/design/recurrence.html +++ b/html/docs/design/recurrence.html @@ -178,7 +178,7 @@

    Proposal: New 'rtype' attribute

    Ring your mother daily. (If you delay or skip, you don't ring her twice the next day to compensate.) - N/A + snapping ++ N Latest instance's due date + n x interval, where n is an integer that is incremented until the next task's due date is in the future