Reply to sender
- "notmuch reply" has gained the ability to create a reply template
+ `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).
+ `--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".
+ 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.
More flexible and consistent tagging operations
- All tagging operations ("+", "-", "*") now accept multiple tags with
- "+" or "-" prefix, like "*" operation in notmuch-search view before.
+ 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
+ '*' 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
+ `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")
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 =.
+ opened/closed state, use a prefix argument, e.g., 'C-u ='.
Attachment buttons can be used to view or save attachments.
New functions
- `notmuch-show-stash-mlarchive-link{,-and-go}' allow stashing and
+ `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
+ inserted in `message-setup-hook`. Quoting is now limited to the
cited message.
Show view archiving key binding changes
'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
+Enable `notmuch-search-line-faces` by default
- Make the `notmuch-search-line-faces' functionality more discoverable
+ 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.
New functions
- notmuch_query_add_tag_exclude supports the new tag exclusion
+ `notmuch_query_add_tag_exclude` supports the new tag exclusion
feature.
Python bindings changes
Notmuch 0.11.1 (2012-02-03)
===========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
-Fix error handling in python bindings.
+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
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
+ 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
+`notmuch reply --decrypt bugfix`
- The "notmuch reply" command with --decrypt argument had a rarely
+ 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.
Automatic tag query optimization
- "notmuch tag" now automatically optimizes the user's query to
+ `notmuch tag` now automatically optimizes the user's query to
exclude messages whose tags won't change. In the past, we've
suggested that people do this by hand; this is no longer necessary.
This speeds up tag dumps considerably, without any loss of
information. To replicate the old behavior of sorted output (for
- example to compare two dump files), one can use e.g. sort(1).
+ example to compare two dump files), one can use e.g. `sort(1)`.
Memory Management
-----------------
should have scrolled down to show more of the current message instead.
This is now fixed.
-Support "notmuch new" as a notmuch-poll-script
+Support `notmuch new` as a notmuch-poll-script
- It's now possible to use "notmuch new" as a notmuch-poll-script
+ It's now possible to use `notmuch new` as a notmuch-poll-script
directly. This is also the new default. This allows taking better
- advantage of the "notmuch new" hooks from emacs without intermediate
+ advantage of the `notmuch new` hooks from emacs without intermediate
scripts.
Improvements in saved search management
changed by customizing "notmuch-hello-thousands-separator".
Call notmuch-show instead of notmuch-search when clicking on
-buttonized id: links.
+buttonized id: links
New function notmuch-show-advance
(define-key notmuch-show-mode-map " " 'notmuch-show-advance)
-Various performance improvements.
+Various performance improvements
New add-on tool
---------------
-The tool contrib/notmuch-deliver helps with initial delivery and
-tagging of mail (replacing running notmuch new).
+The tool `contrib/notmuch-deliver` helps with initial delivery and
+tagging of mail (replacing running `notmuch new`).
Notmuch 0.10.2 (2011-12-04)
===========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
-Fix crash in python bindings.
+Fix crash in python bindings
- The python bindings did not call g_type_init, which caused crashes
+ The python bindings did not call `g_type_init`, which caused crashes
for some, but not all users.
Notmuch 0.10.1 (2011-11-25)
===========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
-Fix --help argument
+Fix `--help` argument
- Argument processing changes in 0.10 introduced a bug where "notmuch
- --help" crashed while "notmuch help" worked fine. This is fixed in
- 0.10.1.
+ Argument processing changes in 0.10 introduced a bug where
+ `notmuch --help` crashed while `notmuch help` worked fine.
+ This is fixed in 0.10.1.
Notmuch 0.10 (2011-11-23)
=========================
New build and testing features
------------------------------
-Emacs tests are now done in dtach. This means that dtach is now
+Emacs tests are now done in `dtach`. This means that dtach is now
needed to run the notmuch test suite, at least until the checking for
prerequisites is improved.
New command-line features
-------------------------
-Add "notmuch restore --accumulate" option
+Add `notmuch restore --accumulate` option
- The --accumulate switch causes the union of the existing and new tags to be
- applied, instead of replacing each message's tags as they are read in from
- the dump file.
+ The `--accumulate` switch causes the union of the existing and new tags to
+ be applied, instead of replacing each message's tags as they are read in
+ from the dump file.
-Add search terms to "notmuch dump"
+Add search terms to `notmuch dump`
The dump command now takes an optional search term much like notmuch
search/show/tag. The output file argument of dump is deprecated in
favour of using stdout.
-Add "notmuch search" --offset and --limit options
+Add `notmuch search` `--offset` and `--limit` options
- The search command now takes options --offset=[-]N and --limit=N to limit
- the number of results shown.
+ The search command now takes options `--offset=[-]N` and `--limit=N` to
+ limit the number of results shown.
-Add "notmuch count --output" option
+Add `notmuch count --output` option
The count command is now capable of counting threads in addition to
- messages. This is selected using the new --output=(threads|messages) option.
+ messages. This is selected using the new `--output=(threads|messages)`
+ option.
New emacs UI features
---------------------
-Add tab-completion for notmuch-search and notmuch-search-filter
+Add tab-completion for `notmuch-search` and `notmuch-search-filter`
These functions now support completion tags for query parts
starting with "tag:".
Reduces manual labour when stashing them for use outside notmuch.
-Do not query on notmuch-search exit
+Do not query on `notmuch-search` exit
It is harmless to kill the external notmuch process, so the user
is no longer interrogated when they interrupt a search.
New, general features
---------------------
-Correct handling of interruptions during "notmuch new"
+Correct handling of interruptions during `notmuch new`
- "notmuch new" now operates as a series of small, self-consistent
+ `notmuch new` now operates as a series of small, self-consistent
transactions, so it can correctly resume after an interruption or
crash. Previously, interruption could lose existing tags, fail to
detect messages on resume, or leave the database in a state
New functions
- notmuch_database_begin_atomic and notmuch_database_end_atomic allow
- multiple database operations to be performed atomically.
+ `notmuch_database_begin_atomic` and `notmuch_database_end_atomic`
+ allow multiple database operations to be performed atomically.
- notmuch_database_find_message_by_filename does exactly what it says.
+ `notmuch_database_find_message_by_filename` does exactly what it says.
API changes
- notmuch_database_find_message (and n_d_f_m_by_filename) now return
+ `notmuch_database_find_message` (and `n_d_f_m_by_filename`) now return
a status indicator and uses an output parameter for the
message. This change required changing the SONAME of libnotmuch to
libnotmuch.so.2
- Re-encode python unicode objects to utf-8 before passing back to
libnotmuch.
- - Support Database().begin_atomic()/end_atomic()
- - Support Database().find_message_by_filename()
+ - Support `Database().begin_atomic()/end_atomic()`
+ - Support `Database().find_message_by_filename()`
NB! This needs a db opened in READ-WRITE mode currently, or it will crash
the python process. The is a limitation (=bug) of the underlying libnotmuch.
- Fixes where we would not throw NotmuchErrors when we should (Justus Winter)
- - Update for n_d_find_message* API changes (see above).
+ - Update for `n_d_find_message*` API changes (see above).
Ruby bindings changes
---------------------
- - Wrap new library functions notmuch_database_{begin,end}_atomic.
- - Add new exception Notmuch::UnbalancedAtomicError.
- - Rename destroy to destroy! according to Ruby naming conventions.
- - Update for n_d_find_message* API changes (see above).
+ - Wrap new library functions `notmuch_database_{begin,end}_atomic.`
+ - Add new exception `Notmuch::UnbalancedAtomicError.`
+ - Rename destroy to destroy! according to Ruby naming conventions.
+ - Update for `n_d_find_message*` API changes (see above).
Emacs improvements
------------------
* Add gpg callback to crypto sigstatus buttons to retrieve/refresh
signing key.
- * Add notmuch-show-refresh-view function (and corresponding binding)
+ * Add `notmuch-show-refresh-view` function (and corresponding binding)
to refresh the view of a notmuch-show buffer.
Reply formatting cleanup
------------------------
- "notmuch reply" no longer includes notification that non-leafnode
+ `notmuch reply` no longer includes notification that non-leafnode
MIME parts are being suppressed.
Notmuch 0.8 (2011-09-10)
Unicode, iterator, PEP8 changes for python bindings
- PEP8 (code formatting) changes for python files.
- - Remove Tags.__len__ ; see 0.6 release notes for motivation.
+ - Remove `Tags.__len__` ; see 0.6 release notes for motivation.
- Decode headers as UTF8, encode (unicode) database paths as UTF8.
Notmuch 0.7 (2011-08-01)
* query string is encoded as a UTF8 byte string
Build-System improvements
-------------------------
+-------------------------
Generate notmuch.sym after the relevant object files
Notmuch 0.6.1 (2011-07-17)
==========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
-Re-export Xapian exception typeinfo symbols.
+Re-export Xapian exception typeinfo symbols
It turned out our aggressive symbol hiding caused problems for
people running gcc 4.4.5.
Support for PGP/MIME
- Both the command line interface and the emacs-interface have new
+ Both the command-line interface and the emacs-interface have new
support for PGP/MIME, detailed below. Thanks to Daniel Kahn Gillmor
and Jameson Graef Rollins for making this happen.
part, (such as --format=json for extracting a message part with JSON
formatting).
-Deprecate "notmuch search-tags", (in favor of "notmuch search --output=tags *")
+Deprecate "notmuch search-tags" (in favor of "notmuch search --output=tags *")
The "notmuch search-tags" sub-command has been redundant since the
addition of the --output=tags option to "notmuch search". We now
messages. Automatically display decrypted content for
multipart/encrypted messages. See the emacs variable
notmuch-crypto-process-mime for more information. Note that this
- needs gpg-agent and a pinentry tool just as the command line tools.
+ needs gpg-agent and a pinentry tool just as the command-line tools.
Also note there is no support SMIME yet.
Output of pipe command is now displayed if pipe command fails
Replacing all characters with ASCII code less than 32 with a question mark.
-Cleaner display of From line in email messages (remove double quotes,
-and drop "name" if it's actually just a repeat of the email address).
+Cleaner display of From line in email messages
+
+ Remove double quotes, and drop "name" if it's actually just a repeat of
+ the email address.
Vim interface improvements
--------------------------
Ruby bindings are now much more complete
- Including QUERY.sort, QUERY.to_s, MESSAGE.maildir_flags_to_tags,
- MESSAGE.tags_to_maildir_flags, and MESSAGE.get_filenames
+ Including `QUERY.sort`, `QUERY.to_s`, `MESSAGE.maildir_flags_to_tags`,
+ `MESSAGE.tags_to_maildir_flags`, and `MESSAGE.get_filenames`
-* Python bindings have been updated and extended
+Python bindings have been updated and extended
(docs online at http://packages.python.org/notmuch/)
New bindings:
- - Message().get_filenames(), Message().tags_to_maildir_flags(),
- Message().maildir_flags_to_tags(), list(Threads()) and
- list(Messages) works now
- - Message().__cmp__() and __hash__()
+ - `Message().get_filenames()`, `Message().tags_to_maildir_flags()`,
+ `Message().maildir_flags_to_tags()`, `list(Threads())` and
+ `list(Messages)` works now
+ - `Message().__cmp__()` and `__hash__()`
These allow, for example:
if msg1 == msg2: ...
- As well as set arithmetic on Messages():
+ As well as set arithmetic on `Messages()`:
s1, s2 = set(msgs1), set(msgs2)
s1.union(s2)
Removed:
- - len(Messages()) as it exhausted the iterator
+ - `len(Messages())` as it exhausted the iterator
- Use len(list(Messages())) or Query.count_messages()
+ Use `len(list(Messages()))` or `Query.count_messages()`
to get the length.
Added initial Go bindings in bindings/go
simply install bash >= 4 somewhere on $PATH before /bin and then use
the test suite.
-Support for testing output with a trailing newline.
+Support for testing output with a trailing newline
Previously, some tests would fail to notice a difference in the
presence/absence of a trailing newline in a program output, (which
has led to bugs in the past). Now, carefully-written tests (using
- test_expect_equal_file rather than test_expect_equal) will detect
+ `test_expect_equal_file` rather than `test_expect_equal`) will detect
any change in the presence/absence of a trailing newline. Many tests
are updated to take advantage of this.
return a valid json object representing an empty array "[]" as
expected.
-fix the automatic detection of the From address for "notmuch reply"
-from the Received headers in some cases.
+Fix the automatic detection of the From address for "notmuch reply"
+from the Received headers in some cases
Fix core dump on DragonFlyBSD due to -1 return value from
-sysconf(_SC_GETPW_R_SIZE_MAX).
+`sysconf(_SC_GETPW_R_SIZE_MAX)`
Cleaned up several memory leaks
-Eliminated a few, rare segmentation faults and a double-free.
+Eliminated a few, rare segmentation faults and a double-free
Fix libnotmuch library to only export notmuch API functions
This synchronization is enabled by default for users of the
command-line interface, (though only files in directories named
"cur" or "new" will be renamed). It can be disabled by setting the
- new maildir.synchronize_flags option in the configuration file. For
+ new `maildir.synchronize_flags` option in the configuration file. For
example:
notmuch config set maildir.synchronize_flags false
It is common for the mailstore to contain multiple files with the
same message ID. Previously, notmuch would always hide these
duplicate files, (returning a single, arbitrary filename with
- notmuch_message_get_filename).
+ `notmuch_message_get_filename`).
With this release, library users can access all filenames for a
message with the new function:
notmuch_message_get_filenames
- Together with notmuch_filenames_valid, notmuch_filenames_get, and
- notmuch_filenames_move_to_next it is now possible to iterate over
- all available filenames for a given message.
+ Together with `notmuch_filenames_valid`, `notmuch_filenames_get`,
+ and `notmuch_filenames_move_to_next` it is now possible to iterate
+ over all available filenames for a given message.
New command-line features
-------------------------
Fix to allow pipe ('|') command to work when using notmuch over ssh
-Fix count of lines in hidden signatures.
+Fix count of lines in hidden signatures
-Omit repeated subject lines in (collapsed) thread display.
+Omit repeated subject lines in (collapsed) thread display
-Display current thread subject in a header line.
+Display current thread subject in a header line
-Provide a "c i" binding to copy a thread ID from the search view.
+Provide a "c i" binding to copy a thread ID from the search view
-Allow for notmuch-fcc-dirs to have a value of nil.
+Allow for notmuch-fcc-dirs to have a value of nil
Also, the more complex form of notmuch-fcc-dirs now has a slightly
different format. It no longer has a special first-element, fallback
New command-line features
-------------------------
-notmuch search --output=(summary|threads|messages|tags|files)
+`notmuch search --output=(summary|threads|messages|tags|files)`
This new option allows for particular items to be returned from
notmuch searches. The "summary" option is the default and behaves
<operations-on> "$file"
done
-notmuch show --format=mbox <search-specification>
+`notmuch show --format=mbox <search-specification>`
This new option allows for the messages matching a search
specification to be presented as an mbox. Specifically the "mboxrd"
beginning of all lines beginning with one or more '>' characters
followed by the 5 characters "From ".
-notmuch config [get|set] <section>.<item> [value ...]
+`notmuch config [get|set] <section>.<item> [value ...]`
The new top-level "config" command allows for any value in the
notmuch configuration file to be queried or set to a new value. Both
New library features
--------------------
-Add notmuch_query_get_query_string and notmuch_query_get_sort
+Add `notmuch_query_get_query_string` and `notmuch_query_get_sort`
These are simply functions for querying properties of a
- notmuch_query_t object.
+ `notmuch_query_t` object.
New emacs features
------------------
case in previous releases). See "Notmuch Search Line Faces" in the
notmuch customize interface.
-Make hidden author names still available for incremental search.
+Make hidden author names still available for incremental search
When there is insufficient space to display all authors of a thread
in search results, the names of hidden authors are now still made
New build-system features
-------------------------
+
Various portability fixes have been applied
These include fixes for build failures on at least Solaris, FreeBSD,
automatically run ldconfig.
2. If the library is installed to a non-system directory, the
- build system adds a DR_RUNPATH entry to the final binary
+ build system adds a `DR_RUNPATH` entry to the final binary
pointing to the directory to which the library is installed.
When this support works, the user should be able to run notmuch
immediately after "make install", without any errors trying to find
the notmuch library, and without having to manually set environment
- variables such as LD_LIBRARY_PATH.
+ variables such as `LD_LIBRARY_PATH`.
Check compiler/linker options before using them
it easy to run the test suite within valgrind (pass --valgrind to
notmuch-test or to any sub-script) which has been very useful.
-New testing of emacs interface.
+New testing of emacs interface
The test suite has been augmented to allow automated testing of the
emacs interfaces. So far, this includes basic searches, display of
The message-adding code has been carefully audited and reworked to
avoid this sort of corruption regardless of when it is interrupted.
-Fix failure with extremely long message ID headers.
+Fix failure with extremely long message ID headers
Previously, a message with an extremely long message ID, (say, more
than 300 characters), would fail to be added to notmuch, (triggering
GMime warning, (which would then trip up emacs or other interfaces
parsing the notmuch results).
-Fix notmuch_query_search_threads function to return NULL on any exception
+Fix `notmuch_query_search_threads` function to return NULL on any exception
-Fix "notmuch search" to return non-zero if notmuch_query_search_threads fails
+Fix "notmuch search" to return non-zero if `notmuch_query_search_threads`
+fails
Previously, this command could confusingly report a Xapian
exception, yet still return an error code of 0. It now correctly
Fix calculations for line wrapping in the primary "notmuch" view
Fix Fcc support to prompt to create a directory if the specified Fcc
-directory does not exist.
+directory does not exist
Build fix
---------
typically invoke "notmuch new" and then perhaps several "notmuch
tag" commands.
-Implement emacs message display with the JSON output from notmuch.
+Implement emacs message display with the JSON output from notmuch
This is much more robust than the previous implementation, (where
some HTML mails and mail quoting the notmuch code with the delimiter
the various fields in a "notmuch search" buffer. See the "Notmuch
Search Result Format" section of the customize interface.
-Generate nicer names for search buffers when using a saved search.
+Generate nicer names for search buffers when using a saved search
-Add a notmuch User-Agent header when sending mail from notmuch/emacs.
+Add a notmuch User-Agent header when sending mail from notmuch/emacs
-New keybinding (M-Ret) to open all collapsed messages in a thread.
+New keybinding (M-Ret) to open all collapsed messages in a thread
New library feature
-------------------
-Provide a new NOTMUCH_SORT_UNSORTED value for queries
+Provide a new `NOTMUCH_SORT_UNSORTED` value for queries
This can be somewhat faster when sorting simply isn't desired. For
example when collecting a set of messages that will all be
Previously notmuch insisted on being able to find GMime 2.4, (even
though GMime 2.6 would have worked all along).
-Fix configure script to accept (and ignore) various standard options.
+Fix configure script to accept (and ignore) various standard options
For example, those that the Gentoo build scripts expect configure to
accept are now all accepted.
Previously, it was hard to construct a search term that was
guaranteed to match all messages.
-Provide a new special-case search term of "*" to match all messages.
+Provide a new special-case search term of "*" to match all messages
This can be used in any command accepting a search term, such as
"notmuch search '*'". Note that you'll want to take care that the
other search terms.
Automatically detect thread connections even when a parent message is
-missing.
+missing
Previously, if two or more message were received with a common
parent, but that parent was not received, then these messages would
the database (and their tags being lost) if the user pressed
Control-C while "notmuch new" was working.
-Fix segfault when a message includes a MIME part that is empty.
+Fix segfault when a message includes a MIME part that is empty
Fix handling of non-ASCII characters with --format=json
notmuch-show-citation-lines-suffix).
The '+' and '-' commands in the search view can now add and remove
-tags by region.
+tags by region
Selective bulk tagging is now possible by selecting a region of
threads and then using either the '+' or '-' keybindings. Bulk
tagging is still available for all threads matching the current
search with the '*' binding.
-More meaningful buffer names for thread-view buffers.
+More meaningful buffer names for thread-view buffers
Notmuch now uses the Subject of the thread as the buffer
name. Previously it was using the thread ID, which is a meaningless
number to the user.
-Provide for customized colors of threads in search view based on tags.
+Provide for customized colors of threads in search view based on tags
See the documentation of notmuch-search-line-faces, (or us "M-x
customize" and browse to the "notmuch" group within "Applications"
--disable-maintainer-mode --disable-dependency-tracking
Install emacs client in "make install" rather than requiring a
-separate "make install-emacs".
+separate "make install-emacs"
-Automatically compute versions numbers between releases.
+Automatically compute versions numbers between releases
This support uses the git-describe notation, so a version such as
0.1-144-g43cbbfc indicates a version that is 144 commits since the
0.1 release and is available as git commit "43cbbfc".
-Add a new "make test" target to run the test suite and actually verify
-its results.
+Add a new "make test" target to run the test suite and actually
+verify its results
Notmuch 0.1 (2010-04-05)
========================