]> git.cworth.org Git - notmuch-wiki/blob - news/release-0.4.mdwn
news updated by newssplit.pl tool
[notmuch-wiki] / news / release-0.4.mdwn
1 [[!meta date="2010-11-01"]]
2
3 Notmuch 0.4 (2010-11-01)
4 ========================
5 New command-line features
6 -------------------------
7 notmuch search --output=(summary|threads|messages|tags|files)
8
9   This new option allows for particular items to be returned from
10   notmuch searches. The "summary" option is the default and behaves
11   just as "notmuch search" has historically behaved.
12
13   The new option values allow for thread IDs, message IDs, lists of
14   tags, and lists of filenames to be returned from searches. It is
15   expected that this new option will be very useful in shell
16   scripts. For example:
17
18         for file in $(notmuch search --output=files <search-terms>); do
19                 <operations-on> "$file"
20         done
21
22 notmuch show --format=mbox <search-specification>
23
24   This new option allows for the messages matching a search
25   specification to be presented as an mbox. Specifically the "mboxrd"
26   format is used which allows for reversible quoting of lines
27   beginning with "From ". A reader should remove a single '>' from the
28   beginning of all lines beginning with one or more '>' characters
29   followed by the 5 characters "From ".
30
31 notmuch config [get|set] <section>.<item> [value ...]
32
33   The new top-level "config" command allows for any value in the
34   notmuch configuration file to be queried or set to a new value. Both
35   single-valued and multi-valued items are supported, as our any
36   custom items stored in the configuration file.
37
38 Avoid setting Bcc header in "notmuch reply"
39
40   We decided that this was a bit heavy-handed as the actual mail
41   user-agent should be responsible for setting any Bcc option. Also,
42   see below for the notmuch/emacs user-agent now setting an Fcc by
43   default rather than Bcc.
44
45 New library features
46 --------------------
47 Add notmuch\_query\_get\_query\_string and notmuch\_query\_get\_sort
48
49   These are simply functions for querying properties of a
50   notmuch\_query\_t object.
51
52 New emacs features
53 ------------------
54 Enable Fcc of all sent messages by default (to "sent" directory)
55
56   All messages sent from the emacs interface will now be saved to the
57   notmuch mail store where they will be incorporated to the database
58   by the next "notmuch new". By default, messages are saved to the
59   "sent" directory at the top-level of the mail store. This directory
60   can be customized by means of the "Notmuch Fcc Dirs" option in the
61   notmuch customize interface.
62
63 Ability to all open messages in a thread to a pipe
64
65   Historically, the '|' keybinding allows for piping a single message
66   to an external command. Now, by prefixing this key with a prefix
67   argument, (for example, by pressing "Control-U |"), all open
68   messages in the current thread will be sent to the external command.
69
70 Optional support for detecting inline patches
71
72   This hook is disabled by default but can be enabled with a checkbox
73   under "Notmuch Show Insert Text/Plain Hook" in the notmuch customize
74   interface. It allows for inline patches to be detected and treated
75   as if they were attachments, (with context-sensitive highlighting).
76
77 Automatically tag messages as "replied" when sending a reply
78
79   Messages replied to within the emacs interface will now be tagged as
80   "replied". This feature can easily be customized to add or remove
81   other tags as well. For example, a user might use a tag of
82   "needs-reply" and can configure this feature to automatically remove
83   that tag when replying. See "Notmuch Message Mark Replied" in the
84   notmuch customize interface.
85
86 Allow search-result color specifications to overlay each other
87
88   For example, one tag can specify the background color of matching
89   lines, while another can specify the foreground. With this change,
90   both settings will now be visible simultaneously, (which was not the
91   case in previous releases). See "Notmuch Search Line Faces" in the
92   notmuch customize interface.
93
94 Make hidden author names still available for incremental search.
95
96   When there is insufficient space to display all authors of a thread
97   in search results, the names of hidden authors are now still made
98   available to emacs' incremental search commands. As the user
99   searches, matching lines will temporarily expand to show the hidden
100   names.
101
102 New binding of Control-TAB (works like TAB in reverse)
103
104   Many notmuch nodes already use TAB to navigate forward through
105   various items allowing actions, (message headers, email attachments,
106   etc.). The new Control-TAB binding operates similarly but in the
107   opposite direction.
108
109 New build-system features
110 -------------------------
111 Various portability fixes have been applied
112
113   These include fixes for build failures on at least Solaris, FreeBSD,
114   and Fedora systems. We're hopeful that the notmuch code base is now
115   more portable than ever before.
116
117 Arrange for libnotmuch to be found automatically after make install
118
119   The notmuch build system is now careful to help the user avoid
120   errors of the form "libnotmuch.so could not be found" immediately
121   after installing. This support takes two forms:
122
123         1. If the library is installed to a system directory,
124            (configured in /etc/ld.so.conf), then "make install" will
125            automatically run ldconfig.
126
127         2. If the library is installed to a non-system directory, the
128            build system adds a DR_RUNPATH entry to the final binary
129            pointing to the directory to which the library is installed.
130
131   When this support works, the user should be able to run notmuch
132   immediately after "make install", without any errors trying to find
133   the notmuch library, and without having to manually set environment
134   variables such as LD\_LIBRARY\_PATH.
135
136 Check compiler/linker options before using them
137
138   The configure script now carefully checks that any desired
139   compilation options, (whether for enabling compiler warnings, or for
140   embedding rpath, etc.), are supported. Only supported options are
141   used in the resulting Makefile.
142
143 New test-suite features
144 -----------------------
145 New modularization of test suite.
146
147   Thanks to a gracious relicensing of the test-suite infrastructure
148   from the git project, notmuch now has a modular test suite. This
149   provides the ability to run individual sections of the test suite
150   rather than the whole things. It also provides better summary of
151   test results, with support for tests that are expected to fail
152   (BROKEN and FIXED) in addition to PASS and FAIL. Finally, it makes
153   it easy to run the test suite within valgrind (pass --valgrind to
154   notmuch-test or to any sub-script) which has been very useful.
155
156 New testing of emacs interface.
157
158   The test suite has been augmented to allow automated testing of the
159   emacs interfaces. So far, this includes basic searches, display of
160   threads, and tag manipulation. This also includes a test that a new
161   message can successfully be sent out through a (dummy) SMTP server
162   and that said message is successfully integrated into the notmuch
163   database via the FCC setting.
164
165 General bug fixes
166 -----------------
167 Fix potential corruption of database when "notmuch new " is interrupted.
168
169   Previously, an interruption of "notmuch new" would (rarely) result
170   in a corrupt database. The corruption would manifest itself by a
171   persistent error of the form:
172
173         document ID of 1234 has no thread ID
174
175   The message-adding code has been carefully audited and reworked to
176   avoid this sort of corruption regardless of when it is interrupted.
177
178 Fix failure with extremely long message ID headers.
179
180   Previously, a message with an extremely long message ID, (say, more
181   than 300 characters), would fail to be added to notmuch, (triggering
182   Xapian exceptions). This has now been fixed.
183
184 Fix for messages with "charset=unknown-8bit"
185
186   Previously, messages with this charset would cause notmuch to emit a
187   GMime warning, (which would then trip up emacs or other interfaces
188   parsing the notmuch results).
189
190 Fix notmuch\_query\_search\_threads function to return NULL on any exception
191
192 Fix "notmuch search" to return non-zero if notmuch\_query\_search\_threads fails
193
194   Previously, this command could confusingly report a Xapian
195   exception, yet still return an error code of 0. It now correctly
196   returns a failing error code of 1 in this case.
197
198 Emacs bug fixes
199 ---------------
200 Fix to handle a message with a subject containing, for example "[1234]"
201
202   Previously, a message subject containing a sequence of digits within
203   square brackets would cause the emacs interface to mis-parse the
204   output of "notmuch search". This would result in the message being
205   mis-displayed and prevent the user from manipulating the message in
206   the emacs interface.
207
208 Fix to correctly handle message IDs containing ".."
209
210   The emacs interface now properly quotes message IDs to avoid a
211   Xapian bug in which the ".." within a message ID would be
212   misinterpreted as a numeric range specification.
213
214 Python-binding fixes
215 --------------------
216 The python bindings for notmuch have been updated to work with python3.
217
218 Debian-specific fixes
219 ---------------------
220 Fix emacs initialization so "M-x notmuch" works for users by default.
221
222   Now, a new Debian user can immediately run "emacs -f notmuch" after
223   "apt-get install notmuch". Previously, the user would have had to
224   edit the ~/.emacs file to add "(require 'notmuch)" before this would
225   work.