GothenburgBitFactory / taskwarrior

Taskwarrior - Command line Task Management
https://taskwarrior.org
MIT License
4.37k stars 297 forks source link

[TW-78] Flexible due dates: (e.g. sprints) #137

Open taskwarrior opened 6 years ago

taskwarrior commented 6 years ago

Simon VC on 2011-06-20T07:45:33Z says:

I want to be able to do this:

task date xmas due:2011-12-25 task add Buy Wife present due:xmas

or:

task date sprint2 due:2011-11-28 // Add a new date alias task add Complete Some Task due:sprint2 // Add a task due by end of sprint2 task date sprint2 due:2011-12-28 // push back the date a month

taskwarrior commented 6 years ago

Migrated metadata:

Created: 2011-06-20T07:45:33Z
Modified: 2017-01-16T15:59:51Z
taskwarrior commented 6 years ago

Dirk Deimeke on 2011-06-20T09:16:56Z says:

Since a date can be either "due" or "wait" date, I would suggest to change the line to:

task date xmas 2011-12-25

or even

task date alias xmas 2011-12-25
taskwarrior commented 6 years ago

David Patrick on 2011-06-20T14:42:52Z says:

Maybe these should be considered "referential dates" rather than "flexible" ? I like the idea of having a date alias, and the concept of assigning the date value that of another (referred-to) task, has been in the works for a while.

taskwarrior commented 6 years ago

Eric Fluger on 2011-06-20T15:20:04Z says:

if i'm understanding the content correctly the title of this item strikes me as tad misleading. it sounds like you are talking about a "named due date". that is the ability to associate a name and a date and refer to that date by name. this would inded be handy espeically if you have many referrences to the same date.

i would consider "flexible due dates" to due dates with wiggle room. for example i might create one or more somewhat arbitrary self-imposed deadlines just to create some structure for a project. later i might change them. (this is sometimes called "putting stakes in the ground.") this can be thought of in at least two ways. a distinction can be made between "hard" and "soft" due dates, whereby a "hard" date is considered mandatory and a "sort" date is not. an alternative would be to specify a range between two dates, one being a prefered date, the other a mandatory date, (or a more significant date if none of the dates are mandatory).

though the idea emerged in a different context there is a thread regarding a named date-range feature in features forum.

this may seem like a digression, but actully it ties in. if we were to consider a singe named date a special case of named date range, that is a range with one element, the same mechanism could provide the functionality you seem to be asking for.

i plan to return to that thread and expand the scope to included single dates. perhaps you could add a few line about the application of the meachnism illustrated by your examples.

taskwarrior commented 6 years ago

Paul Beckingham on 2011-06-20T22:00:07Z says:

Hi Simon, thanks for the suggestion.

I see a couple of interesting points here. The first is that you would like to be able to configure a date alias (very similar to the holidays we have now), then refer to it later. That establishes a nice connection between the holidays and their use in setting due dates, etc.

The second point is that you describe adding a task and setting its due date as being the due date of something else, in this case a date alias. As David pointed out, something similar is in development. When setting a due date, as just one example, the value specified will not be limited to just date literals, but will include date references, or references that evaluate to a date. For example:

task add Complete this due:123.due
task add Complete that due:"eom + 2wks - 3d"

The first example means the task should have the same due date as task 123. The second example means the task should have a due date of the end of the month, plus 11 days. This is called expression support, and will be in the 2.0 release.

taskwarrior commented 6 years ago

Simon VC on 2011-06-21T07:04:36Z says:

task add Complete this due:123.due task add Complete that due:"eom + 2wks - 3d"

Could i do:

task add ApolloSprint due:2011-10-21 // The apollo sprint ends August 21 task add Some Task due:ApolloSprint.due //Some Task due for the apollo sprint task 1 due:2011-10-25 // Task 1, the ApolloSprint task is pushed back by 4 days.

If this was the case then that would be all i need. Some syntactic sugar around that would be nice, but "Dates as a type of task object" works for me.

Currently i add all the Sprint tasks to "Projects", which means i can't use projects for their intended purpose and doesn't give me count down tracking.

taskwarrior commented 6 years ago

Paul Beckingham on 2011-06-22T02:00:28Z says:

task add ApolloSprint due:2011-10-21 // The apollo sprint ends August 21 task add Some Task due:ApolloSprint.due //Some Task due for the apollo sprint task 1 due:2011-10-25 // Task 1, the ApolloSprint task is pushed back by 4 days.

Not quite. The second command would be .due, not .due. Then with the third command, pushing back the sprint due date really should push back the items that reference it. That would require that the task due date be a reference, not a copy of the date. As it is, references are not supported. Nice idea though.

taskwarrior commented 6 years ago

Aikido Guy on 2011-08-02T14:47:04Z says:

I also like the idea of being able to delay all tasks within a project (not necessarily only those related to a pre-defined sprint). For example, I work and work and work and I start to get behind in accurate due dates for my tasks (they tend to pile up). Rather than modify them one at a time, I'd like a way to take all of my tasks in a project (but not recurring tasks) and delay them by 1 hour or 1 day or 2 days. Would this be possible in the 2.0.0 release?

taskwarrior commented 6 years ago

Paul Beckingham on 2011-08-03T03:03:57Z says:

I'd like a way to take all of my tasks in a project (but not recurring tasks) and delay them by 1 hour or 1 day or 2 days. Would this be possible in the 2.0.0 release?

Yes. You can do this:

task project:AikidoGuy modify due:due+2d
taskwarrior commented 6 years ago

Benjamin Weber on 2014-05-26T20:41:36Z says:

I imagine, a completion of a task sets the due date of another:

task 14 mod due:5.completed+5days