From: Tomi Ollila Date: Sat, 13 Jul 2013 08:06:44 +0000 (+0300) Subject: Re: [PATCH] emacs: hello: make --batch error gracefully X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8e240b6ab7d1156dbd80889b9124af153b5ff02e;p=notmuch-archives.git Re: [PATCH] emacs: hello: make --batch error gracefully --- diff --git a/57/8a384ee837680f27f100989f4a967cd64537f2 b/57/8a384ee837680f27f100989f4a967cd64537f2 new file mode 100644 index 000000000..16b447ea2 --- /dev/null +++ b/57/8a384ee837680f27f100989f4a967cd64537f2 @@ -0,0 +1,185 @@ +Return-Path: +X-Original-To: notmuch@notmuchmail.org +Delivered-To: notmuch@notmuchmail.org +Received: from localhost (localhost [127.0.0.1]) + by olra.theworths.org (Postfix) with ESMTP id A7516431FB6 + for ; Sat, 13 Jul 2013 01:07:00 -0700 (PDT) +X-Virus-Scanned: Debian amavisd-new at olra.theworths.org +X-Spam-Flag: NO +X-Spam-Score: 0 +X-Spam-Level: +X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none] + autolearn=disabled +Received: from olra.theworths.org ([127.0.0.1]) + by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024) + with ESMTP id SD3nO6G4Akne for ; + Sat, 13 Jul 2013 01:06:51 -0700 (PDT) +Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34]) + by olra.theworths.org (Postfix) with ESMTP id 35804431FAF + for ; Sat, 13 Jul 2013 01:06:51 -0700 (PDT) +Received: from guru.guru-group.fi (localhost [IPv6:::1]) + by guru.guru-group.fi (Postfix) with ESMTP id 2953E100086; + Sat, 13 Jul 2013 11:06:45 +0300 (EEST) +From: Tomi Ollila +To: Mark Walters , notmuch@notmuchmail.org +Subject: Re: [PATCH] emacs: hello: make --batch error gracefully +In-Reply-To: <87wqp2d618.fsf@qmul.ac.uk> +References: <1372976299-30389-1-git-send-email-markwalters1009@gmail.com> + <87wqp2d618.fsf@qmul.ac.uk> +User-Agent: Notmuch/0.15.2+193~g7350bd4 (http://notmuchmail.org) Emacs/24.3.1 + (x86_64-unknown-linux-gnu) +X-Face: HhBM'cA~ +MIME-Version: 1.0 +Content-Type: text/plain +X-BeenThere: notmuch@notmuchmail.org +X-Mailman-Version: 2.1.13 +Precedence: list +List-Id: "Use and development of the notmuch mail system." + +List-Unsubscribe: , + +List-Archive: +List-Post: +List-Help: +List-Subscribe: , + +X-List-Received-Date: Sat, 13 Jul 2013 08:07:00 -0000 + +On Sun, Jul 07 2013, Mark Walters wrote: + +> Hi +> Tomi Ollila writes: +> +>> On Fri, Jul 05 2013, Mark Walters wrote: +>> +>>> Recently notmuch-hello was converted to use batch count. However, it +>>> seems that several people run different versions of notmuch-emacs and +>>> notmuch-cli so this batch makes emacs fail with an error message if +>>> --batch is not available in the CLI. +>>> --- +>>> There have been two cases on irc of people getting backtraces when +>>> hitting this problem so it might be worth adding an informative error +>>> message. +>> +>> This change takes care of the mismatching version problem now -- for +>> a short while in most cases but in the future we might face with new +>> incompabilities that would -- again -- need new solution. Some day +>> we might have a pile of these who everyone is shy to remove from the +>> code base ;/ +> +> I think we want the unless clause anyway: we do not want to try parsing +> something and getting stacktrace errors whatever happens. The error +> message will need updating so I should probably add a FIXME to the +> code. Perhaps the patch roughly as is could be applied to 0.16 and the +> fixed error message together with your ideas from below to master? + +Like said below (even) the current ok by me -- just that whatever is +chosen will be there into foreseeable future... ;) + +>> Although I am not against applying this patch (if there are supporters +>> of this) I'd like to concentrate fixing this for example the following +>> way: +> +> This looks good. Some thoughts below. +> +>> We'll add a global option to notmuch, e.g. +>> +>> --compatibility-version=x.y +>> +>> Whenever the caller chooses to use this option, notmuch checks whether +>> it can comply with the option -- it it can, execution continues, otherwise +>> aborts. +> +> I think the return value could indicate what the problem was (ie too new +> or too old): so frontends could decide to work around it (perhaps 22 and +> 23 to come after the format-version return values). This would mean that +> callers would have an easier way of telling if --compatability-version +> is supported at all to ease the transition. +> +> I wondered whether it overlapped with Austin's format-version stuff but +> I think it is sufficiently different but some clear documentation as to +> which means what could be helpful. + +Yes, I had Austin's format-version options into mind when quickly drafting +the suggestion (we'd use the same 21&22 (or whatever) return values too...) + +Now that I spend a week with only N9 as a computing device I've also +thought how much of a maintenance burden we want to take with this... +... and thought as an alternative that during byte compilation of emacs +files we pick notmuch cli version to the .elc files -- and just popup +a warning message (on first notmuch-hello invocation) if the versions +differ... + +I'll investigate what kind of emacs macro functionality could be used +to do this (more fun than solving sudoku's that is :D) + +> Best wishes +> +> Mark + +Tomi + + +> +>> The compatibility is determined so that the major 'x' needs to be same +>> and caller may have lower 'y' that notmuch is capable of handling. +>> +>> For example. if notmuch compatibility version was 2.5 +>> +>> --compatibility-version=1.9 -- abort +>> --compatibility-version=2.3 -- continue +>> --compatibility-version=2.5 -- continue +>> --compatibility-version=2.8 -- abort +>> --compatibility-version=3.1 -- abort +>> +>> +>> I can work on this (or on something similar) if this is generally thought +>> as a good idea... +>> +>>> +>>> Best wishes +>>> +>>> Mark +>> +>> Tomi +>> +>> +>>> +>>> emacs/notmuch-hello.el | 9 +++++++-- +>>> 1 files changed, 7 insertions(+), 2 deletions(-) +>>> +>>> diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el +>>> index 147c08c..fa46b7a 100644 +>>> --- a/emacs/notmuch-hello.el +>>> +++ b/emacs/notmuch-hello.el +>>> @@ -402,8 +402,13 @@ options will be handled as specified for +>>> (plist-get options :filter))) +>>> "\n"))) +>>> +>>> - (call-process-region (point-min) (point-max) notmuch-command +>>> - t t nil "count" "--batch") +>>> + (unless (= (call-process-region (point-min) (point-max) notmuch-command +>>> + t t nil "count" "--batch") 0) +>>> + (notmuch-logged-error "notmuch CLI version mismatch error (count --batch) +>>> +The most likely cause of this error is that the CLI is too old +>>> +to support count --batch and needs to be upgraded to the same +>>> +version as notmuch-emacs")) +>>> + +>>> (goto-char (point-min)) +>>> +>>> (notmuch-remove-if-not +>>> -- +>>> 1.7.9.1 +>>> +>>> _______________________________________________ +>>> notmuch mailing list +>>> notmuch@notmuchmail.org +>>> http://notmuchmail.org/mailman/listinfo/notmuch +> _______________________________________________ +> notmuch mailing list +> notmuch@notmuchmail.org +> http://notmuchmail.org/mailman/listinfo/notmuch