From mboxrd@z Thu Jan 1 00:00:00 1970 From: Ian Dunn Subject: RFC: Extensible Dependencies 'N' Actions Date: Fri, 21 Apr 2017 22:31:07 -0400 Message-ID: <87pog5rx5g.fsf@escafil> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="=-=-=" Return-path: Received: from eggs.gnu.org ([2001:4830:134:3::10]:41586) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1d1kqS-0003xt-V7 for emacs-orgmode@gnu.org; Fri, 21 Apr 2017 22:32:21 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1d1kqO-0005zZ-2q for emacs-orgmode@gnu.org; Fri, 21 Apr 2017 22:32:20 -0400 Received: from [195.159.176.226] (port=58784 helo=blaine.gmane.org) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1d1kqN-0005zC-RM for emacs-orgmode@gnu.org; Fri, 21 Apr 2017 22:32:15 -0400 Received: from list by blaine.gmane.org with local (Exim 4.84_2) (envelope-from ) id 1d1kqC-0004zr-Go for emacs-orgmode@gnu.org; Sat, 22 Apr 2017 04:32:04 +0200 List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: "Emacs-orgmode" To: emacs-orgmode@gnu.org --=-=-= Content-Type: text/plain I've been working on something akin to org-depend.el called org-edna. Basically, Edna provides an extensible means of specifying blocking conditions and trigger actions. For example, Edna allows you to specify that a task should be blocked until all TODOs have been addressed in source code: --=-=-= Content-Type: text/x-org Content-Disposition: inline * TODO Address all TODOs in code :PROPERTIES: :BLOCKER: file("main.cpp") file("code.cpp") re-search("TODO") :END: * TODO Commit Code to Repository --=-=-= Content-Type: text/plain Or schedule the following task for an hour after the current task is completed: --=-=-= Content-Type: text/x-org Content-Disposition: inline * TODO Put clothes in washer SCHEDULED: <2017-04-08 Sat 09:00> :PROPERTIES: :TRIGGER: next-sibling scheduled("++1h") :END: * TODO Put clothes in dryer :PROPERTIES: :TRIGGER: next-sibling scheduled("++1h") :BLOCKER: previous-sibling :END: --=-=-= Content-Type: text/plain The (semi-complete) documentation is here: http://www.nongnu.org/org-edna-el/ I'd appreciate some feedback on it, whether the code or the documentation. -- Ian Dunn --=-=-=--