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