Notmuch 0.26 (2018-01-09)
Command Line Interface
Support for re-indexing existing messages
There is a new subcommand, notmuch reindex
, which re-indexes all
messages matching supplied search terms. This permits users to
change the way specific messages are indexed.
Note that for messages with multiple variants in the message archive, the recorded Subject: of may change upon reindexing, depending on the order in which the variants are indexed.
Improved error reporting in notmuch new
Give more details when reporting certain Xapian exceptions.
Support maildir synced tags in new.tags
Tags draft
, flagged
, passed
, and replied
are now supported
in new.tags
. The tag unread
is still special in the presence of
maildir syncing, and will be added for files in new/
regardless of
the setting of new.tags
.
Support /regex/ in new.ignore
Files and directories may be ignored based on regular expressions.
Allow notmuch insert --folder=""
This inserts into the top level folder.
Strip trailing '/' from folder path for notmuch insert
This prevents a potential problem with duplicated database records.
New option --output=address for notmuch address
Make notmuch show
more robust against deleting duplicate files
The option --decrypt now takes an explicit argument
The --decrypt option to notmuch show
and notmuch reply
now takes
an explicit argument. If you were used to invoking notmuch show
--decrypt
, you should switch to notmuch show --decrypt=true
.
Boolean and keyword arguments now take a --no-
prefix
Encrypted Mail
Indexing cleartext of encrypted e-mails
It's now possible to include the cleartext of encrypted e-mails in the notmuch index. This makes it possible to search your encrypted e-mails with the same ease as searching cleartext. This can be done on a per-message basis by passing --decrypt=true to indexing commands (new, insert, reindex), or by default by running "notmuch config set index.decrypt true".
Encrypted messages whose cleartext is indexed will typically also
have their session keys stashed as properties associated with the
message. Stashed session keys permit rapid rendering of long
encrypted threads, and disposal of expired encryption-capable keys.
If for some reason you want cleartext indexing without stashed
session keys, use --decrypt=nostash for your indexing commands (or
run "notmuch config set index.decrypt nostash"). See index.decrypt
in notmuch-config(1) for more details.
Note that stashed session keys permit reconstruction of the cleartext of the encrypted message itself, and the contents of the index are roughly equivalent to the cleartext as well. DO NOT USE this feature without considering the security of your index.
Emacs
Guard against concurrent searches in notmuch-tree
Use make-process when available
This allows newer Emacs to separate stdout and stderr from the notmuch command without using temporary files.
Library Changes
Indexing files with duplicate message-id
Files with duplicate message-id's are now indexed, and searchable via terms and phrases. There are known issues related to presentation of results and regular-expression search, but in principle no mail file should be completely unsearchable now.
New functions to count files
Two new functions in the libnotmuch API:
notmuch_message_count_files
, and notmuch_thread_get_total_files
.
New function to remove properties
A new function was added to the libnotmuch API to make it easier to
drop all properties with a common pattern:
notmuch_message_remove_all_properties_with_prefix
Change of return value of notmuch_thread_get_authors
In certain corner cases, notmuch_thread_get_authors
previously
returned NULL. This has been replaced by an empty string, since the
possibility of NULL was not documented.
Transition notmuch_database_add_message
to notmuch_database_index_file
When indexing an e-mail message, the new
notmuch_database_index_file
function is the preferred form, and
the old notmuch_database_add_message
is deprecated. The new form
allows passing a set of options to the indexing engine, which the
operator may decide to change from message to message.
Test Suite
Out-of-tree builds
The test suite now works properly with out-of-tree builds, i.e. with separate source and build directories. The --root option to tests has been dropped. The same can now be achieved more reliably using out-of-tree builds.
Python Bindings
Python bindings specific Debian packaging is removed
The bindings have been build by the top level Debian packaging for a
long time, and bindings/python/debian
has bit-rotted.
Open mail files in binary mode when using Python 3
This avoids certain encoding related crashes under Python 3.
Add python bindings for notmuch_database_{get,set}_config*
Optional decrypt_policy
flag is available for notmuch.database().index_file()
nmbug
nmbug's internal version increases to 0.3 in this notmuch release. User-facing changes with this notmuch release:
- Accept failures to unset
core.worktree
inclone
, which allows nmbug to be used with Git 2.11.0 and later. - Auto-checkout in
clone
if it wouldn't clobber existing content, which makes the initial clone more convenient. - Only error for invalid diff lines in
tags/
, which allows forREADME
s and similar in nmbug repositories.
Documentation
New man page: notmuch-properties(7)
This new page to the manual describes common conventions for how properties are used by libnotmuch, the CLI, and associated programs. External projects that use properties are encouraged to claim their properties and conventions here to avoid collisions.