From: Austin Clements <amdragon@MIT.EDU>
To: Jani Nikula <jani@nikula.org>
Cc: notmuch@notmuchmail.org
Subject: Re: [PATCH v3 0/2] notmuch hooks
Date: Wed, 7 Dec 2011 15:11:52 -0500 [thread overview]
Message-ID: <20111207201152.GA3787@mit.edu> (raw)
In-Reply-To: <87mxb4b6l9.fsf@nikula.org>
Quoth Jani Nikula on Dec 07 at 8:05 pm:
> On Tue, 06 Dec 2011 22:16:37 -0500, Tom Prince <tom.prince@ualberta.net> wrote:
> > On Tue, 06 Dec 2011 18:47:01 -0800, Jameson Graef Rollins <jrollins@finestructure.net> wrote:
> > > Also, what if we make it so that the post-new hook script only runs if
> > > notmuch new processes new messages? All of my post-new functions don't
> > > need to be run at all if there is no new mail.
>
> I think the post-new hook should be run always (provided there have been
> no errors). I think it might be surprising not to, and some users might
> use the hook for something other than tagging.
>
> > Or would it make sense to pass this information to the hook somehow?
>
> It would, but as I wrote in id:"87mxb8kt5r.fsf@nikula.org", I think that
> should come as another patch afterwards. I know I can't decide yet what
> should be passed and how. Processed message counts (added, deleted,
> renamed) could be passed on the command line, but how useful is that
> really? The same can be easily achieved through initial tagging.
I would worry about creating any hook interface that's difficult to
use correctly. For example, notmuch new could be interrupted right
between processing all new messages and calling the hook; then, on the
next run, it'll tell the hook that nothing happened. More generally,
any message counts passed to a hook can't be better than lower bounds
and I don't see how you could use such information correctly in a
hook.
Using an initial "new" tag that you remove at the end of a hook,
though, is stable. It guarantees that the hook is aware of any new
messages at least once. If a hook needs a new message count, it
should run notmuch count tag:new.
> Message-ids could not be passed on the command line (there just can be
> too many of them) so it would require setting up a pipe and feeding them
> to stdin of the hook. The post-new hook should be run after the database
> has been closed, but the message-ids are not saved during notmuch new
> processing. Saving them for later gets complicated for not much extra
> benefit in addition to creative use of initial tagging, as far as I can
> see. Plus interrupting the post-new hook with this setup would screw up
> your processing if it only depended on the message-ids.
I think this would have to be a separate hook that runs concurrently
with new, both so that new doesn't have to buffer this information and
so that the majority of post-new hooks that don't need this
information don't have to deal with it. Though, as with passing
message counts to post-new, I worry about actually do anything
correctly in such a hook in the presence of interruptions and
failures.
> All in all, I'd postpone all of this until later.
That sounds wise.
next prev parent reply other threads:[~2011-12-07 20:10 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-12-02 21:00 [PATCH 1/2] cli: add mechanism for running user configurable hooks Jani Nikula
2011-12-02 21:00 ` [PATCH 2/2] cli: add support for running notmuch new pre and post hooks Jani Nikula
2011-12-02 21:05 ` [PATCH 1/2] cli: add mechanism for running user configurable hooks Jani Nikula
2011-12-03 23:16 ` [PATCH v2 1/2] cli: introduce the concept of user defined hooks Jani Nikula
2011-12-03 23:16 ` [PATCH v2 2/2] cli: add support for pre and post notmuch new hooks Jani Nikula
2011-12-04 4:00 ` Austin Clements
2011-12-04 19:36 ` Jani Nikula
2011-12-04 19:54 ` Tom Prince
2011-12-04 16:46 ` Tom Prince
2011-12-04 19:56 ` Jani Nikula
2011-12-04 3:42 ` [PATCH v2 1/2] cli: introduce the concept of user defined hooks Austin Clements
2011-12-04 12:35 ` Jani Nikula
2011-12-04 16:41 ` Austin Clements
2011-12-06 13:22 ` [PATCH v3 0/2] notmuch hooks Jani Nikula
2011-12-06 13:22 ` [PATCH v3 1/2] cli: introduce the concept of user defined hooks Jani Nikula
2011-12-06 13:30 ` Jani Nikula
2011-12-06 13:22 ` [PATCH v3 2/2] cli: add support for pre and post notmuch new hooks Jani Nikula
2011-12-07 2:27 ` [PATCH v3 0/2] notmuch hooks Jameson Graef Rollins
2011-12-07 19:42 ` Jani Nikula
2011-12-07 22:13 ` Jameson Graef Rollins
2011-12-08 8:49 ` Tomi Ollila
2011-12-08 16:29 ` Jameson Graef Rollins
2011-12-07 2:47 ` Jameson Graef Rollins
2011-12-07 3:16 ` Tom Prince
2011-12-07 18:05 ` Jani Nikula
2011-12-07 18:10 ` Jameson Graef Rollins
2011-12-07 20:11 ` Austin Clements [this message]
2011-12-08 22:48 ` [PATCH v4 0/3] " Jani Nikula
2011-12-08 22:48 ` [PATCH v4 1/3] cli: introduce the concept of user defined hooks Jani Nikula
2011-12-08 23:34 ` Austin Clements
2011-12-09 13:55 ` Jani Nikula
2011-12-09 15:59 ` Austin Clements
2011-12-08 22:48 ` [PATCH v4 2/3] cli: add support for pre and post notmuch new hooks Jani Nikula
2011-12-08 22:48 ` [PATCH v4 3/3] test: add tests for hooks Jani Nikula
2011-12-10 22:04 ` [PATCH v4 0/3] notmuch hooks Jameson Graef Rollins
2011-12-11 18:29 ` David Bremner
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://notmuchmail.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20111207201152.GA3787@mit.edu \
--to=amdragon@mit.edu \
--cc=jani@nikula.org \
--cc=notmuch@notmuchmail.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://yhetil.org/notmuch.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).