]> git.notmuchmail.org Git - notmuch/blob - NEWS
e57e9708a26826f5c854a4e28ca0185a7e446985
[notmuch] / NEWS
1 Notmuch 0.11.1 (2012-02-03)
2 ===========================
3
4 Bug-fix release.
5 ----------------
6
7 Fix error handling in python bindings.
8
9   The python bindings in 0.11 failed to detect NULL pointers being
10   returned from libnotmuch functions and thus failed to raise
11   exceptions to indicate the error condition. Any subsequent calls
12   into libnotmuch caused segmentation faults.
13
14 Quote MML tags in replies
15
16   MML tags are text codes that Emacs uses to indicate attachments
17   (among other things) in messages being composed.  The Emacs
18   interface did not quote MML tags in the quoted text of a reply.
19   User could be tricked into replying to a maliciously formatted
20   message and not editing out the MML tags from the quoted text.  This
21   could lead to files from the user's machine being attached to the
22   outgoing message.  The Emacs interface now quotes these tags in
23   reply text, so that they do not effect outgoing messages.
24
25
26 Notmuch 0.11 (2012-01-13)
27 =========================
28
29 Command-Line Interface
30 ----------------------
31
32 Hooks
33
34   Hooks have been introduced to notmuch. Hooks are scripts that notmuch
35   invokes before and after certain actions. Initially, "notmuch new"
36   supports "pre-new" and "post-new" hooks that are run before and after
37   importing new messages into the database.
38
39 notmuch reply --decrypt bugfix
40
41   The "notmuch reply" command with --decrypt argument had a rarely
42   occurring bug that caused an encrypted message not to be decrypted
43   sometimes. This is now fixed.
44
45 Performance
46 -----------
47
48 Automatic tag query optimization
49
50   "notmuch tag" now automatically optimizes the user's query to
51   exclude messages whose tags won't change.  In the past, we've
52   suggested that people do this by hand; this is no longer necessary.
53
54 Don't sort messages when creating a dump file
55
56   This speeds up tag dumps considerably, without any loss of
57   information. To replicate the old behavior of sorted output (for
58   example to compare two dump files), one can use e.g. sort(1).
59
60 Memory Management
61 -----------------
62
63 Reduction of memory leaks
64
65   Two memory leaks when searching and showing messages were identified
66   and fixed in this release.
67
68 Emacs Interface
69 ---------------
70
71 Bug fixes
72
73   notmuch-show-advance (bound to the spacebar in notmuch-show-mode) had
74   a bug that caused it to always jump to the next message, even if it
75   should have scrolled down to show more of the current message instead.
76   This is now fixed.
77
78 Support "notmuch new" as a notmuch-poll-script
79
80   It's now possible to use "notmuch new" as a notmuch-poll-script
81   directly. This is also the new default. This allows taking better
82   advantage of the "notmuch new" hooks from emacs without intermediate
83   scripts.
84
85 Improvements in saved search management
86
87   New saved searches are now appended to the list of saved searches,
88   not inserted in front. It's also possible to define a sort function
89   for displaying saved searches; alphabetical sort is provided.
90
91 Hooks for notmuch-hello
92
93   Two new hooks have been added: "notmuch-hello-mode-hook" (called after
94   entering notmuch-hello-mode) and "notmuch-hello-refresh-hook" (called
95   after updating a notmuch-hello buffer).
96
97 New face for crypto parts headers
98
99   Crypto parts used to be displayed with a hardcoded color. A new face
100   has been introduced to fix this: notmuch-crypto-part-header. It
101   defaults to the same value as before, but can be customized to match
102   other color themes.
103
104 Use space as default thousands separator
105
106   Large numbers in notmuch-hello are now displayed using a space as
107   thousands separator (e.g. "123 456" instead of "123,456"). This can be
108   changed by customizing "notmuch-hello-thousands-separator".
109
110 Call notmuch-show instead of notmuch-search when clicking on
111 buttonized id: links.
112
113 New function notmuch-show-advance
114
115   This new function advances through just the current thread, and is
116   less invasive than notmuch-show-advance-and-archive.  It can easily
117   be bound to SPC with:
118
119   (define-key notmuch-show-mode-map " " 'notmuch-show-advance)
120
121 Various performance improvements.
122
123 New add-on tool
124 ---------------
125
126 The tool contrib/notmuch-deliver helps with initial delivery and
127 tagging of mail (replacing running notmuch new).
128
129
130 Notmuch 0.10.2 (2011-12-04)
131 ===========================
132
133 Bug-fix release.
134 ----------------
135
136 Fix crash in python bindings.
137
138     The python bindings did not call g_type_init, which caused crashes
139     for some, but not all users.
140
141 Notmuch 0.10.1 (2011-11-25)
142 ===========================
143
144 Bug-fix release.
145 ----------------
146
147 Fix --help argument
148
149   Argument processing changes in 0.10 introduced a bug where "notmuch
150   --help" crashed while "notmuch help" worked fine. This is fixed in
151   0.10.1.
152
153 Notmuch 0.10 (2011-11-23)
154 =========================
155
156 New build and testing features
157 ------------------------------
158
159 Emacs tests are now done in dtach. This means that dtach  is now
160 needed to run the notmuch test suite, at least until the checking for
161 prerequisites is improved.
162
163 Full test coverage of the stashing feature in Emacs.
164
165 New command-line features
166 -------------------------
167
168 Add "notmuch restore --accumulate" option
169
170   The --accumulate switch causes the union of the existing and new tags to be
171   applied, instead of replacing each message's tags as they are read in from
172   the dump file.
173
174 Add search terms to  "notmuch dump"
175
176   The dump command now takes an optional search term much like notmuch
177   search/show/tag. The output file argument of dump is deprecated in
178   favour of using stdout.
179
180 Add "notmuch search" --offset and --limit options
181
182   The search command now takes options --offset=[-]N and --limit=N to limit
183   the number of results shown.
184
185 Add "notmuch count --output" option
186
187   The count command is now capable of counting threads in addition to
188   messages. This is selected using the new --output=(threads|messages) option.
189
190 New emacs UI features
191 ---------------------
192
193 Add tab-completion for notmuch-search and notmuch-search-filter
194
195   These functions now support completion tags for query parts
196   starting with "tag:".
197
198 Turn "id:MSG-ID" links into buttons associated with notmuch searches
199
200   Text of the form "id:MSG-ID" in mails is now a clickable button that
201   opens a notmuch search for the given message id.
202
203 Add keybinding ('c I') for stashing Message-ID's without an id: prefix
204
205   Reduces manual labour when stashing them for use outside notmuch.
206
207 Do not query on notmuch-search exit
208
209    It is harmless to kill the external notmuch process, so the user
210    is no longer interrogated when they interrupt a search.
211
212 Performance
213 -----------
214
215 Emacs now constructs large search buffers more efficiently
216
217 Search avoids opening and parsing message files
218
219   We now store more information in the database so search no longer
220   has to open every message file to get basic headers.  This can
221   improve search speed by as much as 10X, but taking advantage of this
222   requires a database rebuild:
223
224         notmuch dump > notmuch.dump
225         # Backup, then remove notmuch database ($MAIL/.notmuch)
226         notmuch new
227         notmuch restore notmuch.dump
228
229 New collection of add-on tools
230 ------------------------------
231
232 The source directory "contrib" contains tools built on notmuch.  These
233 tools are not part of notmuch, and you should check their individual
234 licenses.  Feel free to report problems with them to the notmuch
235 mailing list.
236
237 nmbug - share tags with a given prefix
238
239    nmbug helps maintain a git repo containing all tags with a given
240    prefix (by default "notmuch::"). Tags can be shared by commiting
241    them to git in one location and restoring in another.
242
243 Notmuch 0.9 (2011-10-01)
244 ========================
245
246 New, general features
247 ---------------------
248
249 Correct handling of interruptions during "notmuch new"
250
251   "notmuch new" now operates as a series of small, self-consistent
252   transactions, so it can correctly resume after an interruption or
253   crash.  Previously, interruption could lose existing tags, fail to
254   detect messages on resume, or leave the database in a state
255   temporarily or permanently inconsistent with the mail store.
256
257 Library changes
258 ---------------
259
260 New functions
261
262   notmuch_database_begin_atomic and notmuch_database_end_atomic allow
263   multiple database operations to be performed atomically.
264
265   notmuch_database_find_message_by_filename does exactly what it says.
266
267 API changes
268
269   notmuch_database_find_message (and n_d_f_m_by_filename) now return
270   a status indicator and uses an output parameter for the
271   message. This change required changing the SONAME of libnotmuch to
272   libnotmuch.so.2
273
274 Python bindings changes
275 -----------------------
276
277   - Re-encode python unicode objects to utf-8 before passing back to
278     libnotmuch.
279   - Support Database().begin_atomic()/end_atomic()
280   - Support Database().find_message_by_filename()
281     NB! This needs a db opened in READ-WRITE mode currently, or it will crash
282     the python process. The is a limitation (=bug) of the underlying libnotmuch.
283   - Fixes where we would not throw NotmuchErrors when we should (Justus Winter)
284   - Update for n_d_find_message* API changes (see above).
285
286 Ruby bindings changes
287 ---------------------
288
289   - Wrap new library functions notmuch_database_{begin,end}_atomic.
290   - Add new exception Notmuch::UnbalancedAtomicError.
291   - Rename destroy  to destroy! according to Ruby naming conventions.
292   - Update for n_d_find_message* API changes (see above).
293
294 Emacs improvements
295 ------------------
296
297   * Add gpg callback to crypto sigstatus buttons to retrieve/refresh
298     signing key.
299   * Add notmuch-show-refresh-view function (and corresponding binding)
300     to refresh the view of a notmuch-show buffer.
301
302 Reply formatting cleanup
303 ------------------------
304
305   "notmuch reply" no longer includes notification that non-leafnode
306   MIME parts are being suppressed.
307
308 Notmuch 0.8 (2011-09-10)
309 ========================
310
311 Improved handling of message/rfc822 parts
312
313   Both in the CLI and the emacs interface.  Output of rfc822 parts now
314   includes the primary headers, as well as the body and all subparts.
315   Output of the completely raw rfc822-formatted message, including all
316   headers, is unfortunately not yet supported (but hopefully will be
317   soon).
318
319 Improved Build system portability
320
321   Certain parts of the shell script generating notmuch.sym were
322   specific to the GNU versions of sed and nm. The new version should
323   be more portable to e.g. OpenBSD.
324
325 Documentation update for Ruby bindings
326
327   Added documentation, typo fixes, and improved support for rdoc.
328
329 Unicode, iterator, PEP8 changes for python bindings
330
331   - PEP8 (code formatting) changes for python files.
332   - Remove Tags.__len__ ; see 0.6 release notes for motivation.
333   - Decode headers as UTF8, encode (unicode) database paths as UTF8.
334
335 Notmuch 0.7 (2011-08-01)
336 ========================
337
338 Vim interface improvements
339 --------------------------
340
341 Jason Woofenden provided a number of bug fixes for the Vim interface
342
343   * fix citation/signature fold lengths
344   * fix cig/cit parsing within multipart/*
345   * fix on-screen instructions for show-signature
346   * fix from list reformatting in search view
347   * fix space key: now archives (did opposite)
348
349 Uwe Kleine-König contributed
350
351   * use full path for sendmail/doc fix
352   * fix compose temp file name
353
354 Python Bindings changes
355 -----------------------
356
357 Sebastian Spaeth contributed two changes related to unicode and UTF8:
358
359   * message tags are now explicitly unicode
360   * query string is encoded as a UTF8 byte string
361
362 Build-System improvements
363 ------------------------
364
365 Generate notmuch.sym after the relevant object files
366
367   This fixes a bug in parallel building. Thanks to Thomas Jost for the
368   patch.
369
370 Notmuch 0.6.1 (2011-07-17)
371 ==========================
372
373 Bug-fix release.
374 ----------------
375
376 Re-export Xapian exception typeinfo symbols.
377
378   It turned out our aggressive symbol hiding caused problems for
379   people running gcc 4.4.5.
380
381 Notmuch 0.6 (2011-07-01)
382 =======================
383 New, general features
384 ---------------------
385 Folder-based searching
386
387   Notmuch queries can now include a search term to match the
388   directories in which mail files are stored (within the mail
389   storage). The syntax is as follows:
390
391         folder:<path>
392
393   For example, one might use things such as:
394
395         folder:spam
396         folder:2011-*
397         folder:work/todo
398
399   to match any path containing a directory "spam", "work/todo", or
400   containing a directory starting with "2011-", respectively.
401
402   This feature is particularly useful for users of delivery-agent
403   software (such as procmail or maildrop) that is filtering mail and
404   delivering it to particular folders, or users of systems such as
405   Gmail that use filesystem directories to indicate message tags.
406
407   NOTE: Only messages that are newly indexed with this version of
408   notmuch will be searchable with folder: terms. In order to enable
409   this feature for all mail, the entire notmuch index will need to be
410   rebuilt as follows:
411
412         notmuch dump > notmuch.dump
413         # Backup, then remove notmuch database ($MAIL/.notmuch)
414         notmuch new
415         notmuch restore notmuch.dump
416
417 Support for PGP/MIME
418
419   Both the command line interface and the emacs-interface have new
420   support for PGP/MIME, detailed below. Thanks to Daniel Kahn Gillmor
421   and Jameson Graef Rollins for making this happen.
422
423 New, automatic tags: "signed" and "encrypted"
424
425   These tags will automatically be applied to messages containing
426   multipart/signed and multipart/encrypted parts.
427
428   NOTE: Only messages that are newly indexed with this version of
429   notmuch will receive these tags.
430
431 New command-line features
432 -------------------------
433 Add new "notmuch show --verify" option for signature verification
434
435   This option instruct notmuch to verify the signature of
436   PGP/MIME-signed parts.
437
438 Add new "notmuch show --decrypt" and "notmuch reply --decrypt" options
439
440   This option instructs notmuch to decrypt PGP/MIME-encrypted parts.
441   Note that this feature currently requires gpg-agent and a passphrase entry
442   tool (e.g. pinentry-gtk or pinentry-curses).
443
444 Proper nesting of multipart parts in "notmuch show" output
445
446   MIME parts are now display with proper nesting to reflect original
447   MIME hierarchy of a message. This allows clients to correctly
448   analyze the MIME structure, (such as, for example, determining to
449   which parts a signature part applies).
450
451 Add new "notmuch show --part" option
452
453   This is a replacement for the older "notmuch part" command, (which
454   is now deprecated—it should still work as always, but is no longer
455   documented). Putting part output under "notmuch show" allows for all
456   of the "notmuch show" options to be applied when extracting a single
457   part, (such as --format=json for extracting a message part with JSON
458   formatting).
459
460 Deprecate "notmuch search-tags", (in favor of "notmuch search --output=tags *")
461
462   The "notmuch search-tags" sub-command has been redundant since the
463   addition of the --output=tags option to "notmuch search". We now
464   make that more clear by deprecating "notmuch search-tags", (dropping
465   it from the documentation). We do continue to support the old syntax
466   by translating it internally to the new call.
467
468 Performance improvements
469 ------------------------
470 Faster searches (by doing fewer searches to construct threads)
471
472   Whenever a user asks for search results as threads, notmuch first
473   performs a search for messages matching the query, then performs
474   additional searches to find other messages in the resulting threads.
475
476   Removing inefficiencies and redundancies in these secondary searches
477   results in a measured speedups of 1.5x for a typical search.
478
479 Faster searches (by doing fewer passes to gather message data)
480
481   Optimizing Xapian data access patterns (using a single pass to get
482   all message-document data rather than a pass for each data type)
483   results in a measured speedup of 1.7x for a typical search.
484
485   The benefits of this optimization combine with the preceding
486   optimization. With both in place, Austin Clements measured a speedup
487   of 2.5x for a search of all messages in his inbox (was 4.5s, now
488   1.8s). Thanks, Austin!
489
490 Faster initial indexing
491
492   More efficient indexing of new messages results in a measured
493   speedup of 1.4x for the initial indexing of 3 GB of mail (1h 14m
494   rather than 1h 46m). Thanks to Austin Clements and Michal Sojka.
495
496 Make "notmuch new" faster for unchanged directories
497
498   Optimizing to not do any further examinations of sub-directories
499   when the filesystem indicates that a directory is unchanged from the
500   last "notmuch new" results in measured speedups of 8.5 for the "No
501   new mail" case, (was 0.77s, now 0.09s). Thanks to Karel Zak.
502
503 New emacs-interface features
504 ----------------------------
505
506 Support for PGP/MIME (GnuPG)
507
508   Automatically indicate validity of signatures for multipart/signed
509   messages.  Automatically display decrypted content for
510   multipart/encrypted messages.  See the emacs variable
511   notmuch-crypto-process-mime for more information. Note that this
512   needs gpg-agent and a pinentry tool just as the command line tools.
513   Also note there is no support SMIME yet.
514
515 Output of pipe command is now displayed if pipe command fails
516
517   This is extremely useful in the common use case of piping a patch to
518   "git am". If git fails to cleanly merge the patch the error messages
519   from the failed merge are now clearly displayed to the user, (where
520   previously they were silently hidden from the user).
521
522 User-selectable From address
523
524   A user can choose which configured email addresses should be used as
525   the From address whenever composing a new message. To do so, simply
526   press C-u before the command which will open a new message. Emacs
527   will prompt for the from address to use.
528
529   The user can customize the "Notmuch Identities" setting in the
530   notmuch customize group in order to use addresses other than those in
531   the notmuch configuration file if desired.
532
533   The user can also choose to always be prompted for the from address
534   when composing a new message (without having to use C-u) by setting
535   the "Notmuch Always Prompt For Sender" option in the notmuch
536   customize group.
537
538 Hiding of repeated subjects in collapsed thread view
539
540   In notmuch-show mode, if a collapsed message has the same subject as
541   its parent, the subject is not shown.
542
543 Automatic detection and hiding of original message in top-posted message
544
545   When a message contains a line looking something like:
546
547         ----- Original Message -----
548
549   emacs hides this and all subsequent lines as an "original message",
550   (allowing the user to click or press enter on the "original message"
551   button to display it again). This makes the handling of top-posted
552   citations work much like conventional citations.
553
554 New hooks for running code when tags are modified
555
556   Some users want to perform additional actions whenever a particular
557   tag is added/removed from a message. This could be used to, for
558   example, interface with some external spam-recognition training
559   tool. To facilitate this, two new hooks are added which can be
560   modified in the following settings of the notmuch customize group:
561
562         Notmuch Before Tag Hook
563         Notmuch After Tag Hook
564
565 New optional support for hiding some multipart/alternative parts
566
567   Many emails are sent with redundant content within a
568   multipart/alternative group (such as a text/plain part as well as a
569   text/html part). Users can configure the setting:
570
571         Notmuch Show All Multipart/Alternative Parts
572
573   to "off" in the notmuch customize group to have the interface
574   automatically hide some part alternatives (such as text/html
575   parts). This new part hiding is not configured by default yet
576   because there's not yet a simple way to re-display such a hidden
577   part if it is not actually redundant with a displayed part.
578
579 Better rendering of text/x-vcalendar parts
580
581   These parts are now displayed in a format suitable for use with the
582   emacs diary.
583
584 Avoid getting confused by Subject and Author fields with newline characters
585
586   Replacing all characters with ASCII code less than 32 with a question mark.
587
588 Cleaner display of From line in email messages (remove double quotes,
589 and drop "name" if it's actually just a repeat of the email address).
590
591 Vim interface improvements
592 --------------------------
593 Felipe Contreras provided a number of updates for the vim interface:
594
595   * Using sendmail directly rather than mailx,
596   * Implementing archive in show view
597   * Add support to mark as read in show and search views
598   * Add delete commands
599   * Various cleanups.
600
601 Bindings improvements
602 ---------------------
603 Ruby bindings are now much more complete
604
605   Including QUERY.sort, QUERY.to_s, MESSAGE.maildir_flags_to_tags,
606   MESSAGE.tags_to_maildir_flags, and MESSAGE.get_filenames
607
608 * Python bindings have been updated and extended
609   (docs online at http://packages.python.org/notmuch/)
610
611   New bindings:
612   - Message().get_filenames(),
613   - Message().tags_to_maildir_flags(),Message().maildir_flags_to_tags()
614   - list(Threads()) and list(Messages) works now
615
616   - Message().__cmp__() and __hash__()
617   These allow, for example:
618         if msg1 == msg2: ...
619
620   As well as set arithmetic on Messages():
621
622         s1, s2= set(msgs1), set(msgs2)
623         s1.union(s2)
624         s2 -= s1
625
626    Removed:
627      - len(Messages()) as it exhausted the iterator.
628        Use len(list(Messages())) or
629        Query.count_messages() to get the length.
630
631 Added initial Go bindings in bindings/go
632
633 New build-system features
634 -------------------------
635 Added support for building in a directory other than the source directory
636
637   This can be used with the widely-supported idiom of simply running
638   the configure script from some other directory:
639
640         mkdir build
641         cd build
642         ../configure
643         make
644
645 Fix to save configure options for future, implicit runs of configure
646
647   When a user updates the source (such as with "git pull") calling
648   "make" may cause an automatic re-run of the configure script. When
649   this happens, the configure script will automatically be called with
650   the same options the user originally passed in the most-recent
651   manual invocation of configure.
652
653 New test-suite feature
654 ----------------------
655 Binary for bash for running test suite now located via PATH.
656
657   The notmuch test suite requires a fairly recent version of bash (>=
658   bash 4). As some systems supply an older version of bash at
659   /bin/bash, the test suite is now updated to search $PATH to locate
660   the bash binary. This allows users of systems with old /bin/bash to
661   simply install bash >= 4 somewhere on $PATH before /bin and then use
662   the test suite.
663
664 Support for testing output with a trailing newline.
665
666   Previously, some tests would fail to notice a difference in the
667   presence/absence of a trailing newline in a program output, (which
668   has led to bugs in the past). Now, carefully-written tests (using
669   test_expect_equal_file rather than test_expect_equal) will detect
670   any change in the presence/absence of a trailing newline. Many tests
671   are updated to take advantage of this.
672
673 Avoiding accessing user's $HOME while running test suite
674
675   The test suite now carefully creates its own HOME directory. This
676   allows the test suite to be run with no existing HOME directory, (as
677   some build systems apparently do), and avoids test-suite differences
678   due to configuration files in the users HOME directory.
679
680
681 General bug fixes
682 -----------------
683 Output *all* files for "notmuch search --output=files"
684
685   For the cases where multiple files have the same Message ID,
686   previous versions of notmuch would output only one such file. This
687   command is now fixed to correctly output all files.
688
689 Fixed spurious search results from "overlapped" indexing of addresses
690
691   This fixed a bug where a search for:
692
693         to:user@elsewhere.com
694
695   would incorrectly match a message sent:
696
697         To: user@example,com, someone@elsewhere.com
698
699 Fix --output=json when search has no results
700
701   A bug present since notmuch 0.4 had caused searches with no results
702   to produce an invalid json object. This is now fixed to cleanly
703   return a valid json object representing an empty array "[]" as
704   expected.
705
706 fix the automatic detection of the From address for "notmuch reply"
707 from the Received headers in some cases.
708
709 Fix core dump on DragonFlyBSD due to -1 return value from
710 sysconf(_SC_GETPW_R_SIZE_MAX).
711
712 Cleaned up several memory leaks
713
714 Eliminated a few, rare segmentation faults and a double-free.
715
716 Fix libnotmuch library to only export notmuch API functions
717
718   Previous release of the notmuch library also exported some Xapian
719   C++ exception type symbols. These were never part of the library
720   interface and were never intended to be exported.
721
722 Emacs-interface bug fixes
723 -------------------------
724 Display any unexpected output or errors from "notmuch search" invocations
725
726   Previously any misformatted output or trailing error messages were
727   silently ignored. This output is now clearly displayed. This fix was
728   very helpful in identifying and fixing the bug described below.
729
730 Fix bug where some threads would be missing from large search results
731
732   When a search returned a "large" number of results, the emacs
733   interface was incorrectly dropping one thread every time the output
734   of the "notmuch search" process spanned the emacs read-buffer. This
735   is now fixed.
736
737 Avoid re-compression of .gz files (and similar) when saving attachment
738
739   Emacs was being too clever for its own good and trying to
740   re-compress pre-compressed .gz files when saving such attachments
741   (potentially corrupting the attachment). The emacs interface is
742   fixed to avoid this bug.
743
744 Fix hiding of a message when a previously-hidden citation is visible
745
746   Previously the citation would remain visible in this case. This is
747   fixed so that hiding a message hides all parts.
748
749 Notmuch 0.5 (2010-11-11)
750 ========================
751 New, general features
752 ---------------------
753 Maildir-flag synchronization
754
755   Notmuch now knows how to synchronize flags in maildir filenames with
756   tags in the notmuch database. The following flag/tag mappings are
757   supported:
758
759         Flag <-> Tag
760         ----     -----
761         'D'      draft
762         'F'      flagged
763         'P'      passed
764         'R'      replied
765         'S'      unread (added when 'S' flag is not present)
766
767   The synchronization occurs in both directions, (for example, adding
768   the 'S' flag to a file will cause the "unread" tag to be added, and
769   adding the "replied" tag to a message will cause the file to be
770   renamed with an 'R' flag).
771
772   This synchronization is enabled by default for users of the
773   command-line interface, (though only files in directories named
774   "cur" or "new" will be renamed). It can be disabled by setting the
775   new maildir.synchronize_flags option in the configuration file. For
776   example:
777
778         notmuch config set maildir.synchronize_flags false
779
780   Users upgrading may also want to run "notmuch setup" once (just
781   accept the existing configuration) to get a new, nicely-commented
782   [maildir] section added to the configuration file.
783
784   For users of the notmuch library, the new synchronization
785   functionality is available with the following two new functions:
786
787         notmuch_message_maildir_flags_to_tags
788         notmuch_message_tags_to_maildir_flags
789
790   It is anticipated that future improvements to this support will
791   allow for safe synchronization of the 'T' flag with the "deleted"
792   tag, as well as support for custom flag/tag mappings.
793
794 New library features
795 --------------------
796 Support for querying multiple filenames for a single message
797
798   It is common for the mailstore to contain multiple files with the
799   same message ID. Previously, notmuch would always hide these
800   duplicate files, (returning a single, arbitrary filename with
801   notmuch_message_get_filename).
802
803   With this release, library users can access all filenames for a
804   message with the new function:
805
806         notmuch_message_get_filenames
807
808   Together with notmuch_filenames_valid, notmuch_filenames_get, and
809   notmuch_filenames_move_to_next it is now possible to iterate over
810   all available filenames for a given message.
811
812 New command-line features
813 -------------------------
814 New "notmuch show --format=raw" for getting at original email contents
815
816   This new feature allows for a fully-functional email client to be
817   built on top of the notmuch command-line without needing any direct
818   access to the mail store itself.
819
820   For example, it's now possible to run "emacs -f notmuch" on a local
821   machine with only ssh access to the mail store/notmuch database. To
822   do this, simply set the notmuch-command variable in emacs to the
823   name of a script containing:
824
825         ssh user@host notmuch "$@"
826
827   If the ssh client has enabled connection sharing (ControlMaster
828   option in OpenSSH), the emacs interface can be quite responsive this
829   way.
830
831 General bug fixes
832 -----------------
833 Fix "notmuch search" to print nothing when nothing matches
834
835   The 0.4 release had a bug in which:
836
837         notmuch search <expression-with-no-matches>
838
839   would produce a single blank line of output, (where previous
840   versions would produce no output. This fix also causes a change in
841   the --format=json output, (which would previously produce "[]" and
842   now produces nothing).
843
844 Emacs interface improvements
845 ----------------------------
846 Fix to allow pipe ('|') command to work when using notmuch over ssh
847
848 Fix count of lines in hidden signatures.
849
850 Omit repeated subject lines in (collapsed) thread display.
851
852 Display current thread subject in a header line.
853
854 Provide a "c i" binding to copy a thread ID from the search view.
855
856 Allow for notmuch-fcc-dirs to have a value of nil.
857
858   Also, the more complex form of notmuch-fcc-dirs now has a slightly
859   different format. It no longer has a special first-element, fallback
860   string. Instead it's now a list of cons cells where the car of each
861   cell is a regular expression to be matched against the sender
862   address, and the cdr is the name of a folder to use for an FCC. So
863   the old fallback behavior can be achieved by including a final cell
864   of (".*" . "default-fcc-folder").
865
866 Vim interface improvements
867 --------------------------
868 Felipe Contreras provided a number of updates for the vim interface.
869
870   These include optimizations, support for newer versions of vim, fixed
871   support for sending mail on modern systems, new commands, and
872   various cleanups.
873
874 New bindings
875 ------------
876 Added initial ruby bindings in bindings/ruby
877
878 Notmuch 0.4 (2010-11-01)
879 ========================
880 New command-line features
881 -------------------------
882 notmuch search --output=(summary|threads|messages|tags|files)
883
884   This new option allows for particular items to be returned from
885   notmuch searches. The "summary" option is the default and behaves
886   just as "notmuch search" has historically behaved.
887
888   The new option values allow for thread IDs, message IDs, lists of
889   tags, and lists of filenames to be returned from searches. It is
890   expected that this new option will be very useful in shell
891   scripts. For example:
892
893         for file in $(notmuch search --output=files <search-terms>); do
894                 <operations-on> "$file"
895         done
896
897 notmuch show --format=mbox <search-specification>
898
899   This new option allows for the messages matching a search
900   specification to be presented as an mbox. Specifically the "mboxrd"
901   format is used which allows for reversible quoting of lines
902   beginning with "From ". A reader should remove a single '>' from the
903   beginning of all lines beginning with one or more '>' characters
904   followed by the 5 characters "From ".
905
906 notmuch config [get|set] <section>.<item> [value ...]
907
908   The new top-level "config" command allows for any value in the
909   notmuch configuration file to be queried or set to a new value. Both
910   single-valued and multi-valued items are supported, as our any
911   custom items stored in the configuration file.
912
913 Avoid setting Bcc header in "notmuch reply"
914
915   We decided that this was a bit heavy-handed as the actual mail
916   user-agent should be responsible for setting any Bcc option. Also,
917   see below for the notmuch/emacs user-agent now setting an Fcc by
918   default rather than Bcc.
919
920 New library features
921 --------------------
922 Add notmuch_query_get_query_string and notmuch_query_get_sort
923
924   These are simply functions for querying properties of a
925   notmuch_query_t object.
926
927 New emacs features
928 ------------------
929 Enable Fcc of all sent messages by default (to "sent" directory)
930
931   All messages sent from the emacs interface will now be saved to the
932   notmuch mail store where they will be incorporated to the database
933   by the next "notmuch new". By default, messages are saved to the
934   "sent" directory at the top-level of the mail store. This directory
935   can be customized by means of the "Notmuch Fcc Dirs" option in the
936   notmuch customize interface.
937
938 Ability to all open messages in a thread to a pipe
939
940   Historically, the '|' keybinding allows for piping a single message
941   to an external command. Now, by prefixing this key with a prefix
942   argument, (for example, by pressing "Control-U |"), all open
943   messages in the current thread will be sent to the external command.
944
945 Optional support for detecting inline patches
946
947   This hook is disabled by default but can be enabled with a checkbox
948   under "Notmuch Show Insert Text/Plain Hook" in the notmuch customize
949   interface. It allows for inline patches to be detected and treated
950   as if they were attachments, (with context-sensitive highlighting).
951
952 Automatically tag messages as "replied" when sending a reply
953
954   Messages replied to within the emacs interface will now be tagged as
955   "replied". This feature can easily be customized to add or remove
956   other tags as well. For example, a user might use a tag of
957   "needs-reply" and can configure this feature to automatically remove
958   that tag when replying. See "Notmuch Message Mark Replied" in the
959   notmuch customize interface.
960
961 Allow search-result color specifications to overlay each other
962
963   For example, one tag can specify the background color of matching
964   lines, while another can specify the foreground. With this change,
965   both settings will now be visible simultaneously, (which was not the
966   case in previous releases). See "Notmuch Search Line Faces" in the
967   notmuch customize interface.
968
969 Make hidden author names still available for incremental search.
970
971   When there is insufficient space to display all authors of a thread
972   in search results, the names of hidden authors are now still made
973   available to emacs' incremental search commands. As the user
974   searches, matching lines will temporarily expand to show the hidden
975   names.
976
977 New binding of Control-TAB (works like TAB in reverse)
978
979   Many notmuch nodes already use TAB to navigate forward through
980   various items allowing actions, (message headers, email attachments,
981   etc.). The new Control-TAB binding operates similarly but in the
982   opposite direction.
983
984 New build-system features
985 -------------------------
986 Various portability fixes have been applied
987
988   These include fixes for build failures on at least Solaris, FreeBSD,
989   and Fedora systems. We're hopeful that the notmuch code base is now
990   more portable than ever before.
991
992 Arrange for libnotmuch to be found automatically after make install
993
994   The notmuch build system is now careful to help the user avoid
995   errors of the form "libnotmuch.so could not be found" immediately
996   after installing. This support takes two forms:
997
998         1. If the library is installed to a system directory,
999            (configured in /etc/ld.so.conf), then "make install" will
1000            automatically run ldconfig.
1001
1002         2. If the library is installed to a non-system directory, the
1003            build system adds a DR_RUNPATH entry to the final binary
1004            pointing to the directory to which the library is installed.
1005
1006   When this support works, the user should be able to run notmuch
1007   immediately after "make install", without any errors trying to find
1008   the notmuch library, and without having to manually set environment
1009   variables such as LD_LIBRARY_PATH.
1010
1011 Check compiler/linker options before using them
1012
1013   The configure script now carefully checks that any desired
1014   compilation options, (whether for enabling compiler warnings, or for
1015   embedding rpath, etc.), are supported. Only supported options are
1016   used in the resulting Makefile.
1017
1018 New test-suite features
1019 -----------------------
1020 New modularization of test suite.
1021
1022   Thanks to a gracious relicensing of the test-suite infrastructure
1023   from the git project, notmuch now has a modular test suite. This
1024   provides the ability to run individual sections of the test suite
1025   rather than the whole things. It also provides better summary of
1026   test results, with support for tests that are expected to fail
1027   (BROKEN and FIXED) in addition to PASS and FAIL. Finally, it makes
1028   it easy to run the test suite within valgrind (pass --valgrind to
1029   notmuch-test or to any sub-script) which has been very useful.
1030
1031 New testing of emacs interface.
1032
1033   The test suite has been augmented to allow automated testing of the
1034   emacs interfaces. So far, this includes basic searches, display of
1035   threads, and tag manipulation. This also includes a test that a new
1036   message can successfully be sent out through a (dummy) SMTP server
1037   and that said message is successfully integrated into the notmuch
1038   database via the FCC setting.
1039
1040 General bug fixes
1041 -----------------
1042 Fix potential corruption of database when "notmuch new " is interrupted.
1043
1044   Previously, an interruption of "notmuch new" would (rarely) result
1045   in a corrupt database. The corruption would manifest itself by a
1046   persistent error of the form:
1047
1048         document ID of 1234 has no thread ID
1049
1050   The message-adding code has been carefully audited and reworked to
1051   avoid this sort of corruption regardless of when it is interrupted.
1052
1053 Fix failure with extremely long message ID headers.
1054
1055   Previously, a message with an extremely long message ID, (say, more
1056   than 300 characters), would fail to be added to notmuch, (triggering
1057   Xapian exceptions). This has now been fixed.
1058
1059 Fix for messages with "charset=unknown-8bit"
1060
1061   Previously, messages with this charset would cause notmuch to emit a
1062   GMime warning, (which would then trip up emacs or other interfaces
1063   parsing the notmuch results).
1064
1065 Fix notmuch_query_search_threads function to return NULL on any exception
1066
1067 Fix "notmuch search" to return non-zero if notmuch_query_search_threads fails
1068
1069   Previously, this command could confusingly report a Xapian
1070   exception, yet still return an error code of 0. It now correctly
1071   returns a failing error code of 1 in this case.
1072
1073 Emacs bug fixes
1074 ---------------
1075 Fix to handle a message with a subject containing, for example "[1234]"
1076
1077   Previously, a message subject containing a sequence of digits within
1078   square brackets would cause the emacs interface to mis-parse the
1079   output of "notmuch search". This would result in the message being
1080   mis-displayed and prevent the user from manipulating the message in
1081   the emacs interface.
1082
1083 Fix to correctly handle message IDs containing ".."
1084
1085   The emacs interface now properly quotes message IDs to avoid a
1086   Xapian bug in which the ".." within a message ID would be
1087   misinterpreted as a numeric range specification.
1088
1089 Python-binding fixes
1090 --------------------
1091 The python bindings for notmuch have been updated to work with python3.
1092
1093 Debian-specific fixes
1094 ---------------------
1095 Fix emacs initialization so "M-x notmuch" works for users by default.
1096
1097   Now, a new Debian user can immediately run "emacs -f notmuch" after
1098   "apt-get install notmuch". Previously, the user would have had to
1099   edit the ~/.emacs file to add "(require 'notmuch)" before this would
1100   work.
1101
1102 Notmuch 0.3.1 (2010-04-27)
1103 ==========================
1104 General bug fixes
1105 -----------------
1106 Fix an infinite loop in "notmuch reply"
1107
1108   This bug could be triggered by replying to a message where the
1109   user's primary email address did not appear in the To: header and
1110   the user had not configured any secondary email addresses. The bug
1111   was a simple re-use of the same iterator variable in nested loops.
1112
1113 Fix a potential SEGV in "notmuch search"
1114
1115   This bug could be triggered by an author name ending in a ','.
1116   Admittedly - that's almost certainly a spam email, but we never
1117   want notmuch to crash.
1118
1119 Emacs bug fixes
1120 ---------------
1121 Fix calculations for line wrapping in the primary "notmuch" view.
1122
1123 Fix Fcc support to prompt to create a directory if the specified Fcc
1124 directory does not exist.
1125
1126 Build fix
1127 ---------
1128 Fix build on OpenSolaris (at least) due to missing 'extern "C"' block.
1129
1130   Without this, the C++ sources could not find strcasestr and the
1131   final linking of notmuch would fail.
1132
1133 Notmuch 0.3 (2010-04-27)
1134 ========================
1135 New command-line features
1136 -------------------------
1137 User-configurable tags for new messages
1138
1139   A new "new.tags" option is available in the configuration file to
1140   determine which tags are applied to new messages. Run "notmuch
1141   setup" to generate new documentation within ~/.notmuch-config on how
1142   to specify this value.
1143
1144 Threads search results named based on subjects that match search
1145
1146   This means that when new mails arrived to a thread you've previously
1147   read, and the new mails have a new subject, you will see that
1148   subject in the search results rather than the old subject.
1149
1150 Faster operation of "notmuch tag" (avoid unneeded sorting)
1151
1152   Since the user just wants to tag all matching messages, we can make
1153   things perform a bit faster by avoiding the sort.
1154
1155 Even Better guessing of From: header for "notmuch reply"
1156
1157   Notmuch now looks at a number of headers when trying to figure out
1158   the best From: header to use in a reply. This is helpful if you have
1159   several configured email addresses, and you also subscribe to various
1160   mailing lists with different addresses, (so that mails you are
1161   replying to won't always include your subscribed address in the To:
1162   header).
1163
1164 Indication of author names that match a search
1165
1166   When notmuch displays threads as the result of a search, it now
1167   lists the authors that match the search before listing the other
1168   authors in the thread. It inserts a pipe '|' symbol between the last
1169   matching and first non-matching author. This is especially useful in
1170   a search that includes tag:unread. Now the authors of the unread
1171   messages in the thread are listed first.
1172
1173 New: Python bindings
1174 --------------------
1175 Sebastian Spaeth has contributed his python bindings for the notmuch
1176 library to the central repository. These bindings were previously
1177 known as "cnotmuch" within python but have now been renamed to be
1178 accessible with a simple, and more official-looking "import notmuch".
1179
1180 The bindings have already proven very useful as people proficient in
1181 python have been able to easily develop programs to do notmuch-based
1182 searches for email-address completion, maildir-flag synchronization,
1183 and other tasks.
1184
1185 These bindings are available within the bindings/python directory, but
1186 are not yet integrated into the top-level Makefiles, nor the top-level
1187 package-building scripts. Improvements are welcome.
1188
1189 Emacs interface improvements
1190 ----------------------------
1191 An entirely new initial view for notmuch, (friendly yet powerful)
1192
1193   Some of us call the new view "notmuch hello" but you can get at it
1194   by simply calling "emacs -f notmuch". The new view provides a search
1195   bar where new searches can be performed. It also displays a list of
1196   recent searches, along with a button to save any of these, giving it
1197   a new name as a "saved search". Many people find these "saved
1198   searches" one of the most convenient ways of organizing their mail,
1199   (providing all of the features of "folders" in other mail clients,
1200   but without any of the disadvantages).
1201
1202   Finally, this view can also optionally display all of the tags that
1203   exist in the database, along with a count for each tag, and a custom
1204   search of messages with that tag that's simply a click (or keypress)
1205   away.
1206
1207   Note: For users that liked the original mode of "emacs -f notmuch"
1208         immediately displaying a particular search result, we
1209         recommend instead running something like:
1210
1211                 emacs --eval '(notmuch search "tag:inbox" t)'
1212
1213         The "t" means to sort the messages in an "oldest first" order,
1214         (as notmuch would do previously by default). You can also
1215         leave that off to have your search results in "newest first"
1216         order.
1217
1218 Full-featured "customize" support for configuring notmuch
1219
1220   Notmuch now plugs in well to the emacs "customize" mode to make it
1221   much simpler to find things about the notmuch interface that can be
1222   tweaked by the user.
1223
1224   You can get to this mode by starting at the main "Customize" menu in
1225   emacs, then browsing through "Applications", "Mail", and
1226   "Notmuch". Or you can go straight to "M-x customize-group"
1227   "notmuch".
1228
1229   Once you're at the customize screen, you'll see a list of documented
1230   options that can be manipulated along with checkboxes, drop-down
1231   selectors, and text-entry boxes for configuring the various
1232   settings.
1233
1234 Support for doing tab-completion of email addresses
1235
1236   This support currently relies on an external program,
1237   (notmuch-addresses), that is not yet shipped with notmuch
1238   itself. But multiple, suitable implementations of this program have
1239   already been written that generate address completions by doing
1240   notmuch searches of your email collection. For example, providing
1241   first those addresses that you have composed messages to in the
1242   past, etc.
1243
1244   One such program (implemented in python with the python bindings to
1245   notmuch) is available via:
1246
1247         git clone  http://jkr.acm.jhu.edu/git/notmuch_addresses.git
1248
1249   Install that program as notmuch-addresses on your PATH, and then
1250   hitting TAB on a partial email address or name within the To: or Cc:
1251   line of an email message will provide matching completions.
1252
1253 Support for file-based (Fcc) delivery of sent messages to mail store
1254
1255   This isn't yet enabled by default. To enable this, one will have to
1256   set the "Notmuch Fcc Dirs" setting within the notmuch customize
1257   screen, (see its documentation there for details). We anticipate
1258   making this automatic in a future release.
1259
1260 New 'G' key binding to trigger mail refresh (G == "Get new mail")
1261
1262   The 'G' key works wherever '=' works. Before refreshing the screen
1263   it calls an external program that can be used to poll email servers,
1264   run notmuch new and setup specific tags for the new emails. The
1265   script to be called should be configured with the "Notmuch Poll
1266   Script" setting in the customize interface. This script will
1267   typically invoke "notmuch new" and then perhaps several "notmuch
1268   tag" commands.
1269
1270 Implement emacs message display with the JSON output from notmuch.
1271
1272   This is much more robust than the previous implementation, (where
1273   some HTML mails and mail quoting the notmuch code with the delimiter
1274   characters in it would cause the parser to fall over).
1275
1276 Better handling of HTML messages and MIME attachments (inline images!)
1277
1278   Allow for any MIME parts that emacs can display to be displayed
1279   inline. This includes inline viewing of image attachments, (provided
1280   the window is large enough to fit the image at its natural size).
1281
1282   Much more robust handling of HTML messages. Currently both text/plain
1283   and text/html alternates will be rendered next to each other. In a
1284   future release, users will be able to decide to see only one or the
1285   other representation.
1286
1287   Each attachment now has its own button so that attachments can be
1288   saved individually (the 'w' key is still available to save all
1289   attachments).
1290
1291 Customizable support for tidying of text/plain message content
1292
1293   Many new functions are available for tidying up message
1294   content. These include options such as wrapping long lines,
1295   compressing duplicate blank lines, etc.
1296
1297   Most of these are disabled by default, but can easily be enabled by
1298   clicking the available check boxes under the "Notmuch Show Insert
1299   Text/Plain Hook" within the notmuch customize screen.
1300
1301 New support for searchable citations (even when hidden)
1302
1303   When portions of overly-long citations are hidden, the contents of
1304   these citations will still be available for emacs' standard
1305   "incremental search" functions. When the search matches any portion
1306   of a hidden citation, the citation will become visible temporarily
1307   to display the search result.
1308
1309 More flexible handling of header visibility
1310
1311   As an answer to complaints from many users, the To, Cc, and Date
1312   headers of messages are no longer hidden by default. For those users
1313   that liked that these were hidden, a new "Notmuch Messages Headers
1314   Visible" option in the customize interface can be set to nil. The
1315   visibility of headers can still be toggled on a per-message basis
1316   with the 'h' keybinding.
1317
1318   For users that don't want to see some subset of those headers, the
1319   new "Notmuch Message Headers" variable can be customized to list
1320   only those headers that should be present in the display of a message.
1321
1322 The Return key now toggles message visibility anywhere
1323
1324   Previously this worked only on the first summary-line of a message.
1325
1326 Customizable formatting of search results
1327
1328   The user can easily customize the order, width, and formatting of
1329   the various fields in a "notmuch search" buffer. See the "Notmuch
1330   Search Result Format" section of the customize interface.
1331
1332 Generate nicer names for search buffers when using a saved search.
1333
1334 Add a notmuch User-Agent header when sending mail from notmuch/emacs.
1335
1336 New keybinding (M-Ret) to open all collapsed messages in a thread.
1337
1338 New library feature
1339 -------------------
1340 Provide a new NOTMUCH_SORT_UNSORTED value for queries
1341
1342   This can be somewhat faster when sorting simply isn't desired. For
1343   example when collecting a set of messages that will all be
1344   manipulated identically, (adding a tag, removing a tag, deleting the
1345   messages), then there's no advantage to sorting the messages by
1346   date.
1347
1348 Build fixes
1349 -----------
1350 Fix to compile against GMime 2.6
1351
1352   Previously notmuch insisted on being able to find GMime 2.4, (even
1353   though GMime 2.6 would have worked all along).
1354
1355 Fix configure script to accept (and ignore) various standard options.
1356
1357   For example, those that the Gentoo build scripts expect configure to
1358   accept are now all accepted.
1359
1360 Test suite
1361 ----------
1362 A large number of new tests for the many new features.
1363
1364 Better display of output from failed tests.
1365
1366   Now shows failures with diff rather than forcing the user to gaze at
1367   complete actual and expected output looking for deviation.
1368
1369 Notmuch 0.2 (2010-04-16)
1370 ========================
1371 This is the second release of the notmuch mail system, with actual
1372 detailed release notes this time!
1373
1374 This release consists of a number of minor new features that make
1375 notmuch more pleasant to use, and a few fairly major bug fixes.
1376
1377 We didn't quite hit our release target of "about a week" from the 0.1
1378 release, (0.2 is happening 11 days after 0.1), but we hope to do
1379 better for next week. Look forward to some major features coming to
1380 notmuch in subsequent releases.
1381
1382 -Carl
1383
1384 General features
1385 ----------------
1386 Better guessing of From: header.
1387
1388   Notmuch now tries harder to guess which configured address should be
1389   used as the From: line in a "notmuch reply". It will examine the
1390   Received: headers if it fails to find any configured address in To:
1391   or Cc:. This allows it to often choose the correct address even when
1392   replying to a message sent to a mailing list, and not directly to a
1393   configured address.
1394
1395 Make "notmuch count" with no arguments count all messages
1396
1397   Previously, it was hard to construct a search term that was
1398   guaranteed to match all messages.
1399
1400 Provide a new special-case search term of "*" to match all messages.
1401
1402   This can be used in any command accepting a search term, such as
1403   "notmuch search '*'". Note that you'll want to take care that the
1404   shell doesn't expand * against the current files. And note that the
1405   support for "*" is a special case. It's only meaningful as a single
1406   search term and loses its special meaning when combined with any
1407   other search terms.
1408
1409 Automatically detect thread connections even when a parent message is
1410 missing.
1411
1412   Previously, if two or more message were received with a common
1413   parent, but that parent was not received, then these messages would
1414   not be recognized as belonging to the same thread. This is now fixed
1415   so that such messages are properly connected in a thread.
1416
1417 General bug fixes
1418 -----------------
1419 Fix potential data loss in "notmuch new" with SIGINT
1420
1421   One code path in "notmuch new" was not properly handling
1422   SIGINT. Previously, this could lead to messages being removed from
1423   the database (and their tags being lost) if the user pressed
1424   Control-C while "notmuch new" was working.
1425
1426 Fix segfault when a message includes a MIME part that is empty.
1427
1428 Fix handling of non-ASCII characters with --format=json
1429
1430   Previously, characters outside the range of 7-bit ASCII were
1431   silently dropped from the JSON output. This led to corrupted display
1432   of utf-8 content in the upcoming notmuch web-based frontends.
1433
1434 Fix headers to be properly decoded in "notmuch reply"
1435
1436   Previously, the user might see:
1437
1438         Subject: Re: =?iso-8859-2?q?Rozlu=E8ka?=
1439
1440   rather than:
1441
1442         Subject: Re: Rozlučka
1443
1444   The former text is properly encoded to be RFC-compliant SMTP, will
1445   be sent correctly, and will be properly decoded by the
1446   recipient. But the user trying to edit the reply would likely be
1447   unable to read or edit that field in its encoded form.
1448
1449 Emacs client features
1450 ---------------------
1451 Show the last few lines of citations as well as the first few lines.
1452
1453   It's often the case that the last sentence of a citation is what is
1454   being replied to directly, so the last few lines are often much more
1455   important. The number of lines shown at the beginning and end of any
1456   citation can be configured, (notmuch-show-citation-lines-prefix and
1457   notmuch-show-citation-lines-suffix).
1458
1459 The '+' and '-' commands in the search view can now add and remove
1460 tags by region.
1461
1462   Selective bulk tagging is now possible by selecting a region of
1463   threads and then using either the '+' or '-' keybindings. Bulk
1464   tagging is still available for all threads matching the current
1465   search with the '*' binding.
1466
1467 More meaningful buffer names for thread-view buffers.
1468
1469   Notmuch now uses the Subject of the thread as the buffer
1470   name. Previously it was using the thread ID, which is a meaningless
1471   number to the user.
1472
1473 Provide for customized colors of threads in search view based on tags.
1474
1475   See the documentation of notmuch-search-line-faces, (or us "M-x
1476   customize" and browse to the "notmuch" group within "Applications"
1477   and "Mail"), for details on how to configure this colorization.
1478
1479 Build-system features
1480 ---------------------
1481 Add support to properly build libnotmuch on Darwin systems (OS X).
1482
1483 Add support to configure for many standard options.
1484
1485   We include actual support for:
1486
1487         --includedir --mandir --sysconfdir
1488
1489   And accept and silently ignore several more:
1490
1491         --build --infodir --libexecdir --localstatedir
1492         --disable-maintainer-mode --disable-dependency-tracking
1493
1494 Install emacs client in "make install" rather than requiring a
1495 separate "make install-emacs".
1496
1497 Automatically compute versions numbers between releases.
1498
1499   This support uses the git-describe notation, so a version such as
1500   0.1-144-g43cbbfc indicates a version that is 144 commits since the
1501   0.1 release and is available as git commit "43cbbfc".
1502
1503 Add a new "make test" target to run the test suite and actually verify
1504 its results.
1505
1506 Notmuch 0.1 (2010-04-05)
1507 ========================
1508 This is the first release of the notmuch mail system.
1509
1510 It includes the libnotmuch library, the notmuch command-line
1511 interface, and an emacs-based interface to notmuch.
1512
1513 Note: Notmuch will work best with Xapian 1.0.18 (or later) or Xapian
1514 1.1.4 (or later). Previous versions of Xapian (whether 1.0 or 1.1) had
1515 a performance bug that made notmuch very slow when modifying
1516 tags. This would cause distracting pauses when reading mail while
1517 notmuch would wait for Xapian when removing the "inbox" and "unread"
1518 tags from messages in a thread.