emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carsten Dominik <dominik@science.uva.nl>
To: Carsten Dominik <dominik@science.uva.nl>
Cc: emacs-orgmode@gnu.org
Subject: Re: Can't make TODO dependencies work
Date: Sun, 1 Feb 2009 20:38:21 +0100	[thread overview]
Message-ID: <D8343B50-AB15-4062-95F5-5A3F973A67B5@uva.nl> (raw)
In-Reply-To: <82B40ECB-ADB0-441D-885B-2CD64DA53EFE@uva.nl>

In fact, we need a FAQ about this issue:

Several variables in Org must already be set a load time.
This is one of the reasons why you should not use (require 'org)
in your setup, but better only (require 'org-install).

However, org.el will also get loaded when you require some
other org-... file, for example an add-on from the contrib
directory.

The right way is therefore *always* this (a general Emacs truth).

First, set all your variables.  Then load the package.

In this particular example, the problem is the following:
Setting the variables for the todo dependencies triggers
adding functions to org-blocker-hook, at load time for org.el.

I *could* do a different implementation, where the functions
are always in the blocker hook, but are only active when the
variables are set.  However, the problem is then that it is
difficult to see from the outside if the hook is doing something,
and I want to use that knowledge to avoid overhead in the
agenda for people who do not use todo dependencies.

- Carsten


On Feb 1, 2009, at 8:21 PM, Carsten Dominik wrote:

>
> On Feb 1, 2009, at 7:23 PM, John Rakestraw wrote:
>
>> On Sun, 1 Feb 2009 19:03:46 +0100
>> Carsten Dominik <dominik@science.uva.nl> wrote:
>>
>>>> This is misleading. I realized that dependencies *do* work
>>>> consistently
>>>> in the minimal configuration. With the header line in the test
>>>> file, I can change the main task from TODO to STARTED (or to any of
>>>> the other non-done states), but I'm blocked from changing it to
>>>> DONE.
>>>
>>> This is how it should be.
>>
>> I agree -- that's why I apologized for introducing that point.
>>>
>>>> But they still don't work with my usual configuration.
>>>
>>> Well, if the value of org-blocker-hook is nil in this case, I
>>> am not surprised!   Why is it nil?  If you set the
>>> org-enforce... variables, the hook should be filled
>>> with the two functions.
>>
>> I don't know why it's nil. However, I've discovered a bit more. It
>> seems that the problem is that my settings in my org-config file:
>>
>> (setq org-enforce-todo-dependencies t)
>> (setq org-agenda-dim-blocked-tasks 'invisible)
>> (setq org-enforce-todo-checkbox-dependencies t)
>>
>> didn't prompt the required change in the value of org-blocker-hook.
>> With these lines in my org config file, the values of the three
>> variables are as expected, but the value of org-blocker-hook remains
>> nil, even if I stop and re-start emacs.
>
> You need to set these variables before org.el is loaded.
>
> - Carsten
>
>
>>
>>
>> When I change the value of org-enforce-todo-dependencies using
>> customize, then the value of org-blocker-hook is what it should be,  
>> and
>> the dependencies work, even if I stop and re-start emacs.
>>
>> So presumably something else in my config file is keeping
>> org-blocker-hook from being re-set?
>>
>> I'd prefer not to use the customize function, so I'd hoped to set  
>> it in
>> my config file.
>>
>> Thanks, and apologies for not sorting through this a bit more before
>> the initial post.
>>
>> --John
>>
>>
>

  reply	other threads:[~2009-02-01 19:38 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20090201121412.657196d2@johnrakestraw.com>
2009-02-01 17:21 ` Carsten Dominik
2009-02-01 17:45 ` John Rakestraw
     [not found]   ` <941FA03B-2A6D-40ED-8D4B-A5657BEA9798@uva.nl>
2009-02-01 18:23     ` John Rakestraw
2009-02-01 19:21       ` Carsten Dominik
2009-02-01 19:38         ` Carsten Dominik [this message]
2009-02-01 20:27           ` John Rakestraw
2009-02-02  7:13           ` Paul Mead
2009-02-02 16:05           ` Wes Hardaker
2009-02-02 21:08             ` Carsten Dominik
2009-02-02 22:35               ` Wes Hardaker

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=D8343B50-AB15-4062-95F5-5A3F973A67B5@uva.nl \
    --to=dominik@science.uva.nl \
    --cc=emacs-orgmode@gnu.org \
    --subject='Re: Can'\''t make TODO dependencies work' \
    /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

Code repositories for project(s) associated with this 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).