From mboxrd@z Thu Jan  1 00:00:00 1970
From: Ian Dunn <dunni@gnu.org>
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: <emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org>
Received: from eggs.gnu.org ([2001:4830:134:3::10]:41586)
	by lists.gnu.org with esmtp (Exim 4.71)
	(envelope-from <geo-emacs-orgmode@m.gmane.org>) 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 <geo-emacs-orgmode@m.gmane.org>) 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 <geo-emacs-orgmode@m.gmane.org>)
	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 <geo-emacs-orgmode@m.gmane.org>) id 1d1kqC-0004zr-Go
	for emacs-orgmode@gnu.org; Sat, 22 Apr 2017 04:32:04 +0200
List-Id: "General discussions about Org-mode." <emacs-orgmode.gnu.org>
List-Unsubscribe: <https://lists.gnu.org/mailman/options/emacs-orgmode>,
	<mailto:emacs-orgmode-request@gnu.org?subject=unsubscribe>
List-Archive: <http://lists.gnu.org/archive/html/emacs-orgmode/>
List-Post: <mailto:emacs-orgmode@gnu.org>
List-Help: <mailto:emacs-orgmode-request@gnu.org?subject=help>
List-Subscribe: <https://lists.gnu.org/mailman/listinfo/emacs-orgmode>,
	<mailto:emacs-orgmode-request@gnu.org?subject=subscribe>
Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org
Sender: "Emacs-orgmode"
	<emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org>
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

--=-=-=--