-Notmuch 0.16 (2013-MM-DD)
+Notmuch 0.18 (UNRELEASED)
=========================
Command-Line Interface
----------------------
-Decrypting commands explicitly expect a gpg-agent
+`notmuch dump` now defaults to `batch-tag` format.
- 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.
+ The old format is still available with `--format=sup`.
+
+`notmuch new` has a --quiet option
+
+ This option suppresses the progress and summary reports.
+
+Emacs Interface
+---------------
+
+Changed format for saved searches.
+
+ The format for `notmuch-saved-searches` has changed, but old style
+ saved searches are still supported. The new style means that a saved
+ search can store the desired sort order for the search, and it can
+ store a separate query to use for generating the count notmuch
+ shows.
+
+ The variable is fully customizable and any configuration done
+ through customize should `just work', with the additional options
+ mentioned above. For manual customization see the documentation for
+ `notmuch-saved-searches`.
+
+ IMPORTANT: a new style notmuch-saved-searches variable will break
+ previous versions of notmuch-emacs (even search will not work); to
+ fix remove the customization for notmuch-saved-searches.
+
+Bug fix for saved searches with newlines in them.
+
+ Split lines confuse `notmuch count --batch`, so we remove embedded
+ newlines before calling notmuch count.
+
+Notmuch 0.17 (2013-12-30)
+=========================
+
+Incompatible change in SHA1 computation
+---------------------------------------
+
+Previously on big endian architectures like sparc and powerpc the
+computation of SHA1 hashes was incorrect. This meant that messages
+with overlong or missing message-ids were given different computed
+message-ids than on more common little endian architectures like i386
+and amd64. If you use notmuch on a big endian architecture, you are
+strongly advised to make a backup of your tags using `notmuch dump`
+before this upgrade. You can locate the affected files using something
+like:
+
+ notmuch dump | \
+ awk '/^notmuch-sha1-[0-9a-f]{40} / \
+ {system("notmuch search --exclude=false --output=files id:" $1)}'
+
+Command-Line Interface
+----------------------
+
+New options to better support handling duplicate messages
+
+ If more than one message file is associated with a message-id,
+ `notmuch search --output=files` will print all of them. A new
+ `--duplicate=N` option can be used to specify which duplicate to
+ print for each message.
+
+ `notmuch count` now supports `--output=files` option to output the
+ number of files associated with matching messages. This may be
+ bigger than the number of matching messages due to duplicates
+ (i.e. multiple files having the same message-id).
+
+Improved `notmuch new` performance for unchanged folders
+
+ `notmuch new` now skips over unchanged folders more efficiently,
+ which can substantially improve the performance of checking for new
+ mail in some situations (like NFS-mounted Maildirs).
+
+`notmuch reply --format=text` RFC 2047-encodes headers
+
+ Previously, this used a mix of standard MIME encoding for the reply
+ body and UTF-8 for the headers. Now, the text format reply template
+ RFC 2047-encodes the headers, making the output a valid RFC 2822
+ message. The JSON/sexp format is unchanged.
+
+`notmuch compact` command
+
+ The new `compact` command exposes Xapian's compaction
+ functionality through a more convenient interface than
+ `xapian-compact`. `notmuch compact` will compact the database to a
+ temporary location, optionally backup the original database, and
+ move the compacted database into place.
+
+Emacs Interface
+---------------
+
+`notmuch-tree` (formerly `notmuch-pick`) has been added to mainline
+
+ `notmuch-tree` is a 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.
+
+ Using `notmuch-tree`
+
+ The main key entries to notmuch tree are
+
+ 'z' enter a query to view using notmuch tree (works in hello,
+ search, show and tree mode itself)
+
+ 'Z' view the current query in tree notmuch tree (works from search
+ and show)
+
+ Once in tree mode, keybindings are mostly in line with the rest of
+ notmuch and are all viewable with '?' as usual.
+
+ Customising `notmuch-tree`
+
+ `notmuch-tree` has several customisation variables. The most
+ significant is the first notmuch-tree-show-out which determines the
+ behaviour when selecting a message (with RET) in tree view. By
+ default tree view uses a split window showing the single message in
+ the bottom pane. However, if this option is set then it views the
+ whole thread in the complete window jumping to the selected message
+ in the thread. In either case command-prefix selects the other option.
+
+Tagging threads in search is now race-free
+
+ Previously, adding or removing a tag from a thread in a search
+ buffer would affect messages that had arrived after the search was
+ performed, resulting in, for example, archiving messages that were
+ never seen. Tagging now affects only the messages that were in the
+ thread when the search was performed.
+
+`notmuch-hello` refreshes when switching to the buffer
+
+ The hello buffer now refreshes whenever you switch to the buffer,
+ regardless of how you get there. You can disable automatic
+ refreshing by customizing `notmuch-hello-auto-refresh`.
+
+Specific mini-buffer prompts for tagging operations
+
+ When entering tags to add or remove, the mini-buffer prompt now
+ indicates what operation will be performed (e.g., "Tag thread", "Tag
+ message", etc).
+
+Built-in help improvements
+
+ Documentation for many commands has been improved, as displayed by
+ `notmuch-help` (usually bound to "?"). The bindings listed by
+ `notmuch-help` also now include descriptions of prefixed commands.
+
+Quote replies as they are displayed in show view
+
+ We now render the parts for reply quoting the same way they are
+ rendered for show. At this time, the notable change is that replies
+ to text/calendar are now pretty instead of raw vcalendar.
+
+Fixed inconsistent use of configured search order
+
+ All ways of interactively invoking search now honor the value of
+ `notmuch-search-oldest-first`.
+
+Common keymap for notmuch-wide bindings
+
+ Several key bindings have been moved from mode-specific keymaps to
+ the single `notmuch-common-keymap`, which is inherited by each
+ notmuch mode. If you've customized your key bindings, you may want
+ to move some of them to the common keymap.
+
+The `notmuch-tag` function now requires a list of tag changes
+
+ For users who have scripted the Emacs interface: the `notmuch-tag`
+ API has changed. Previously, it accepted either a list of tag
+ changes or a space-separated string of tag changes. The latter is
+ no longer supported and the function now returns nothing.
+
+Fixed `notmuch-reply` putting reply in primary selection
+
+ On emacs 24 notmuch-reply used to put the cited text into the
+ primary selection (which could lead to inadvertently pasting this
+ cited text elsewhere). Now the primary-selection is not changed.
+
+Fixed `notmuch-show` invisible part handling
+
+ In some obscure cases part buttons and invisibility had strange
+ interactions: in particular, the default action for some parts gave
+ the wrong action. This has been fixed.
+
+Fixed `notmuch-show` attachment viewers and stderr
+
+ In emacs 24.3+ viewing an attachment could cause spurious text to
+ appear in the show buffer (any stderr or stdout the viewer
+ produced). By default this output is now discarded. For debugging,
+ setting `notmuch-show-attachment-debug` causes notmuch to keep the
+ viewer's stderr and stdout in a separate buffer.
+
+Fixed `notmuch-mua-reply` point placement when signature involved
+
+ By restricting cursor movement to body section for cursor placement
+ after signature is inserted, the cursor cannot "leak" to header
+ section anymore. Now inserted citation content will definitely go to
+ the body part of the message.
+
+Vim Interface
+-------------
+
+ It is now possible to compose new messages in the Vim interface, as
+ opposed reply to existing messages. There is also support for
+ going straight to a search (bypassing the folders view).
+
+Notmuch 0.16 (2013-08-03)
+=========================
+
+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.
-Configuration file saves follow symbolic links
-
- The notmuch commands that save the configuration file now follow
- symbolic links instead of overwrite them.
-
`notmuch tag` option to remove all tags from matching messages
`notmuch tag --remove-all` option has been added to remove all tags
resulting in setting (rather than modifying) the tags of the
messages.
-Top level option to specify configuration file
+Decrypting commands explicitly expect a gpg-agent
- It's now possible to specify the configuration file to use on the
- command line using the `notmuch --config=FILE` option.
+ 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.
-Top level option to redirect writes to stderr
+Configuration file saves follow symbolic links
- With `notmuch --stderr=FILE` all writes to stderr are redirected to
- the specified file. If FILE is '-', stderr is redirected to stdout.
+ The notmuch commands that save the configuration file now follow
+ symbolic links instead of overwrite them.
-Deprecated commands "part" and "search-tags" are removed.
+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
`notmuch config`. The new completion support depends on the
bash-completion package.
-Vim Front-End
--------------
-
-The vim based front end to notmuch is deprecated and moved to contrib.
-We haven't been able to support this as well as we would like, and it
-has accumulated bugs and gaps in functionality. We recommend that
-people packaging notmuch no longer provide binary packages for
-notmuch-vim, but of course that is their decision.
+Deprecated commands "part" and "search-tags" are removed.
Emacs Interface
---------------
-New keymap to view/save parts
+New keymap to view/save parts; removed s/v/o/| part button bindings
- To view or save a single MIME part of a message, use the new "."
- submap (e.g., ". s" to save, ". v" to view). Previously, these keys
- were only available when point was on a part button and they did not
- have the "." prefix, so they were difficult to invoke (impossible if
- a part did not have a button) and clashed with other bindings.
- These new bindings also appear in show's help, so you don't have to
- memorize them.
+ 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`
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 results
+Faster search and show
- Communication between search mode and the notmuch CLI is now more
+ 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.
+ result, search mode should now fill search buffers faster and
+ threads should show faster.
No Emacs 22 support
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.
+
Notmuch 0.15.2 (2013-02-17)
===========================