Update to 0.16:

Command-Line Interface
Support for delivering messages to Maildir

There is a new command insert that adds a message to a Maildir folder and notmuch index.
notmuch count --batch option

notmuch count now supports batch operations similar to notmuch tag. This is mostly an optimization for remote notmuch usage.
notmuch tag option to remove all tags from matching messages

notmuch tag --remove-all option has been added to remove all tags from matching messages. This can be combined with adding new tags, resulting in setting (rather than modifying) the tags of the messages.
Decrypting commands explicitly expect a gpg-agent

Decryption in notmuch show and notmuch reply has only ever worked with a functioning gpg-agent. This is now made explicit in code and documentation. The functional change is that it's now possible to have gpg-agent running, but gpg "use-agent" configuration option disabled, not forcing the user to use the agent everywhere.
Configuration file saves follow symbolic links

The notmuch commands that save the configuration file now follow symbolic links instead of overwrite them.
Top level option to specify configuration file

It's now possible to specify the configuration file to use on the command line using the notmuch --config=FILE option.
Bash command-line completion

The notmuch command-line completion support for the bash shell has been rewritten. Supported completions include all the notmuch commands, command-line arguments, values for keyword arguments, search prefixes (such as "subject:" or "from:") in all commands that use search terms, tags after + and - in notmuch tag, tags after "tag:" prefix, user's email addresses after "from:" and "to:" prefixes, and config options (and some config option values) in notmuch config. The new completion support depends on the bash-completion package.

Deprecated commands "part" and "search-tags" are removed.
Emacs Interface
New keymap to view/save parts; removed s/v/o/| part button bindings

The commands to view, save, and open MIME parts are now prefixed with "." (". s" to save, ". v" to view, etc) and can be invoked with point anywhere in a part, unlike the old commands, which were restricted to part buttons. The old "s"/"v"/"o"/"|" commands on part buttons have been removed since they clashed with other bindings (notably "s" for search!) and could not be invoked when there was no part button. The new, prefixed bindings appear in show's help, so you no longer have to memorize them.
Default part save directory is now mm-default-directory

Previously, notmuch offered to save parts and attachments to a mix of mm-default-directory, mailcap-download-directory, and ~/. This has been standardized on mm-default-directory.
Key bindings for next/previous thread

Show view has new key bindings M-n and M-p to move to the next and previous thread in the search results.
Better handling of errors in search buffers

Instead of interleaving errors in search result buffers, search mode now reports errors in the minibuffer.
Faster search and show

Communication between Emacs and the notmuch CLI is now more efficient because it uses the CLI's S-expression support. As a result, search mode should now fill search buffers faster and threads should show faster.

No Emacs 22 support

The Emacs 22 support added late 2010 was sufficient only for a short period of time. After being incomplete for roughly 2 years the code in question was now removed from this release.

Vim Front-End

The vim based front-end has been replaced with a new one that uses the Ruby bindings. The old font-end is available in the contrib subfolder.

Python Bindings

Fix loading of libnotmuch shared library on OS X (Darwin) systems.
Remove TODO: SA was addressed in 0.11.something a long time ago.