emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Adam Spiers <orgmode@adamspiers.org>
To: emacs-orgmode@gnu.org
Subject: Re: depending TODOs, scheduling following TODOs automatically
Date: Mon, 8 Oct 2007 21:26:52 +0100	[thread overview]
Message-ID: <20071008202652.GA18426@atlantic.linksys.moosehall> (raw)
In-Reply-To: <877ilxmimn.fsf@bzg.ath.cx>

On Mon, Oct 08, 2007 at 09:55:12PM +0100, Bastien wrote:
> Implementing tasks-dependencies sounds pretty exciting!

Yes, I've been wanting this too.

> I'd like to jump in this discussion with a very simple idea.
> 
> ,----
> | * TODO When this task is marked done, send SCHEDULED to the next task
> |   :PROPERTIES:
> |   :SEND: {SCHEDULED 'next "+1d"} {TODO 'next "TODO"}
> |   :END:
> | 
> | * When previous task done, this will turn TODO, SCHEDULED for +1 day
> `----
> 
> The basic idea is to *send* a property to a task depending on a state
> change - in the example above, depending on switching from TODO to DONE.
> 
> "SEND" would be a special property, composed of repeating curly braced
> constructs {PROP ADDR VAL}, each of one being composed of:
> 
>   PROP: the property to be sent
> 
>   ADDR: the relative or absolute "address" of the task
> 
>   VAL:  the new value for this property (default to the value this
>         property had in the previous task)
> 
> The "absolute" address could be a GUID or a human readable label. 
> 
> I think this way to send a property (or even to propagate multiple
> properties to multiple tasks, if needed) would spare us the fuss of
> implementing real dependencies with real links between the tasks.  
> 
> What do you think?

It could work.

I like the idea of making it more generic, as people could almost
certainly find new uses for expressing an arbitrary relationship
between two items based on their personalised workflows (a bit like
W3C's <link rel="...">), e.g.

  - if A changes to DONE, change B from BLOCKED to NEXT
    (this is the obvious one)

  - if A changes to DONE, change B from NEXT to CANCELLED
    (if only A or B needs to be done, not both)

There must be others people can think of easily.

Or you could even have a state change creating new items from
templates!  This could allow some really clever workflows where
arrival at one stage in the workflow triggers more than one new
action.

What exactly would the ADDR look like?

I think an ideal implementation should support bidirectional
navigation, i.e. jumping from a blocked task to its blocker, or in the
opposite direction.  And that begs the question: would you need
bidirectional updates too?  E.g. if B is WAITING on A, and A is
changed to DONE, then B gets updated to NEXT, but alternatively if B
is changed from WAITING to NEXT, should you update A to DONE?  I think
the answer in this particular (bad) example is no, because you might
realise that you can proceed with B even though A is still not DONE.
But there may be other examples where it makes sense.

  reply	other threads:[~2007-10-08 20:26 UTC|newest]

Thread overview: 58+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-10-08  6:56 depending TODOs, scheduling following TODOs automatically Rainer Stengele
2007-10-08 13:26 ` Denis Bueno
2007-10-08 13:43   ` Russell Adams
2007-10-08 13:52     ` Russell Adams
2007-10-08 19:48       ` Carsten Dominik
2007-10-08 20:12         ` Russell Adams
2007-10-09 10:13           ` Carsten Dominik
2007-10-08 14:49     ` Eddward DeVilla
2007-10-08 20:55       ` Bastien
2007-10-08 20:26         ` Adam Spiers [this message]
2007-10-09  2:15           ` Bastien
2007-10-09  3:03             ` John Wiegley
2007-10-09  3:47               ` Eddward DeVilla
2007-10-09  9:27                 ` Richard G Riley
2007-10-09 14:39                   ` Eddward DeVilla
2007-10-10 17:20                     ` Bastien
2007-10-09 10:35                 ` Bastien
2007-10-09 10:32               ` Bastien
2007-10-11 14:46             ` Carsten Dominik
2007-10-11 15:53               ` pete phillips
2007-10-11 16:22                 ` Sebastjan Trepca
2007-10-11 16:37                 ` Russell Adams
2007-10-11 17:10                   ` pete phillips
2007-10-11 17:55                     ` Russell Adams
2007-10-11 18:45                       ` pete phillips
2007-10-14  1:01                         ` Charles Cave
2007-10-14  2:42                           ` Bastien
2007-10-11 19:46                       ` Bastien
2007-10-11 21:12                       ` Rainer Stengele
2007-10-11 21:19                         ` Leo
2007-10-11 23:54                           ` Piotr Zielinski
2007-10-12  3:14                             ` Eddward DeVilla
2007-10-12 13:50                               ` Bastien
2007-10-12 17:09                         ` Jason F. McBrayer
2007-10-12 17:03                 ` Jason F. McBrayer
2007-10-11 16:53               ` Bastien
2007-10-12  9:21               ` John Wiegley
2007-10-08 20:35         ` Eddward DeVilla
2007-10-09  2:42           ` Bastien
2007-10-09  2:01             ` Russell Adams
2007-10-09  3:35               ` Eddward DeVilla
2007-10-09  3:59                 ` Russell Adams
2007-10-09  4:55                   ` Eddward DeVilla
2007-10-09 10:42                   ` Bastien
2007-10-09  3:37               ` Bastien
2007-10-09  2:58             ` Eddward DeVilla
2007-10-09 10:41               ` Bastien
2007-10-09 14:53                 ` Eddward DeVilla
2007-10-11 12:44                   ` Bastien
2007-10-11 12:22                     ` Russell Adams
2007-10-11 14:03                       ` Bastien
2007-10-11 13:21                         ` Russell Adams
2007-10-11 13:31                         ` Eddward DeVilla
2007-10-12  9:13                         ` John Wiegley
2007-10-09  9:44       ` Christian Egli
2007-10-09 10:53         ` Bastien
2007-10-09 15:21         ` Eddward DeVilla
2007-10-11 12:44           ` Bastien

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20071008202652.GA18426@atlantic.linksys.moosehall \
    --to=orgmode@adamspiers.org \
    --cc=emacs-orgmode@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).