ad-si / TaskLite

The CLI task manager for power users
https://tasklite.org
GNU Affero General Public License v3.0
216 stars 12 forks source link

suggested change in semantics for 'repeat' command #41

Closed jdietrch closed 3 years ago

jdietrch commented 3 years ago

Currently, the definition for tasklite repeat is "Repeat a task x days after its due UTC or after it gets closed (whichever occurs later)".

This definition works well if the task is completed on time or late, but it does not work well if the task is completed early.

Let's suppose I create a task "Take out the trash" and set it to repeat P7D because most of the time it takes about a week to fill up the trash can. Now suppose one week I'm gone for several days, so the trash doesn't need to be taken out until several days later than usual. When I finally do take out the trash and mark that task done, the next task is created with a due date seven days after that. This is just how it should be.

However, the reverse could also happen. Suppose that shortly after I take out the trash, I have a lot of people over to my house for a special meal. Having all those people over generates a lot of trash and so the trash needs to be taken out the next morning, five days before the due date. And so I do that and mark that task done. But because I'm completing the task early, the next task is created with a due date of twelve days from now. That isn't what I want, because if the upcoming week is a normal week, I'll need to take out the trash seven days from now and not twelve days from now. It would really be more appropriate to give the new task a due date of seven days from now.

Therefore, I propose that the definition for tasklite repeat be changed to "Repeat a task x days after it gets closed", regardless of its due date, whether it's closed early or late.

I hope I've explained this clearly enough, but if not, please don't hesitate to ask for clarification.

ad-si commented 3 years ago

I just checked all my repeating tasks, and indeed, your definition makes more sense! Actually I'm not even sure how I came up with the current meaning in the first place. Seems a little convoluted in hindsight 😅. So thanks for the idea and your detailed explanation! I implemented it in 686789b.

jdietrch commented 3 years ago

That was fast! Thank you.

I've just tested again, and it works the way I think it should.

Also, I should mention that it's very nice to be able to download the binary from Actions.