Where to obtain notmuch 0.15
Which can be verified with:
(signed by David Bremner)
What's new in notmuch 0.15
Date range search support
The `date:` prefix can now be used in queries to restrict the results
to only messages within a particular time range (based on the Date:
header) with a range syntax of `date:..`. Notmuch
supports a wide variety of expressions in `` and
``. Please refer to the `notmuch-search-terms(7)` manual page
Empty tag names and tags beginning with "-" are deprecated
Such tags have been a frequent source of confusion and cause
(sometimes unresolvable) conflicts with other syntax. notmuch tag
no longer allows such tags to be added to messages. Removing such
tags continues to be supported to allow cleanup of existing tags,
but may be removed in a future release.
`notmuch new` no longer chokes on mboxes
`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
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.
New dump/restore format and tagging interface
There is a new `batch-tag` format for dump and restore that is more
robust, particularly with respect to tags and message-ids containing
`notmuch tag` now supports the ability to read tag operations and
queries from an input stream, in a format compatible with the new
Bcc and Reply-To headers are now available in notmuch show json output
The `notmuch show --format=json` now includes "Bcc" and "Reply-To"
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.
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
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
Note notmuch-show-print-message (bound to '#' by default) will print
all parts of multipart/alternative message regardless of whether
they are currently hidden or shown in the buffer.
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
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
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
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
`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.
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.
What is notmuch
Notmuch is a system for indexing, searching, reading, and tagging
large collections of email messages in maildir or mh format. It uses
the Xapian library to provide fast, full-text search with a convenient
For more about notmuch, see http://notmuchmail.org