[[!meta date="2015-10-29"]] Notmuch 0.21 (2015-10-29) ========================= General ------- Notmuch now requires gmime >= 2.6.7. The gmime 2.4 series is no longer supported. ### Database revision tracking: `lastmod:` queries Each message now has a metadata revision number that increases with every tagging operation. See the discussion of `lastmod:` in `notmuch-search-terms(7)` for more information. ### Date queries now support `date:..!` shorthand for `date:..` You can use, for example, `date:yesterday..!` to match from the beginning of yesterday to the end of yesterday. For further details, please refer to the `notmuch-search-terms` manual page. ### Notmuch database upgrade to support `lastmod:` queries The above mentioned `lastmod:` prefix. This will be done automatically, without prompting on the next time `notmuch new` is run after the upgrade. The upgrade is not reversible, and the upgraded database will not be readable by older versions of Notmuch. As a safeguard, a database dump will be created in the `.notmuch` directory before upgrading. Build System ------------ The ruby bindings are now built as part of the main notmuch build process. This can be disabled with the `--without-ruby` option to configure. Building the documentation can be disabled with the `--without-docs` option to configure. Skipped individual tests are no longer considered as failures. Command Line Interface ---------------------- ### Database revision tracking Two new options were added to support revision tracking. A global option "--uuid" (`notmuch(1)`) was added for to detect counter rollover and reinitialization, and `notmuch-count(1)` gained a `--lastmod` option to query database revision tracking data. ### The `notmuch address` command supports new deduplication schemes `notmuch address` has gained a new `--deduplicate` option to specify how the results should be deduplicated, if at all. The alternatives are `no` (do not deduplicate, useful for processing the results with external tools), `mailbox` (deduplicate based on the full, case sensitive name and email address), and `address` (deduplicate based on the case insensitive address part). See the `notmuch-address` manual page for further information. Emacs Interface --------------- ### `notmuch-emacs-version` is used in `User-Agent` header The value of recently introduced variable `notmuch-emacs-version` is now used as a part of `User-Agent` header when sending emails. ### Removed `notmuch-version` function by renaming it to `notmuch-cli-version` With existing variable `notmuch-emacs-version` the accompanied function which retrieves the version of `notmuch-command` is better named as `notmuch-cli-version`. ### Query input now supports completion for "is:" ### New message composition mode: `notmuch-compose-mode` This is mainly to fix fcc handling, but may be useful for user customization as well. ### Allow filtering of search results in `notmuch-show` ### Add function to rerun current tree-view search in search mode ### Bug fix for replying to encrypted messages in `notmuch-tree` mode ### Allow saved searched to specify tree view rather than search view Applies to saved searches run from `notmuch-hello`, or by a keyboard shortcut (`notmuch-jump`). Can be set in the customize interface, or by adding :search-type tree to the appropriate saved search plist in `notmuch-saved-searches`. ### Increase maximum size of rendered text parts The variable `notmuch-show-max-text-part-size` controls the maximum size (in bytes) which is automatically rendered. This may make rendering large threads slower. To get the previous behaviour set this variable to 10000. Library ------- ### The use of absolute paths is now enforced when calling `notmuch_database_{open, create}` ### New function `notmuch_directory_delete` to delete directory documents Previously there was no way to delete directory documents from the database, leading to confusing results when the "ghost" directory document of a renamed or deleted filesystem directory was encountered every time the parent directory was being scanned by `notmuch new`. The mtime of the old directory document was also used if a directory by the same name was added again in the filesystem, potentially bypassing the scan for the directory. The issues are fixed by providing a library call to delete directory documents, and deleting the old documents in `notmuch new` on filesystem directory removal or rename. ### Database revision tracking Revision tracking is supported via a new prefix "lastmod:" in the query parser and the new function `notmuch_database_get_revision`. For the latter, see `notmuch(3)`. ### New status code returning API for n_query_count_{messages,threads} ### Deprecated functions `notmuch_query_search_threads`, `notmuch_query_search_messages`, `notmuch_query_count_messages`, and `notmuch_query_count_threads` are all deprecated as of this release. Clients are encouraged to transition to the `_st` variants supporting better error reporting. nmbug-status ------------ `nmbug-status` now supports specifying the sort order for each view.