+ `notmuch new` now rejects mbox files containing more than one
+ message, rather than treating the file as one giant message.
+
+Support for single message mboxes is deprecated
+
+ For historical reasons, `notmuch new` will index mbox files
+ containing a single message; however, this behavior is now
+ officially deprecated.
+
+Fixed `notmuch new` to skip ignored broken symlinks
+
+ `notmuch new` now correctly skips symlinks if they are in the
+ ignored files list. Previously, it would abort when encountering
+ broken symlink, even if it was ignored.
+
+Bcc and Reply-To headers are now available in notmuch show json output
+
+ The `notmuch show --format=json` now includes "Bcc" and "Reply-To" headers.
+ For example notmuch Emacs client can now have these headers visible
+ when the headers are added to the `notmuch-message-headers` variable.
+
+CLI callers can now request a specific output format version
+
+ `notmuch` subcommands that support structured output now support a
+ `--format-version` argument for requesting a specific version of the
+ structured output, enabling better compatibility and error handling.
+
+`notmuch search` has gained a null character separated text output format
+
+ The new --format=text0 output format for `notmuch search` prints
+ output separated by null characters rather than newline
+ characters. This is similar to the find(1) -print0 option, and works
+ together with the xargs(1) -0 option.
+
+Emacs Interface
+---------------
+
+Removal of the deprecated `notmuch-folders` variable
+
+ `notmuch-folders` has been deprecated since the introduction of saved
+ searches and the notmuch hello view in notmuch 0.3. `notmuch-folders`
+ has now been removed. Any remaining users should migrate to
+ `notmuch-saved-searches`.
+
+Visibility of MIME parts can be toggled
+
+ Each part of a multi-part MIME email can now be shown or hidden
+ using the button at the top of each part (by pressing RET on it or
+ by clicking). For emails with multiple alternative formats (e.g.,
+ plain text and HTML), only the preferred format is shown initially,
+ but other formats can be shown using their part buttons. To control
+ the behavior of this, see
+ `notmuch-multipart/alternative-discouraged` and
+ `notmuch-show-all-multipart/alternative-parts`.
+
+Emacs now buttonizes mid: links
+
+ mid: links are a standardized way to link to messages by message ID
+ (see RFC 2392). Emacs now hyperlinks mid: links to the appropriate
+ notmuch search.
+
+Handle errors from bodypart insertions
+
+ If displaying the text of a message in show mode causes an error (in
+ the `notmuch-show-insert-part-*` functions), notmuch no longer cuts
+ off thread display at the offending message. The error is now
+ simply displayed in place of the message.
+
+Emacs now detects version mismatches with the notmuch CLI
+
+ Emacs now detects and reports when the Emacs interface version and
+ the notmuch CLI version are incompatible.
+
+Improved text/calendar content handling
+
+ Carriage returns in embedded text/calendar content caused insertion
+ of the calendar content fail. Now CRs are removed before calling icalendar
+ to extract icalendar data. In case icalendar extraction fails an error
+ is thrown for the bodypart insertion function to deal with.
+
+Disabled coding conversions when reading in `with-current-notmuch-show-message`
+
+ Depending on the user's locale, saving attachments containing 8-bit
+ data may have performed an unintentional encoding conversion,
+ corrupting the saved attachment. This has been fixed by making
+ `with-current-notmuch-show-message` disable coding conversion.
+
+Fixed errors with HTML email containing images in Emacs 24
+
+ Emacs 24 ships with a new HTML renderer that produces better output,
+ but is slightly buggy. We work around a bug that caused it to fail
+ for HTML email containing images.
+
+Fixed handling of tags with unusual characters in them
+
+ Emacs now handles tags containing spaces, quotes, and parenthesis.
+
+Fixed buttonization of id: links without quote characters
+
+ Emacs now correctly buttonizes id: links where the message ID is not
+ quoted.
+
+`notmuch-hello` refresh point placement improvements
+
+ Refreshing the `notmuch-hello` buffer does a better job of keeping
+ the point where it was.
+
+Automatic tag changes are now unified and customizable
+
+ All the automatic tag changes that the Emacs interface makes when
+ reading, archiving, or replying to messages, can now be
+ customized. Any number of tag additions and removals is supported
+ through the `notmuch-show-mark-read`, `notmuch-archive-tags`, and
+ `notmuch-message-replied-tags` customization variables.
+
+Support for stashing the thread id in show view
+
+ Invoking `notmuch-show-stash-message-id` with a prefix argument
+ stashes the (local and database specific) thread id of the current
+ thread instead of the message id.
+
+New add-on tool: notmuch-pick
+-----------------------------
+
+The new contrib/ tool `notmuch-pick` is an experimental threaded message
+view for the emacs interface. Each message is one line in the results
+and the thread structure is shown using UTF-8 box drawing characters
+(similar to Mutt's threaded view). It comes between search and show in
+terms of amount of output and can be useful for viewing both single
+threads and multiple threads. See the notmuch-pick README file for
+further details and installation.
+
+Portability
+-----------
+
+notmuch now builds on OpenBSD.
+
+Internal test framework changes
+-------------------------------
+
+The emacsclient binary is now user-configurable
+
+ The test framework now accepts TEST_EMACSCLIENT in addition to
+ TEST_EMACS for configuring the emacsclient to use. This is
+ necessary to avoid using an old emacsclient with a new emacs, which
+ can result in buggy behavior.
+
+Notmuch 0.14 (2012-08-20)
+=========================
+
+General bug fixes
+-----------------
+
+Maildir tag synchronization
+
+ Maildir flag-to-tag synchronization now applies only to messages in
+ maildir-like directory structures. Previously, it applied to any
+ message that had a maildir "info" part, which meant it could
+ incorrectly synchronize tags for non-maildir messages, while at the
+ same time failing to synchronize tags for newly received maildir
+ messages (typically causing new messages to not receive the "unread"
+ tag).
+
+Command-Line Interface
+----------------------
+
+ The deprecated positional output file argument to `notmuch dump` has
+ been replaced with an `--output` option. The input file positional
+ argument to `notmuch restore` has been replaced with an `--input`
+ option for consistency with dump. These changes simplify the syntax
+ of dump/restore options and make them more consistent with other
+ notmuch commands.
+
+Emacs Interface
+---------------
+
+Search results now get re-colored when tags are updated
+
+The formatting of tags in search results can now be customized
+
+ Previously, attempting to change the format of tags in
+ `notmuch-search-result-format` would usually break tagging from
+ search-mode. We no longer make assumptions about the format.
+
+Experimental support for multi-line search result formats
+
+ It is now possible to embed newlines in
+ `notmuch-search-result-format` to make individual search results
+ span multiple lines.
+
+Next/previous in search and show now move by boundaries
+
+ All "next" and "previous" commands in the search and show modes now
+ move to the next/previous result or message boundary. This doesn't
+ change the behavior of "next", but "previous" commands will first
+ move to the beginning of the current result or message if point is
+ inside the result or message.
+
+Search now uses the JSON format internally
+
+ This should address problems with unusual characters in authors and
+ subject lines that could confuse the old text-based search parser.
+
+The date shown in search results is no longer padded before applying
+user-specified formatting
+
+ Previously, the date in the search results was padded to fixed width
+ before being formatted with `notmuch-search-result-format`. It is
+ no longer padded. The default format has been updated, but if
+ you've customized this variable, you may have to change your date
+ format from `"%s "` to `"%12s "`.
+
+The thread-id for the `target-thread` argument for `notmuch-search` should
+now be supplied without the "thread:" prefix.
+
+Notmuch 0.13.2 (2012-06-02)
+===========================
+
+Bug-fix release
+---------------
+
+Update `contrib/notmuch-deliver` for API changes in 0.13. This fixes a
+compilation error for this contrib package.
+
+Notmuch 0.13.1 (2012-05-29)
+===========================
+
+Bug-fix release
+---------------
+
+Fix inserting of UTF-8 characters from *text/plain* parts in reply
+
+ While notmuch gained ability to insert content from other than *text/plain*
+ parts of email whenever *text/plain* parts are not available (notably
+ HTML-only emails), replying to mails that do have *text/plain* the
+ non-ASCII characters were incorrectly decoded. This is now fixed.
+
+`notmuch_database_get_directory` and
+`notmuch_database_find_message_by_filename` now work on read-only
+databases
+
+ Previously, these functions attempted to create directory documents
+ that didn't exist and would return an error or abort when given a
+ read-only database. Now they no longer create directory documents
+ and simply return a `NULL` object if the directory does not exist,
+ as documented.
+
+Fix compilation of ruby bindings
+
+ Revert to dynamic linking, since the statically linked bindings did
+ not work well.
+
+Notmuch 0.13 (2012-05-15)
+=========================
+
+Command-Line Interface
+----------------------
+
+JSON reply format
+
+ `notmuch reply` can now produce JSON output that contains the headers
+ for a reply message and full information about the original message
+ begin replied to. This allows MUAs to create replies intelligently.
+ For example, an MUA that can parse HTML might quote HTML parts.
+
+ Calling notmuch reply with `--format=json` imposes the restriction that
+ only a single message is returned by the search, as replying to
+ multiple messages does not have a well-defined behavior. The default
+ retains its current behavior for multiple message replies.
+
+Tag exclusion
+
+ Tags can be automatically excluded from search results by adding them
+ to the new `search.exclude_tags` option in the Notmuch config file.
+
+ This behaviour can be overridden by explicitly including an excluded
+ tag in your query, for example:
+
+ notmuch search $your_query and tag:$excluded_tag
+
+ Existing users will probably want to run `notmuch setup` again to add
+ the new well-commented [search] section to the configuration file.
+
+ For new configurations, accepting the default setting will cause the
+ tags "deleted" and "spam" to be excluded, equivalent to running:
+
+ notmuch config set search.exclude_tags deleted spam
+
+Raw show format changes
+
+ The output of show `--format=raw` has changed for multipart and
+ message parts. Previously, the output was a mash of somewhat-parsed
+ headers and transfer-decoded bodies. Now, such parts are reproduced
+ faithfully from the original source. Message parts (which includes
+ part 0) output the full message, including the message headers (but
+ not the transfer headers). Multipart parts output the part as
+ encoded in the original message, including the part's headers. Leaf
+ parts, as before, output the part's transfer-decoded body.
+
+Listing configuration items
+
+ The new `config list` command prints out all configuration items and
+ their values.
+
+Emacs Interface
+---------------
+
+Changes to tagging interface
+
+ The user-facing tagging functions in the Emacs interface have been
+ normalized across all notmuch modes. The tagging functions are now
+ notmuch-search-tag in search-mode, and notmuch-show-tag in
+ show-mode. They accept a string representing a single tag change,
+ or a list of tag changes. See 'M-x describe-function notmuch-tag'
+ for more information.
+
+ NOTE: This breaks compatibility with old tagging functions, so user
+ may need to update in custom configurations.
+
+Reply improvement using the JSON format
+
+ Emacs now uses the JSON reply format to create replies. It obeys
+ the customization variables message-citation-line-format and
+ message-citation-line-function when creating the first line of the
+ reply body, and it will quote HTML parts if no text/plain parts are
+ available.
+
+New add-on tool: notmuch-mutt
+-----------------------------
+
+The new contrib/ tool `notmuch-mutt` provides Notmuch integration for
+the Mutt mail user agent. Using it, Mutt users can perform mail
+search, thread reconstruction, and mail tagging/untagging without
+leaving Mutt. notmuch-mutt, formerly distributed under the name
+`mutt-notmuch` by Stefano Zacchiroli, will be maintained as a notmuch
+contrib/ from now on.
+
+Library changes
+---------------
+
+The API changes detailed below break binary and source compatibility,
+so libnotmuch has been bumped to version 3.0.0.
+
+The function `notmuch_database_close` has been split into
+`notmuch_database_close` and `notmuch_database_destroy`
+
+ This makes it possible for long running programs to close the xapian
+ database and thus release the lock associated with it without
+ destroying the data structures obtained from it.
+
+`notmuch_database_open`, `notmuch_database_create`, and
+`notmuch_database_get_directory` now return errors
+
+ The type signatures of these functions have changed so that the
+ functions now return a `notmuch_status_t` and take an out-argument for
+ returning the new database object or directory object.
+
+Go bindings changes
+-------------------
+
+Go 1 compatibility
+
+ The go bindings and the `notmuch-addrlookup` utility are now
+ compatible with go 1.
+
+Notmuch 0.12 (2012-03-20)
+=========================
+
+Command-Line Interface
+----------------------
+
+Reply to sender
+
+ `notmuch reply` has gained the ability to create a reply template
+ for replying just to the sender of the message, in addition to reply
+ to all. The feature is available through the new command line option
+ `--reply-to=(all|sender)`.
+
+Mail store folder/file ignore
+
+ A new configuration option, `new.ignore`, lets users specify a
+ ;-separated list of file and directory names that will not be
+ searched for messages by `notmuch new`.
+
+ NOTE: *Every* file/directory that goes by one of those names will
+ be ignored, independent of its depth/location in the mail store.
+
+Unified help and manual pages
+
+ The notmuch help command now runs man for the appropriate page. If
+ you install notmuch somewhere "unusual", you may need to update
+ MANPATH.
+
+Manual page for notmuch configuration options
+
+ The notmuch CLI configuration file options are now documented in the
+ notmuch-config(1) manual page in addition to the configuration file
+ itself.
+
+Emacs Interface
+---------------
+
+Reply to sender
+
+ The Emacs interface has, with the new CLI support, gained the
+ ability to reply to sender in addition to reply to all. In both show
+ and search modes, 'r' has been bound to reply to sender, replacing
+ reply to all, which now has key binding 'R'.
+
+More flexible and consistent tagging operations
+
+ All tagging operations ('+', '-', '*') now accept multiple tags with
+ '+' or '-' prefix, like '*' operation in notmuch-search view before.
+
+ '*' operation (`notmuch-show-tag-all`) is now available in
+ notmuch-show view.
+
+ `notmuch-show-{add,remove}-tag` functions no longer accept tag
+ argument, `notmuch-show-tag-message` should be used instead. Custom
+ bindings using these functions should be updated, e.g.:
+
+ (notmuch-show-remove-tag "unread")
+
+ should be changed to:
+
+ (notmuch-show-tag-message "-unread")
+
+Refreshing the show view ('=' by default) no longer opens or closes messages
+
+ To get the old behavior of putting messages back in their initial
+ opened/closed state, use a prefix argument, e.g., 'C-u ='.
+
+Attachment buttons can be used to view or save attachments.
+
+ When the cursor is on an attachment button the key 's' can be used
+ to save the attachment, the key 'v' to view the attachment in the
+ default mailcap application, and the key 'o' prompts the user for an
+ application to use to open the attachment. By default Enter or mouse
+ button 1 saves the attachment but this is customisable (option
+ Notmuch Show Part Button Default Action).
+
+New functions
+
+ `notmuch-show-stash-mlarchive-link{,-and-go}` allow stashing and
+ optionally visiting a URI to the current message at one of a number
+ of Mailing List Archives.
+
+Fix MML tag quoting in replies
+
+ The MML tag quoting fix of 0.11.1 unintentionally quoted tags
+ inserted in `message-setup-hook`. Quoting is now limited to the
+ cited message.
+
+Show view archiving key binding changes
+
+ The show view archiving key bindings 'a' and 'x' now remove the
+ "inbox" tag from the current message only (instead of thread), and
+ move to the next message. At the last message, 'a' proceeds to the
+ next thread in search results, and 'x' returns to search
+ results. The thread archiving functions are now available in 'A' and
+ 'X'.
+
+Support text/calendar MIME type
+
+ The text/calendar MIME type is now supported in addition to
+ text/x-vcalendar.
+
+Generate inline patch fake attachment file names from message subject
+
+ Use the message subject to generate file names for the inline patch
+ fake attachments. The names are now similar to the ones generated by
+ 'git format-patch' instead of just "inline patch". See "Notmuch Show
+ Insert Text/Plain Hook" in the notmuch customize interface.
+
+Enable `notmuch-search-line-faces` by default
+
+ Make the `notmuch-search-line-faces` functionality more discoverable
+ for new users by showing "unread" messages bold and "flagged"
+ messages blue by default in the search view.
+
+Printing Support
+
+ notmuch-show mode now has simple printing support, bound to '#' by
+ default. You can customize the variable notmuch-print-mechanism.
+
+Library changes
+---------------
+
+New functions
+
+ `notmuch_query_add_tag_exclude` supports the new tag exclusion
+ feature.
+
+Python bindings changes
+-----------------------
+
+Python 3.2 compatibility
+
+ The python bindings are now compatible with both python 2.5+ and 3.2.
+
+Added missing unicode conversions
+
+ Python strings have to be encoded to and decoded from utf-8 when
+ calling libnotmuch functions. Porting the bindings to python 3.2
+ revealed a few function calls that were missing these conversions.
+
+Build fixes
+-----------
+
+Compatibility with GMime 2.6
+
+ It is now possible to build notmuch against both GMime 2.4 and 2.6.
+ However, a bug in GMime 2.6 before 2.6.5 causes notmuch not to
+ report signatures where the signer key is unavailable (GNOME bug
+ 668085). For compatibility with GMime 2.4's tolerance of "From "
+ headers we require GMime 2.6 >= 2.6.7.
+
+Notmuch 0.11.1 (2012-02-03)
+===========================
+
+Bug-fix release
+---------------
+
+Fix error handling in python bindings
+
+ The python bindings in 0.11 failed to detect NULL pointers being
+ returned from libnotmuch functions and thus failed to raise
+ exceptions to indicate the error condition. Any subsequent calls
+ into libnotmuch caused segmentation faults.
+
+Quote MML tags in replies
+
+ MML tags are text codes that Emacs uses to indicate attachments
+ (among other things) in messages being composed. The Emacs
+ interface did not quote MML tags in the quoted text of a reply.
+ User could be tricked into replying to a maliciously formatted
+ message and not editing out the MML tags from the quoted text. This
+ could lead to files from the user's machine being attached to the
+ outgoing message. The Emacs interface now quotes these tags in
+ reply text, so that they do not effect outgoing messages.
+
+Notmuch 0.11 (2012-01-13)
+=========================
+
+Command-Line Interface
+----------------------
+
+Hooks
+
+ Hooks have been introduced to notmuch. Hooks are scripts that notmuch
+ invokes before and after certain actions. Initially, `notmuch new`
+ supports `pre-new` and `post-new` hooks that are run before and after
+ importing new messages into the database.
+
+`notmuch reply --decrypt bugfix`
+
+ The `notmuch reply` command with `--decrypt` argument had a rarely
+ occurring bug that caused an encrypted message not to be decrypted
+ sometimes. This is now fixed.