emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* RFC: Extensible Dependencies 'N' Actions
@ 2017-04-22  2:31 Ian Dunn
  2017-04-22  5:23 ` Gergely Polonkai
  2017-04-24  9:01 ` Adam Porter
  0 siblings, 2 replies; 4+ messages in thread
From: Ian Dunn @ 2017-04-22  2:31 UTC (permalink / raw)
  To: emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 295 bytes --]


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:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: Type: text/x-org, Size: 153 bytes --]

* TODO Address all TODOs in code
  :PROPERTIES:
  :BLOCKER: file("main.cpp") file("code.cpp") re-search("TODO")
  :END:
* TODO Commit Code to Repository

[-- Attachment #3: Type: text/plain, Size: 82 bytes --]


Or schedule the following task for an hour after the current task is
completed:


[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #4: Type: text/x-org, Size: 255 bytes --]

* 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:

[-- Attachment #5: Type: text/plain, Size: 169 bytes --]


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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: RFC: Extensible Dependencies 'N' Actions
  2017-04-22  2:31 RFC: Extensible Dependencies 'N' Actions Ian Dunn
@ 2017-04-22  5:23 ` Gergely Polonkai
  2017-04-22 15:29   ` Ian Dunn
  2017-04-24  9:01 ` Adam Porter
  1 sibling, 1 reply; 4+ messages in thread
From: Gergely Polonkai @ 2017-04-22  5:23 UTC (permalink / raw)
  To: Ian Dunn, emacs-orgmode

[-- Attachment #1: Type: text/plain, Size: 1316 bytes --]

Hello Ian,

I just read the docs and I like it so far. There are three things I’d
mention:

• Some finders have missing documentation (although their names are pretty
straightforward)
• Why the “new language”, why can’t it be lisp, or at least more lispish?
• You gave us a possibility to create naming clashes between targets,
finders, etc. For example, I might want to file a note when a file of a
project changes, so I use your file target, and create the file action. How
will Edna know when to use which?

Hope I helped. I’ll give Edna a shot on Monday and probably get back with
some results.

Best,
Gergely

On Sat, Apr 22, 2017, 04:33 Ian Dunn <dunni@gnu.org> wrote:

>
> 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:
>
>
> Or schedule the following task for an hour after the current task is
> completed:
>
>
> 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
>

[-- Attachment #2: Type: text/html, Size: 1748 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: RFC: Extensible Dependencies 'N' Actions
  2017-04-22  5:23 ` Gergely Polonkai
@ 2017-04-22 15:29   ` Ian Dunn
  0 siblings, 0 replies; 4+ messages in thread
From: Ian Dunn @ 2017-04-22 15:29 UTC (permalink / raw)
  To: Gergely Polonkai; +Cc: emacs-orgmode


Gergely Polonkai writes:

> • Some finders have missing documentation (although their names are pretty
> straightforward)

Yup, working on that.

> • Why the “new language”, why can’t it be lisp, or at least more lispish?

Initially, I made it similar to org-depend.el, but as parsing became
complicated, it has effectively morphed into lisp.  The keywords are all
symbols (they've got to be functions, after all), and the argument lists
are lisp lists.

I find this to be a good compromise between ease of coding for me, and
ease of understanding for the users.

> • You gave us a possibility to create naming clashes between targets,
> finders, etc. For example, I might want to file a note when a file of a
> project changes, so I use your file target, and create the file action. How
> will Edna know when to use which?

Right now, Edna will use the finder and ignore the action.  I didn't
want to force users to specify when to change from finders to actions or
conditions, so I just had Edna search for the functions.

Thinking about it, Guile uses the suffixes '!' to denote functions that
destructively change the input (like actions) and '?' to denote
predicates (like conditions).

If Edna looks for these characters at the end of the keyword (starting
character already means something), then that will allow users to name
both a finder and action 'file' (although the action would be 'file!').

And of course, thank you for your support and feedback.

-- 
Ian Dunn

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: RFC: Extensible Dependencies 'N' Actions
  2017-04-22  2:31 RFC: Extensible Dependencies 'N' Actions Ian Dunn
  2017-04-22  5:23 ` Gergely Polonkai
@ 2017-04-24  9:01 ` Adam Porter
  1 sibling, 0 replies; 4+ messages in thread
From: Adam Porter @ 2017-04-24  9:01 UTC (permalink / raw)
  To: emacs-orgmode

Hi Ian,

Don't have time to dig into this at the moment, but it sounds very
impressive and useful.  I look forward to giving it a try soon.  Keep up
the good work!

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2017-04-24  9:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-04-22  2:31 RFC: Extensible Dependencies 'N' Actions Ian Dunn
2017-04-22  5:23 ` Gergely Polonkai
2017-04-22 15:29   ` Ian Dunn
2017-04-24  9:01 ` Adam Porter

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).