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