Re: [PATCH v4 13/16] add indexopts to notmuch python bindings.
[notmuch-archives.git] / 57 / 8a384ee837680f27f100989f4a967cd64537f2
1 Return-Path: <tomi.ollila@iki.fi>\r
2 X-Original-To: notmuch@notmuchmail.org\r
3 Delivered-To: notmuch@notmuchmail.org\r
4 Received: from localhost (localhost [127.0.0.1])\r
5         by olra.theworths.org (Postfix) with ESMTP id A7516431FB6\r
6         for <notmuch@notmuchmail.org>; Sat, 13 Jul 2013 01:07:00 -0700 (PDT)\r
7 X-Virus-Scanned: Debian amavisd-new at olra.theworths.org\r
8 X-Spam-Flag: NO\r
9 X-Spam-Score: 0\r
10 X-Spam-Level: \r
11 X-Spam-Status: No, score=0 tagged_above=-999 required=5 tests=[none]\r
12         autolearn=disabled\r
13 Received: from olra.theworths.org ([127.0.0.1])\r
14         by localhost (olra.theworths.org [127.0.0.1]) (amavisd-new, port 10024)\r
15         with ESMTP id SD3nO6G4Akne for <notmuch@notmuchmail.org>;\r
16         Sat, 13 Jul 2013 01:06:51 -0700 (PDT)\r
17 Received: from guru.guru-group.fi (guru.guru-group.fi [46.183.73.34])\r
18         by olra.theworths.org (Postfix) with ESMTP id 35804431FAF\r
19         for <notmuch@notmuchmail.org>; Sat, 13 Jul 2013 01:06:51 -0700 (PDT)\r
20 Received: from guru.guru-group.fi (localhost [IPv6:::1])\r
21         by guru.guru-group.fi (Postfix) with ESMTP id 2953E100086;\r
22         Sat, 13 Jul 2013 11:06:45 +0300 (EEST)\r
23 From: Tomi Ollila <tomi.ollila@iki.fi>\r
24 To: Mark Walters <markwalters1009@gmail.com>, notmuch@notmuchmail.org\r
25 Subject: Re: [PATCH] emacs: hello: make --batch error gracefully\r
26 In-Reply-To: <87wqp2d618.fsf@qmul.ac.uk>\r
27 References: <1372976299-30389-1-git-send-email-markwalters1009@gmail.com>\r
28         <m2mwq0t5v5.fsf@guru.guru-group.fi> <87wqp2d618.fsf@qmul.ac.uk>\r
29 User-Agent: Notmuch/0.15.2+193~g7350bd4 (http://notmuchmail.org) Emacs/24.3.1\r
30         (x86_64-unknown-linux-gnu)\r
31 X-Face: HhBM'cA~<r"^Xv\KRN0P{vn'Y"Kd;zg_y3S[4)KSN~s?O\"QPoL\r
32         $[Xv_BD:i/F$WiEWax}R(MPS`^UaptOGD`*/=@\1lKoVa9tnrg0TW?"r7aRtgk[F\r
33         !)g;OY^,BjTbr)Np:%c_o'jj,Z\r
34 Date: Sat, 13 Jul 2013 11:06:44 +0300\r
35 Message-ID: <m2y59ag9yj.fsf@guru.guru-group.fi>\r
36 MIME-Version: 1.0\r
37 Content-Type: text/plain\r
38 X-BeenThere: notmuch@notmuchmail.org\r
39 X-Mailman-Version: 2.1.13\r
40 Precedence: list\r
41 List-Id: "Use and development of the notmuch mail system."\r
42         <notmuch.notmuchmail.org>\r
43 List-Unsubscribe: <http://notmuchmail.org/mailman/options/notmuch>,\r
44         <mailto:notmuch-request@notmuchmail.org?subject=unsubscribe>\r
45 List-Archive: <http://notmuchmail.org/pipermail/notmuch>\r
46 List-Post: <mailto:notmuch@notmuchmail.org>\r
47 List-Help: <mailto:notmuch-request@notmuchmail.org?subject=help>\r
48 List-Subscribe: <http://notmuchmail.org/mailman/listinfo/notmuch>,\r
49         <mailto:notmuch-request@notmuchmail.org?subject=subscribe>\r
50 X-List-Received-Date: Sat, 13 Jul 2013 08:07:00 -0000\r
51 \r
52 On Sun, Jul 07 2013, Mark Walters <markwalters1009@gmail.com> wrote:\r
53 \r
54 > Hi\r
55 > Tomi Ollila <tomi.ollila@iki.fi> writes:\r
56 >\r
57 >> On Fri, Jul 05 2013, Mark Walters <markwalters1009@gmail.com> wrote:\r
58 >>\r
59 >>> Recently notmuch-hello was converted to use batch count. However, it\r
60 >>> seems that several people run different versions of notmuch-emacs and\r
61 >>> notmuch-cli so this batch makes emacs fail with an error message if\r
62 >>> --batch is not available in the CLI.\r
63 >>> ---\r
64 >>> There have been two cases on irc of people getting backtraces when\r
65 >>> hitting this problem so it might be worth adding an informative error\r
66 >>> message.\r
67 >>\r
68 >> This change takes care of the mismatching version problem now -- for\r
69 >> a short while in most cases but in the future we might face with new\r
70 >> incompabilities that would -- again -- need new solution. Some day\r
71 >> we might have a pile of these who everyone is shy to remove from the\r
72 >> code base ;/\r
73 >\r
74 > I think we want the unless clause anyway: we do not want to try parsing\r
75 > something and getting stacktrace errors whatever happens. The error\r
76 > message will need updating so I should probably add a FIXME to the\r
77 > code. Perhaps the patch roughly as is could be applied to 0.16 and the\r
78 > fixed error message together with your ideas from below to master?\r
79 \r
80 Like said below (even) the current ok by me -- just that whatever is\r
81 chosen will be there into foreseeable future... ;)\r
82 \r
83 >> Although I am not against applying this patch (if there are supporters\r
84 >> of this) I'd like to concentrate fixing this for example the following\r
85 >> way:\r
86 >\r
87 > This looks good. Some thoughts below.\r
88 >\r
89 >> We'll add a global option to notmuch, e.g.\r
90 >>\r
91 >> --compatibility-version=x.y\r
92 >>\r
93 >> Whenever the caller chooses to use this option, notmuch checks whether\r
94 >> it can comply with the option -- it it can, execution continues, otherwise \r
95 >> aborts.\r
96 >\r
97 > I think the return value could indicate what the problem was (ie too new\r
98 > or too old): so frontends could decide to work around it (perhaps 22 and\r
99 > 23 to come after the format-version return values). This would mean that\r
100 > callers would have an easier way of telling if --compatability-version\r
101 > is supported at all to ease the transition.\r
102 >\r
103 > I wondered whether it overlapped with Austin's format-version stuff but\r
104 > I think it is sufficiently different but some clear documentation as to\r
105 > which means what could be helpful.\r
106 \r
107 Yes, I had Austin's format-version options into mind when quickly drafting\r
108 the suggestion (we'd use the same 21&22 (or whatever) return values too...)\r
109 \r
110 Now that I spend a week with only N9 as a computing device I've also\r
111 thought how much of a maintenance burden we want to take with this...\r
112 ... and thought as an alternative that during byte compilation of emacs\r
113 files we pick notmuch cli version to the .elc files -- and just popup\r
114 a warning message (on first notmuch-hello invocation) if the versions \r
115 differ...\r
116 \r
117 I'll investigate what kind of emacs macro functionality could be used\r
118 to do this (more fun than solving sudoku's that is :D)\r
119 \r
120 > Best wishes\r
121 >\r
122 > Mark\r
123 \r
124 Tomi\r
125 \r
126 \r
127 >\r
128 >> The compatibility is determined so that the major 'x' needs to be same\r
129 >> and caller may have lower 'y' that notmuch is capable of handling.\r
130 >>\r
131 >> For example. if notmuch compatibility version was 2.5\r
132 >>\r
133 >> --compatibility-version=1.9  --  abort\r
134 >> --compatibility-version=2.3  --  continue\r
135 >> --compatibility-version=2.5  --  continue\r
136 >> --compatibility-version=2.8  --  abort\r
137 >> --compatibility-version=3.1  --  abort\r
138 >>\r
139 >>\r
140 >> I can work on this (or on something similar) if this is generally thought\r
141 >> as a good idea...\r
142 >>\r
143 >>>\r
144 >>> Best wishes\r
145 >>>\r
146 >>> Mark\r
147 >>\r
148 >> Tomi\r
149 >>\r
150 >>\r
151 >>>\r
152 >>>  emacs/notmuch-hello.el |    9 +++++++--\r
153 >>>  1 files changed, 7 insertions(+), 2 deletions(-)\r
154 >>>\r
155 >>> diff --git a/emacs/notmuch-hello.el b/emacs/notmuch-hello.el\r
156 >>> index 147c08c..fa46b7a 100644\r
157 >>> --- a/emacs/notmuch-hello.el\r
158 >>> +++ b/emacs/notmuch-hello.el\r
159 >>> @@ -402,8 +402,13 @@ options will be handled as specified for\r
160 >>>                                        (plist-get options :filter)))\r
161 >>>      "\n")))\r
162 >>>  \r
163 >>> -    (call-process-region (point-min) (point-max) notmuch-command\r
164 >>> -                    t t nil "count" "--batch")\r
165 >>> +    (unless (= (call-process-region (point-min) (point-max) notmuch-command\r
166 >>> +                               t t nil "count" "--batch") 0)\r
167 >>> +      (notmuch-logged-error "notmuch CLI version mismatch error (count --batch)\r
168 >>> +The most likely cause of this error is that the CLI is too old\r
169 >>> +to support count --batch and needs to be upgraded to the same\r
170 >>> +version as notmuch-emacs"))\r
171 >>> +\r
172 >>>      (goto-char (point-min))\r
173 >>>  \r
174 >>>      (notmuch-remove-if-not\r
175 >>> -- \r
176 >>> 1.7.9.1\r
177 >>>\r
178 >>> _______________________________________________\r
179 >>> notmuch mailing list\r
180 >>> notmuch@notmuchmail.org\r
181 >>> http://notmuchmail.org/mailman/listinfo/notmuch\r
182 > _______________________________________________\r
183 > notmuch mailing list\r
184 > notmuch@notmuchmail.org\r
185 > http://notmuchmail.org/mailman/listinfo/notmuch\r