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.2 (2011-12-04)
===========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
### Fix crash in python bindings
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.
-### 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.
-### 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.
improve search speed by as much as 10X, but taking advantage of this
requires a database rebuild:
- notmuch dump > notmuch.dump
- # Backup, then remove notmuch database ($MAIL/.notmuch)
- notmuch new
- notmuch restore notmuch.dump
+ notmuch dump > notmuch.dump
+ # Backup, then remove notmuch database ($MAIL/.notmuch)
+ notmuch new
+ notmuch restore notmuch.dump
New collection of add-on tools
------------------------------
+[[!meta date="2012-02-03"]]
+
Notmuch 0.11.1 (2012-02-03)
===========================
-Bug-fix release.
-----------------
+Bug-fix release
+---------------
### Fix error handling in python bindings
thousands separator (e.g. "123 456" instead of "123,456"). This can be
changed by customizing "notmuch-hello-thousands-separator".
-### Call notmuch-show instead of notmuch-search when clicking on buttonized id: links.
+### Call notmuch-show instead of notmuch-search when clicking on buttonized id: links
### New function notmuch-show-advance
less invasive than notmuch-show-advance-and-archive. It can easily
be bound to SPC with:
- (define-key notmuch-show-mode-map " " 'notmuch-show-advance)
+ (define-key notmuch-show-mode-map " " 'notmuch-show-advance)
### Various performance improvements
Previously, the user might see:
- Subject: Re: =?iso-8859-2?q?Rozlu=E8ka?=
+ Subject: Re: =?iso-8859-2?q?Rozlu=E8ka?=
rather than:
- Subject: Re: Rozlučka
+ Subject: Re: Rozlučka
The former text is properly encoded to be RFC-compliant SMTP, will
be sent correctly, and will be properly decoded by the
We include actual support for:
- --includedir --mandir --sysconfdir
+ --includedir --mandir --sysconfdir
And accept and silently ignore several more:
- --build --infodir --libexecdir --localstatedir
- --disable-maintainer-mode --disable-dependency-tracking
+ --build --infodir --libexecdir --localstatedir
+ --disable-maintainer-mode --disable-dependency-tracking
### Install emacs client in "make install" rather than requiring a separate "make install-emacs"
Emacs bug fixes
---------------
-Fix calculations for line wrapping in the primary "notmuch" view.
+### 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.
+### Fix Fcc support to prompt to create a directory if the specified Fcc directory does not exist
Build fix
---------
search of messages with that tag that's simply a click (or keypress)
away.
- Note: For users that liked the original mode of "emacs -f notmuch"
- immediately displaying a particular search result, we
- recommend instead running something like:
+ NOTE: For users that liked the original mode of "emacs -f notmuch"
+ immediately displaying a particular search result, we recommend
+ instead running something like:
- emacs --eval '(notmuch search "tag:inbox" t)'
+ emacs --eval '(notmuch search "tag:inbox" t)'
- The "t" means to sort the messages in an "oldest first" order,
- (as notmuch would do previously by default). You can also
- leave that off to have your search results in "newest first"
- order.
+ The "t" means to sort the messages in an "oldest first" order,
+ (as notmuch would do previously by default). You can also
+ leave that off to have your search results in "newest first"
+ order.
### Full-featured "customize" support for configuring notmuch
One such program (implemented in python with the python bindings to
notmuch) is available via:
- git clone http://jkr.acm.jhu.edu/git/notmuch_addresses.git
+ git clone http://jkr.acm.jhu.edu/git/notmuch_addresses.git
Install that program as notmuch-addresses on your PATH, and then
hitting TAB on a partial email address or name within the To: or Cc:
expected that this new option will be very useful in shell
scripts. For example:
- for file in $(notmuch search --output=files <search-terms>); do
- <operations-on> "$file"
- done
+ for file in $(notmuch search --output=files <search-terms>); do
+ <operations-on> "$file"
+ done
### `notmuch show --format=mbox <search-specification>`
errors of the form "libnotmuch.so could not be found" immediately
after installing. This support takes two forms:
- 1. If the library is installed to a system directory,
- (configured in /etc/ld.so.conf), then "make install" will
- automatically run ldconfig.
+ 1. If the library is installed to a system directory,
+ (configured in /etc/ld.so.conf), then "make install" will
+ 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
- pointing to the directory to which the library is installed.
+ 2. If the library is installed to a non-system directory, the
+ 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
General bug fixes
-----------------
-### Fix potential corruption of database when "notmuch new " is interrupted
+### Fix potential corruption of database when "notmuch new" is interrupted
Previously, an interruption of "notmuch new" would (rarely) result
in a corrupt database. The corruption would manifest itself by a
persistent error of the form:
- document ID of 1234 has no thread ID
+ document ID of 1234 has no thread ID
The message-adding code has been carefully audited and reworked to
avoid this sort of corruption regardless of when it is interrupted.
tags in the notmuch database. The following flag/tag mappings are
supported:
- Flag <-> Tag
- ---- -----
- 'D' draft
- 'F' flagged
- 'P' passed
- 'R' replied
- 'S' unread (added when 'S' flag is not present)
+ Flag <-> Tag
+ ---- -----
+ 'D' draft
+ 'F' flagged
+ 'P' passed
+ 'R' replied
+ 'S' unread (added when 'S' flag is not present)
The synchronization occurs in both directions, (for example, adding
the 'S' flag to a file will cause the "unread" tag to be added, and
new `maildir.synchronize_flags` option in the configuration file. For
example:
- notmuch config set maildir.synchronize_flags false
+ notmuch config set maildir.synchronize_flags false
Users upgrading may also want to run "notmuch setup" once (just
accept the existing configuration) to get a new, nicely-commented
For users of the notmuch library, the new synchronization
functionality is available with the following two new functions:
- notmuch_message_maildir_flags_to_tags
- notmuch_message_tags_to_maildir_flags
+ notmuch_message_maildir_flags_to_tags
+ notmuch_message_tags_to_maildir_flags
It is anticipated that future improvements to this support will
allow for safe synchronization of the 'T' flag with the "deleted"
With this release, library users can access all filenames for a
message with the new function:
- notmuch_message_get_filenames
+ notmuch_message_get_filenames
Together with `notmuch_filenames_valid`, `notmuch_filenames_get`,
and `notmuch_filenames_move_to_next` it is now possible to iterate
do this, simply set the notmuch-command variable in emacs to the
name of a script containing:
- ssh user@host notmuch "$@"
+ ssh user@host notmuch "$@"
If the ssh client has enabled connection sharing (ControlMaster
option in OpenSSH), the emacs interface can be quite responsive this
The 0.4 release had a bug in which:
- notmuch search <expression-with-no-matches>
+ notmuch search <expression-with-no-matches>
would produce a single blank line of output, (where previous
versions would produce no output. This fix also causes a change in
Vim interface improvements
--------------------------
-Felipe Contreras provided a number of updates for the vim interface
+### Felipe Contreras provided a number of updates for the vim interface
These include optimizations, support for newer versions of vim, fixed
support for sending mail on modern systems, new commands, and
New bindings
------------
-Added initial ruby bindings in bindings/ruby
+### Added initial ruby bindings in bindings/ruby
directories in which mail files are stored (within the mail
storage). The syntax is as follows:
- folder:<path>
+ folder:<path>
For example, one might use things such as:
- folder:spam
- folder:2011-*
- folder:work/todo
+ folder:spam
+ folder:2011-*
+ folder:work/todo
to match any path containing a directory "spam", "work/todo", or
containing a directory starting with "2011-", respectively.
this feature for all mail, the entire notmuch index will need to be
rebuilt as follows:
- notmuch dump > notmuch.dump
- # Backup, then remove notmuch database ($MAIL/.notmuch)
- notmuch new
- notmuch restore notmuch.dump
+ notmuch dump > notmuch.dump
+ # Backup, then remove notmuch database ($MAIL/.notmuch)
+ notmuch new
+ notmuch restore notmuch.dump
### Support for PGP/MIME
In notmuch-show mode, if a collapsed message has the same subject as
its parent, the subject is not shown.
-### Automatic detection and hiding of original message in top-posted message
+### Automatic detection and hiding of original message in top-posted message
When a message contains a line looking something like:
- ----- Original Message -----
+ ----- Original Message -----
emacs hides this and all subsequent lines as an "original message",
(allowing the user to click or press enter on the "original message"
tool. To facilitate this, two new hooks are added which can be
modified in the following settings of the notmuch customize group:
- Notmuch Before Tag Hook
- Notmuch After Tag Hook
+ Notmuch Before Tag Hook
+ Notmuch After Tag Hook
### New optional support for hiding some multipart/alternative parts
multipart/alternative group (such as a text/plain part as well as a
text/html part). Users can configure the setting:
- Notmuch Show All Multipart/Alternative Parts
+ Notmuch Show All Multipart/Alternative Parts
to "off" in the notmuch customize group to have the interface
automatically hide some part alternatives (such as text/html
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
--------------------------
-Felipe Contreras provided a number of updates for the vim interface:
+### Felipe Contreras provided a number of updates for the vim interface:
* Using sendmail directly rather than mailx,
* Implementing archive in show view
(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__()`
- These allow, for example:
- if msg1 == msg2: ...
+
+ These allow, for example:
+
+ if msg1 == msg2: ...
As well as set arithmetic on `Messages()`:
- s1, s2= set(msgs1), set(msgs2)
- s1.union(s2)
- s2 -= s1
+ s1, s2 = set(msgs1), set(msgs2)
+ s1.union(s2)
+ s2 -= s1
Removed:
+
- len(Messages()) as it exhausted the iterator.
Use len(list(Messages())) or
`Query.count_messages()` to get the length.
This can be used with the widely-supported idiom of simply running
the configure script from some other directory:
- mkdir build
- cd build
- ../configure
- make
+ mkdir build
+ cd build
+ ../configure
+ make
### Fix to save configure options for future, implicit runs of configure
This fixed a bug where a search for:
- to:user@elsewhere.com
+ to:user@elsewhere.com
would incorrectly match a message sent:
- To: user@example,com, someone@elsewhere.com
+ To: user@example,com, someone@elsewhere.com
### Fix --output=json when search has no results
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)`.
+### Fix core dump on DragonFlyBSD due to -1 return value from `sysconf(_SC_GETPW_R_SIZE_MAX)`
### Cleaned up several memory leaks
Vim interface improvements
--------------------------
-Jason Woofenden provided a number of bug fixes for the Vim interface
+### Jason Woofenden provided a number of bug fixes for the Vim interface
* fix citation/signature fold lengths
* fix cig/cit parsing within multipart/*
* fix from list reformatting in search view
* fix space key: now archives (did opposite)
-Uwe Kleine-König contributed
+### Uwe Kleine-König contributed
* use full path for sendmail/doc fix
* fix compose temp file name
Python Bindings changes
-----------------------
-Sebastian Spaeth contributed two changes related to unicode and UTF8:
+### Sebastian Spaeth contributed two changes related to unicode and UTF8:
* message tags are now explicitly unicode
* query string is encoded as a UTF8 byte string
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
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.