Notmuch 0.23 (2016-10-03)
=========================
General (Xapian 1.4+)
---------------------
Compiling against Xapian 1.4 enables several new features.
Support for single argument date: queries
`date:<expr>` is equivalent to `date:<expr>..<expr>`.
Support for blocking opens
When opening a database notmuch by default will wait for another
process to release a write lock, rather than returning an error.
Support for named queries
Named queries (also known as 'saved searches') can be defined with a
`query:name` format. The expansion of these queries is stored in the
database and they can be used from any notmuch client.
Library
-------
Message property API
libnotmuch now supports the attachment of arbitrary key-value pairs
to messages. These can be used by various tools to manage their
private data without polluting the user tag space. They also support
iteration of values with the same key or same key prefix.
Bug fix for `notmuch_directory_set_mtime`
Update cached mtime to match on-disk mtime.
CLI
---
Support for compile time options
A group of `built_with` keys is now supported for notmuch
config. Initial keys in this group are `compact`, `field_processor`,
and `retry_lock`.
Dump/Restore support for configuration information and properties
Any configuration information stored in the database (initially just
named queries) is dumped and restored. Similarly any properties
attached to messages are also dumped and restored. Any new
information in the dump format is prefixed by '#' to allow existing
scripts to ignore it.
Emacs
-----
Make notmuch-message-mode use insert for fcc
Notmuch-message-mode now defaults to using notmuch insert for
fcc. The old file based fcc behaviour can be restored by setting the
defcustom `notmuch-maildir-use-notmuch-insert` to nil.
When using notmuch insert, `notmuch-fcc-dirs` must be a subdirectory
of the mailstore (absolute paths are not permitted) followed by any
tag changes to be applied to the inserted message. The tag changes
are applied after the default tagging for new messages. For example
setting the header to "sentmail -inbox +sent" would insert the
message in the subdirectory sentmail of the mailstore, add the tag
"sent", and not add the (normally added) "inbox" tag.
Finally, if the insert fails (e.g. if the database is locked) the
user is presented with the option to retry, ignore, or edit the
header.
Make internal address completion customizable
There is a new defcustom `notmuch-address-internal-completion` which
controls how the internal completion works: it allows the user to
choose whether to match on messages the user sent, or the user
received, and to filter the messages used for the match, for example
by date.
Allow internal address completion on an individual basis
There is a new function `notmuch-address-toggle-internal-completion`
(by default it has no keybinding) which allows users who normally
use an external completion command to use the builtin internal
completion for the current buffer.
Alternatively, if the user has company-mode enabled, then the user
can use company mode commands such as `company-complete` to
activate the builtin completion for an individual completion.
Resend messages
The function `notmuch-show-resend-message` (bound to `b` in show
and tree modes) will (attempt to) send current message to new
recipients. The headers of the message won't be altered (e.g. `To:`
may point to yourself). New `Resent-To:`, `Resent-From:` and so on
will be added instead.
Face customization is easier
New faces `notmuch-tag-unread`, `notmuch-tag-flagged`,
`notmuch-tag-deleted`, `notmuch-tag-added`,
`notmuch-search-flagged-face` and `notmuch-search-unread-face` are
now used by default. Customize `notmuch-faces` to modify them.
Omit User-Agent header by default when sending mail
Ruby Bindings
-------------
Add support for `notmuch_database_get_all_tags`
Go Bindings
-----------
Go bindings moved to contrib
Add support for `notmuch_threads_t` and `notmuch_thread_t`
Fixed constant values so they are not all zero anymore
Previously, it was impossible to open writable database handles,
because `DATABASE_MODE_READ_ONLY` and `DATABASE_MODE_READ_WRITE` were
both set to zero.
The same issue occured with sort modes.
Notmuch 0.20.2 (2015-06-27)
===========================
Emacs Interface
---------------
Bug fix for marking messages read in `notmuch-tree` mode.
Notmuch 0.20.1 (2015-06-01)
===========================
Test Suite
----------
Work around apparent gdb bug on arm64
Notmuch 0.20 (2015-05-31)
=========================
Command-Line Interface
----------------------
There is a new `mimetype:` search prefix
The new `mimetype:` search prefix allows searching for the
content-type of attachments, which is now indexed. See the
`notmuch-search-terms` manual page for details.
Path to gpg is now configurable
On systems with multiple versions of gpg, you can tell
notmuch which one to use by setting `crypto.gpg_path`
Emacs
-----
Avoid rendering large text attachements.
Improved rendering of CID references in HTML.
Vim
---
Vim client now respects excluded tags.
Notmuch-Mutt
------------
Support messages without Message-IDs.
Library
-------
Undeprecate single message mboxes
It seems more trouble to remove this feature than expected, so
`notmuch new` will no longer nag about mboxes with a single message.
New error logging facility
Clients should call `notmuch_database_status_string` to retrieve
output formerly printed to stderr.
Several bug fixes related to stale iterators
New status code returning API for n_query_search_{messages,thread}
Fix for library `install_name` on Mac OS X
Fix for rounding of seconds
Documentation
-------------
Sphinx is now mandatory to build docs
Support for using rst2man in place of sphinx to build the
docmumentation has been removed.
Improved notmuch-search-terms.7
The man page `notmuch-search-terms(7)` has been extended, merging
some material from the relicensed wiki.
Contrib
-------
`notmuch-deliver` is removed. As far as we know, all functionality
previously provided by `notmuch-deliver` should now be provided by
`notmuch insert`, provided by the main notmuch binary.
nmbug-status
------------
`nmbug-status` now only matches local branches when reading
`status-config.json` from the `config` branch of the `NMBGIT`
repository. To help new users running `nmbug-status`, `nmbug clone`
now creates a local `config` branch tracking `origin/config`. Folks
who use `nmbug-status` with an in-Git config (i.e. you don't use the
`--config` option) who already have `NMBGIT` set up are encouraged to
run:
git checkout config origin/config
in their `NMBGIT` repository (usually `~/.nmbug`).