]> git.notmuchmail.org Git - notmuch/blobdiff - NEWS
emacs: Add new option notmuch-search-hide-excluded
[notmuch] / NEWS
diff --git a/NEWS b/NEWS
index 3b6404e75b8120e163b852c84640ae84f42229f5..cf8107f26362431549dc410cb8379de5c10221f1 100644 (file)
--- a/NEWS
+++ b/NEWS
-Notmuch 0.26 (UNRELEASED)
+Notmuch 0.38.3 (2024-03-09)
+===========================
+
+CLI
+---
+
+Fix a bug in configuration code that caused the notmuch command to
+erroneously report "Error: could not locate database" under some
+circumstances.
+
+Notmuch 0.38.2 (2023-12-01)
+===========================
+
+Library
+-------
+
+Make sorting of string maps lexicographic on (key,value) pairs. This
+avoids some test failures due to variation in message property output
+order.
+
+Emacs
+-----
+
+Avoid extra separators after the last address in `notmuch-emacs-mua`.
+
+
+Notmuch 0.38.1 (2023-10-26)
+===========================
+
+CLI
+---
+
+Report parse errors in config files.
+
+Emacs
+-----
+
+Fix image toggling for Emacs >= 29.1.
+
+notmuch-mutt
+------------
+
+Fix syntax error in script.
+
+Notmuch 0.38 (2023-09-12)
+=========================
+
+General
+-------
+
+Support relative lastmod queries (see notmuch-sexp-queries(7) and
+notmuch-search-terms(7) for details).
+
+Support indexing of designated attachments as text (see
+notmuch-config(1) for details).
+
+CLI
+---
+
+Add options --offset and --limit to notmuch-show(1).
+
+Emacs
+-----
+
+New commands notmuch-search-edit-search and notmuch-tree-edit-search.
+
+Introduce notmuch-tree-outline-mode.
+
+Some compatibility fixes for Emacs 29. At least one issue (hiding
+images) remains in 0.38.
+
+Support completion when piping to external command.
+
+Fix regression in updating tag display introduced by 0.37.
+
+Library
+-------
+
+Fix bug creating database when database.path is not set.
+
+Incremental performance improvements for message deletion.
+
+Catch Xapian exceptions when deleting messages.
+
+Sync removed message properties to the database.
+
+Replace use of thread-unsafe Query::MatchAll in the infix query
+parser.
+
+Notmuch-Mutt
+------------
+
+Be more careful when clearing the results directory.
+
+Ruby
+----
+
+Use `database_open_with_config`, and provide compatible path search
+semantics.
+
+Bugfix for query.get_sort
+
+Test Suite
+----------
+
+Support testing installed version of notmuch.
+
+Adapt to some breaking changes in glib handling of init files.
+
+Replace OpenPGP key used in test suite.
+
+Performance Tests
+-----------------
+
+Update signatures for performance test corpus.
+
+Notmuch 0.37 (2022-08-21)
+=========================
+
+Library
+-------
+
+Fix uninitialized field in message objects.
+
+Improve exception handling and error propagation for message objects.
+
+Sexp Queries
+------------
+
+Add one sided lastmod ranges for sexp queries.
+
+Expand macro parameters inside regex and wildcard modifiers.
+
+Command Line Interface
+----------------------
+
+`notmuch help` now works for external commands.
+
+`NOTMUCH_CONFIG` is now passed to external commands and hooks.
+
+Promote the development tool `nmbug` to a user facing tool
+`notmuch-git`. See notmuch-git(1) for details.
+
+Emacs
+-----
+
+The function `notmuch-mua-mail` now moves point depending on the
+provided arguments.
+
+Restrict what mime types are inlined in replies and on refresh.
+
+The functions in notmuch-query.el are now obsolete and may be removed
+in a future version of Notmuch.
+
+Add some controls for lazy display of message bodies (See "Dealing
+with large messages and threads" in the notmuch-emacs documentation).
+
+Allow the user to select (with '%') a different duplicate message file
+to display.
+
+Use `message-dont-reply-to-names` in `notmuch-message-mode`.
+
+Support custom header-line format for notmuch-show mode.
+
+Notmuch 0.36 (2022-04-25)
+=========================
+
+Library
+-------
+
+Add the `sexp` prefix to the infix (traditional) query parser. This
+allows specific subqueries to be parsed by the sexp parser (with
+appropriate quoting). See `notmuch-search-terms(7)` for details.
+
+Add another heuristic to regexp fields to prevent phrase parsing of
+bracketed sub-expressions.
+
+Command Line Interface
+----------------------
+
+Envelope from ("From ") headers are now escaped as X-Envelope-From: in
+input to `notmuch-insert`. This prevents creating mbox files when
+calling `notmuch-insert` from e.g. `postfix`.
+
+Python (CFFI) Bindings
+----------------------
+
+Use the `config_pairs` API in ConfigIterator. This returns all
+matching key-value pairs, not just those that happen to be stored in
+the database.
+
+Documentation
+-------------
+
+Reorganize documentation for `notmuch-config`. Add a few links from
+other man pages.
+
+Emacs
+-----
+
+Bind the usual undo key sequences to new command
+"notmuch-tag-undo". This allows transparent undo of tagging
+operations.
+
+Tests
+-----
+
+Fix smime.4 with newer gmime. Unset `XDG_DATA_HOME` and `MAILDIR` for tests.
+
+New add-on tool: notmuch-web
+-----------------------------
+
+The new devel/ tool `notmuch-web` is a very thin web client.  It
+supports a full search interface for one user: there is no facility
+for multiple users provided today.  See the notmuch-web README file
+for more information.
+
+Be careful about running it on a network-connected system: it will
+expose a web interface that requires no authentication but exposes
+your mail store.
+
+Notmuch 0.35 (2022-02-06)
+=========================
+
+Library
+-------
+
+Implement the `date` and `lastmod` fields in the S-expression parser.
+
+Ignore trailing `/` for pathnames in both query parsers.
+
+Rename configuration option `built_with.sexpr_query` to
+`built_with.sexp_queries`.
+
+Do not assume a default mail root in split (e.g. XDG) configurations.
+
+Fix some small memory leaks in `notmuch_database_open_with_config`.
+
+CLI
+---
+
+Improve handling of leading/trailing punctuation and space for
+configuration lists.
+
+Only ignore `.notmuch` at the top level in `notmuch new`.
+
+Optionally show extra headers in `notmuch show`. See
+`show.extra_headers` in notmuch-config(1).
+
+Emacs
+-----
+
+Drop `C-TAB` binding in hello mode, document `backtab`.
+
+Fix visual glitch in search mode by running `notmuch-search-hook`
+lazily.
+
+Don't add space to completion candidates, improves compatibility with
+third party completion frameworks.
+
+Make citation formatting more robust against whitespace.
+
+Use `--excludes=false` when generating the 'All tags' section.
+
+Use cached copy of message body for `Fcc`, avoiding variant bodies for
+signed and/or encrypted messages.
+
+Add notmuch-logo.svg and use it in notmuch-hello view, replacing
+the .png version.
+
+Make header line in show buffers optional.
+
+Add customizable names for search buffers.
+
+Build
+-----
+
+Fix out-of-tree build for `python-cffi` bindings.
+
+Rearrange position of {C,CXX,CPP,LD}FLAGS, prevent some clashes with
+installed version of notmuch.
+
+Ignore more configure options.
+
+Test Suite
+----------
+
+Replace some uses of `gdb` in the test suite with `LD_PRELOAD` based
+shims.
+
+Use `--with-colons` for gpgsm, fix compatibility with newer gnupg.
+
+Python bindings
+---------------
+
+Add `matched` property to message objects.
+
+Users are reminded that the old python bindings in bindings/python are
+deprecated; this will probably be the last major release that ships
+them.
+
+Completion
+----------
+
+Use `database.mail_root` for path completion in bash/zsh.
+
+Notmuch 0.34.3 (2022-01-09)
+===========================
+
+Library
+-------
+
+Do not crash when presented with a .notmuch directory without a
+xapian/ subdirectory.
+
+Python Bindings (notmuch2)
+--------------------------
+
+Database constructor now searches for configuration by default. Pass
+`config=Database.CONFIG.EMPTY` to disable.
+
+The `Message.replies()` method now returns OwnedMessage objects, to
+prevent certain memory de-allocation errors.
+
+Fix for importing `notmuch2` module when building bindings
+documentation.
+
+Notmuch 0.34.2 (2021-12-09)
+===========================
+
+Library
+-------
+
+Fix a bug that wrongly resolved conflict between the `database_path`
+parameter to `notmuch_database_open_with_config` and configuration
+item `database.path` in favour of the latter.
+
+Python Bindings (notmuch2)
+--------------------------
+
+When building the documentation for the `notmuch2` python module,
+import from the built module, not a system wide installed one.
+
+The notmuch2.Database constructor now uses the library function
+`notmuch_database_open_with_config` to support the same configuration
+and database location options as the library does.
+
+Fix some unprintable exception objects.
+
+Notmuch 0.34.1 (2021-11-03)
+===========================
+
+Library
+-------
+
+Fix for deallocation and nulling of output parameter for
+notmuch_database_{open_with,create_with,load}_config when errors
+occur. This change fixes a potential use-after-free bug that has been
+present since 0.32. This release also improves the documentation of
+status returns for the same 3 functions.
+
+Notmuch 0.34 (2021-10-20)
+=========================
+
+General
+-------
+
+An optional new s-expression based query parser is available if
+notmuch is built with the `sfsexp` library. See
+notmuch-sexp-queries(7) for syntax, and use `notmuch config get
+built_with.sexpr_query` to check if notmuch is compiled with
+s-expression query support.
+
+CLI
+---
+
+Support multiple `Delivered-To` headers in notmuch-reply(1).
+
+Emacs
+-----
+
+Functions are now allowed in `notmuch-search-result-format`.
+
+Improvements to unthreaded view on large threads.
+
+Tolerate bad/missing working directory for most commands.
+
+Allow customization of tree drawing symbols in notmuch-tree mode.
+
+Notmuch 0.33.2 (2021-09-30)
+===========================
+
+Tests
+-----
+
+Improve reliability of T355-smime by changing gpgsm initialization.
+
+Notmuch 0.33.1 (2021-09-10)
+===========================
+
+General
+-------
+
+Replace the fully-qualified-domain-name of the host with "localhost"
+in the default email address.  This should fix two flaky subtests in
+T590-libconfig.
+
+Notmuch 0.33 (2021-09-03)
+=========================
+
+Library
+-------
+
+Correct documentation about transactions.
+
+Add a configurable automatic commit of transactions. See
+`database.autocommit` in notmuch-config(1).
+
+Document the algorithm used to find a database.
+
+CLI
+---
+
+Define format version 5, which supports sorting the output of
+notmuch-show.
+
+Emacs
+-----
+
+`notmuch` no longer sets `mail-user-agent` on load. To restore the
+previous behaviour of using notmuch to send mail by default, customize
+`mail-user-agent` to `notmuch-user-agent`.
+
+`notmuch-company` now works in `org-msg`.
+
+Improve the display of messages from long threads in unthreaded mode.
+
+Prefer email addresses over User ID when showing valid signatures.
+
+Define a new face `notmuch-jump-key`.
+
+New commands in notmuch-tree view: `notmuch-tree-filter` and `notmuch-tree-filter-by-tag`.
+
+Honour `notmuch-show-text/html-blocked-images` when using `w3m` to
+render html.
+
+Support toggling sort order in notmuch-tree mode.
+
+Ruby
+----
+
+Memory management of allocated notmuch objects (database, messages,
+etc...) is now done via the Ruby GC. This removes all constraints on
+the order of object destruction.  Database close and destroy are
+split, following an old library API change.
+
+Vim
+---
+
+Respect excluded tags when showing a thread.
+
+Documentation
+-------------
+
+Fix doc build for Sphinx 4.0.
+
+Improve the markup and linking of the documentation.
+
+Notmuch 0.32.3 (2021-08-17)
+===========================
+
+Library
+-------
+
+Restore location of database via `MAILDIR` environment variable, which
+was broken in 0.32.
+
+Bump libnotmuch minor version to match the documentation in
+`notmuch.h`.
+
+Correct documentation for deprecated database opening functions to
+point out that they (still) do not load configuration information.
+
+CLI
+---
+
+Restore "notmuch config get built_with.*", which was broken in 0.32.
+
+Notmuch 0.32.2 (2021-06-27)
+===========================
+
+General
+-------
+
+Fix a bug from 2017 that can add duplicate thread-id terms to message
+documents.
+
+CLI
+---
+
+Fix small memory leak in notmuch new.
+
+Emacs
+-----
+
+Add `(require 'seq)` for `seq-some`.
+
+Documentation
+-------------
+
+Fix man page build for Sphinx 4.x. Fix variable name in emacs docs.
+
+Tests
+-----
+
+Fix backup creation in `perf-test/T00-new`.  Check openssl
+prerequisite in `add_gpgsm_home`.
+
+Notmuch 0.32.1 (2021-05-15)
+===========================
+
+General
+-------
+
+Restore handling of relative values for `database.path` that was
+broken by 0.32. Extend this handling to `database.mail_root`,
+`database.backup_dir`, and `database.hook_dir`.
+
+Reload certain metadata from Xapian database in
+notmuch_database_reopen. This fixes a bug when adding messages to the
+database in a pre-new hook.
+
+Fix default of `$HOME/mail` for `database.path`. In release 0.32, this
+default worked only in "notmuch config".
+
+Emacs
+-----
+
+Restore the dynamically bound variables `tag-changes` and `query` in
+in `notmuch-before-tag-hook` and `notmuch-after-tag-hook`.
+
+Add `notmuch-jump-key` face to fontify keys in `notmuch-jump` and
+related functions.  To ensure backward compatibility, the new face
+inherits from `minibuffer-prompt`.
+
+Notmuch 0.32 (2021-05-02)
+=========================
+
+General
+-------
+
+This release includes a significant overhaul of the configuration
+management facilities for notmuch.  The previous distinction between
+configuration items that can be modified via plain text configuration
+files and those that must be set in the database via the "notmuch
+config" subcommand is gone, and all configuration items can be set in
+both ways.  The external configuration file overrides configuration
+items in the database. The location of database, hooks, and
+configuration files is now more flexible, with several new
+configuration variables. In particular XDG locations are now supported
+as fallbacks for database, configuration and hooks. For more
+information see `notmuch-config(1)`.
+
+Library
+-------
+
+To support the new configuration facilities, several functions and
+constants have been added to the notmuch API. Most notably:
+
+- `notmuch_database_create_with_config`
+- `notmuch_database_open_with_config`
+- `notmuch_database_load_config`
+- `notmuch_config_get`
+
+A previously requested API change is that `notmuch_database_reopen` is
+now exposed (and generalized).
+
+The previously severe slowdowns from large numbers calls to
+notmuch_database_remove_message or notmuch_message_delete in one
+session has been fixed.
+
+As always, the canonical source of API documentation is
+`lib/notmuch.h`, or the doxygen formatted documentation in `notmuch(3)`.
+
+CLI
+---
+
+The `notmuch config set` subcommand gained a `--database` argument to
+specify that the database should be updated, rather than a config file.
+
+The speed of `notmuch new` and `notmuch reindex` in dealing with large
+numbers of mail file deletions is significantly improved.
+
+Emacs
+-----
+
+Completion related updates include: de-duplicating tags offered for
+completion, use the actual initial input in address completion, allow
+users to opt out of notmuch address completion, and do not force Ido
+when prompting for senders.
+
+Some keymaps used to contain bindings for unnamed commands.  These
+lambda expressions have been replaced by named commands (symbols), to
+ease customization.
+
+Lexical binding is now used in all notmuch-emacs libraries.
+
+Fix bug in calling `notmuch-mua-mail` with a non-nil RETURN-ACTION.
+
+Removed, inlined or renamed functions and variables:
+    `notmuch-address-locate-command`,
+    `notmuch-documentation-first-line`, `notmuch-folder`,
+    `notmuch-hello-trim', `notmuch-hello-versions` => `notmuch-version`,
+    `notmuch-remove-if-not`, `notmuch-search-disjunctive-regexp`,
+    `notmuch-sexp-eof`, `notmuch-split-content-type`, and
+    `notmuch-tree-button-activate`.
+
+Keymaps are no longer fset, which means they need to be referred to in
+define-key directly (without quotes).  If your Emacs configuration has a
+keybinding like:
+   (define-key 'notmuch-show-mode-map "7" 'foo)
+you should change it to:
+   (define-key notmuch-show-mode-map "7" 'foo)
+
+Notmuch 0.31.4 (2021-02-18)
+===========================
+
+Library
+-------
+
+Fix include bug triggered by glib 2.67.
+
+Test
+----
+
+Fix race condition in T568-lib-thread.
+
+Notmuch 0.31.3 (2020-12-25)
+===========================
+
+Bindings
+--------
+
+Fix for exclude tags in notmuch2 bindings.
+
+Build
+-----
+
+Portability update for T360-symbol-hiding.
+
+Library
+-------
+
+Fix for memory error in notmuch_database_get_config_list.
+
+Notmuch 0.31.2 (2020-11-08)
+===========================
+
+Build
+-----
+
+Catch one more occurrence of "version" in the build system, which
+caused the file to be regenerated in the release tarball.
+
+Notmuch 0.31.1 (2020-11-08)
+===========================
+
+Library
+-------
+
+Fix a memory initialization bug in notmuch_database_get_config_list.
+
+Build
+-----
+
+Rename file 'version' to 'version.txt'. The old file name conflicted
+with a C++ header for some compilers.
+
+Replace use of coreutils `realpath` in configure.
+
+Notmuch 0.31 (2020-09-05)
+=========================
+
+Emacs
+-----
+
+Notmuch now supports Emacs 27.1. You may need to set
+`mml-secure-openpgp-sign-with-sender` and/or
+`mml-secure-smime-sign-with-sender` to continue signing messages.
+
+The minimum supported major version of GNU Emacs is now 25.1.
+
+Add support for moving between threads after notmuch-tree-from-search-thread.
+
+New `notmuch-unthreaded` mode (added in Notmuch 0.30)
+
+  Unthreaded view is a mode where each matching message is shown on a
+  separate line.
+
+  The main key entries to unthreaded view are
+
+  'u' enter a query to view in unthreaded mode (works in hello,
+      search, show and tree mode)
+
+  'U' view the current query in unthreaded mode (works from search,
+      show and tree)
+
+  Saved searches can also specify that they should open in unthreaded
+  view.
+
+  Currently it is not possible to specify the sort order: it will
+  always be newest first.
+
+Notmuch-Mutt
+------------
+
+The shell pipeline executed by notmuch-mutt, which symlinked matched
+files to a maildir for mutt to access is replaced with internal perl
+processing. This search operation is now more portable, and somewhat
+faster.
+
+Library
+-------
+
+Improve exception handling in the library. This should
+largely eliminate terminations inside the library due to uncaught
+exceptions or internal errors.  No doubt there are a few uncovered
+code paths still; please report them as bugs.
+
+Add `notmuch_message_get_flag_st` and
+`notmuch_message_has_maildir_flag_st`, and deprecate the existing
+non-status providing versions.
+
+Move memory de-allocation from `notmuch_database_close` to
+`notmuch_database_destroy`.
+
+Handle relative filenames in `notmuch_database_index_file`, as
+promised in the documentation.
+
+Python Bindings
+---------------
+
+Documentation for the python bindings is merged into the main
+sphinx-doc documentation tree. The merged documentation can be built
+with e.g. `make sphinx-html`
+
+Dependencies
+------------
+
+We now support building notmuch against Xapian 1.5 (the current
+development version).
+
+Test Suite
+----------
+
+Test suite fixes for compatibility with Emacs 27.1.
+
+Build System
+------------
+
+Man pages are now compressed reproducibly.
+
+Notmuch 0.30 (2020-07-10)
+=========================
+
+S/MIME
+------
+
+Handle S/MIME (PKCS#7) messages -- one-part signed messages, encrypted
+messages, and multilayer messages. Treat them symmetrically to
+OpenPGP messages. This includes handling protected headers
+gracefully.
+
+If you're using Notmuch with S/MIME, you currently need to configure
+gpgsm appropriately.
+
+Mixed-up MIME Repair
+--------------------
+
+Detect and automatically repair a common form of message mangling
+created by Microsoft Exchange (see index.repaired=mixedup in
+notmuch-properties(7)).
+
+Protected Headers
+-----------------
+
+Avoid indexing the legacy-display part of an encrypted message that
+has protected headers (see
+index.repaired=skip-protected-headers-legacy-display in
+notmuch-properties(7)).
+
+Python
+------
+
+Drop support for python2, focus on python3.
+
+Introduce new CFFI-based python bindings in the python module named
+"notmuch2".  Officially deprecate (but still support) the older
+"notmuch" module.
+
+Dependencies
+------------
+
+Support for Xapian 1.2 is removed. The minimum supported version of
+Xapian is now 1.4.0.
+
+Notmuch 0.29.3 (2019-11-27)
+===========================
+
+General
+-------
+
+Fix for use-after-free in notmuch_config_list_{key,val}.
+
+Fix for double close of file in notmuch-dump.
+
+Debian
+------
+
+Drop python2 support from shipped debian packaging.
+
+Notmuch 0.29.2 (2019-10-19)
+===========================
+
+General
+-------
+
+Fix for file descriptor leak when opening gzipped mail files. Thanks
+to James Troup for the bug report and the fix.
+
+Notmuch 0.29.1 (2019-06-11)
+===========================
+
+Build
+-----
+
+Fix for installation failure with `configure --without-emacs`.
+
+Notmuch 0.29 (2019-06-07)
 =========================
 
 =========================
 
+General
+-------
+
+Add "body:" field to allow searching for terms that occur only in the
+message body. Users will need to reindex their mail to take advantage
+of this feature.
+
+Add support for indexing user specified headers (e.g. List-Id). See
+notmuch-config(1) for details. This requires reindexing after changing
+the set of headers to be indexed.
+
+Fix bug for searching in some headers for Xapian keywords in quoted
+strings.
+
+Add support for gzip compressed mail messages (/not/ multi-message
+mboxes); e.g. `gzip -9 $MAIL/archive/giant-message && notmuch new`
+should work. Note that maildir flag syncing for gzipped messages is
+currently untested.
+
+Notmuch is now capable of indexing, searching and rendering
+cryptographically-protected Subject: headers of the form produced by
+Enigmail and K-9 mail in encrypted messages.
+
+Command Line Interface
+----------------------
+
+`notmuch show` now supports --body=false and --include-html with
+--format=text.
+
+Fix several performance problems with `notmuch reindex`.
+
+`notmuch show` and `notmuch reply` now emit per-message cryptographic
+status in their json and sexp output formats.  See devel/schemata for
+more details about what is included there.  This status includes
+information about cryptographic protections for the Subject header.
+
+Emacs
+-----
+
+Optionally check for missing attachments in outgoing messages (see
+function `notmuch-mua-attachment-check`).
+
+Bind `B` to browse URLs in current message.
+
+Bind `g` to refresh the current notmuch buffer.
+
+Editing a message as new now includes an FCC header.
+
+Forwarded messages are now tagged as +forwarded (customizable).
+
+Add references header to link forwarded message to thread of original
+message.
+
+The minimum supported major version of Emacs is now 24.
+
+Support for GNU Emacs older than 25.1 is deprecated with this release,
+and may be removed in a future release.
+
+Notmuch-emacs documentation is somewhat expanded. More contributions
+are very welcome.
+
+Build System
+------------
+
+Notmuch release tarballs are now compressed with `xz`.
+
+We now provide conventional detached signatures of the release
+tarballs in addition to the signed `sha256sum` files.
+
+Dependencies
+------------
+
+Support for GMime 2.6 is removed. The minimum supported version of
+GMime is now 3.0.3.  GMime also needs to have been compiled with
+cryptography support.
+
 Test Suite
 ----------
 
 Test Suite
 ----------
 
-Out-of-tree builds
+If either GNU parallel or moreutils parallel is installed, the tests
+in the test suite will now be run in parallel (one per available
+core).  This can be disabled with NOTMUCH_TEST_SERIALIZE=1.
+
+Notmuch 0.28.4 (2019-05-05)
+===========================
+
+Command line interface
+----------------------
+
+Fix a spurious error when using `notmuch show --raw` on messages whose
+size is a multiple of the internal buffer size.
+
+Notmuch 0.28.3 (2019-03-05)
+===========================
+
+Library
+-------
+
+Fix a bug with the internal data structure _notmuch_string_map_t used
+by message properties.
+
+Build System
+------------
+
+Serialize calls to sphinx-build to avoid race condition.
+
+Notmuch 0.28.2 (2019-02-17)
+===========================
+
+Emacs
+-----
+
+Invoke gpg with --batch and --no-tty.
+
+Python Bindings
+---------------
+
+Fix documentation build with Python 3.7. Note that Python >= 3.3 is
+now needed to build this documentation.
+
+Notmuch 0.28.1 (2019-02-01)
+===========================
+
+Build System
+------------
+
+`configure` no longer uses the special variable BASH, as this causes
+problems on systems where /bin/sh is bash.
+
+Notmuch 0.28 (2018-10-12)
+=========================
+
+General
+-------
+
+Improve threading
+
+  The threading algorithm has been updated to consider all references,
+  not just the heuristically chosen parent (e.g. when that parent is
+  not in the database). The heuristic for choosing a parent message
+  has also been updated to again consider the In-Reply-To header, if
+  it looks sensible. Re-indexing might be needed to take advantage of
+  the latter change.
+
+Handle mislabelled Windows-1252 parts
+
+  Messages that contain Windows-1252 are apparently frequently
+  mislabelled as ISO 8859-1. Use GMime functionality to apply the
+  correct encoding for such messages.
+
+Command Line Interface
+----------------------
+
+Support relative database paths
+
+  Database paths (i.e. parameters to `notmuch config set
+  database.path`) without a leading `/` are now interpreted relative
+  to $HOME of the invoking user.
+
+Emacs
+-----
+
+Improve stderr handling
+
+  Add a real sentinel process to clean up stderr buffer. This is
+  needed on e.g. macOS.
+
+Call `notmuch-mua-send-hook` hooks when sending a message
+
+  This hook was documented, but not functional for a very long time.
+
+Completion
+----------
+
+The zsh completion has been updated to cover most of the notmuch
+CLI. Internally it uses regexp searching, so needs at least Notmuch
+0.24.
+
+Build System
+------------
+
+The build system now installs notmuch-mutt and notmuch-emacs-mua with
+absolute shebangs, following the conventions of most Linux
+distributions.
+
+Test Suite
+----------
+
+Fix certain tests that were failing with GMime 2.6. Users are reminded
+that support for versions of GMime before 3.0.3 has been deprecated
+since Notmuch 0.25.
+
+Notmuch 0.27 (2018-06-13)
+=========================
+
+General
+-------
+
+Add support for thread:{} queries
+
+  Queries of the form `thread:{foo} and thread:{bar}` match threads
+  containing (possibly distinct) messages matching foo and bar. See
+  `notmuch-search-terms(7)` for details.
+
+Command Line Interface
+----------------------
+
+Add the --full-scan option to `notmuch new`
+
+  This option disables mtime based optimization of scanning for new mail.
+
+Add new --decrypt=stash option for `notmuch show`
+
+  This facilitates a workflow for encrypted messages where message
+  cleartext are indexed on first read, but the user's decryption key
+  does not have to be available during message receipt.
+
+Documentation
+-------------
+
+An initial manual for `notmuch-emacs` is now installed by default (in
+`info` format).
+
+Dependencies
+------------
+
+As of this release, support for versions of Xapian before 1.4.0 is
+deprecated, and may disappear in a future release of notmuch.
+
+Notmuch 0.26.2 (2018-04-28)
+===========================
+
+Library Changes
+---------------
+
+Work around Xapian bug with `get_mset(0,0, x)`
+
+  This causes aborts in `_notmuch_query_count_documents` on
+  e.g. Fedora 28.  The underlying bug is fixed in Xapian commit
+  f92e2a936c1592, and will be fixed in Xapian 1.4.6.
+
+Make thread indexing more robust against reference loops
+
+  Choose a thread root by date in case of reference loops. Fix a
+  related abort in `notmuch show`.
+
+Notmuch 0.26.1 (2018-04-02)
+===========================
+
+Library Changes
+---------------
+
+Bump the library minor version. This should have happened in 0.26, but
+better late than never.
 
 
-  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.
+
+Notmuch 0.26 (2018-01-09)
+=========================
 
 Command Line Interface
 ----------------------
 
 Command Line Interface
 ----------------------
@@ -24,6 +1111,41 @@ Support for re-indexing existing messages
   archive, the recorded Subject: of may change upon reindexing,
   depending on the order in which the variants are indexed.
 
   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
 --------------
 
 Encrypted Mail
 --------------
 
@@ -32,15 +1154,95 @@ 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
   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 with the --decrypt argument to indexing
+  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".
 
   commands (new, insert, reindex), or by default by running "notmuch
   config set index.decrypt true".
 
-  Note that the contents of the index are sufficient to roughly
-  reconstruct the cleartext of the message itself, so please ensure
-  that the notmuch index itself is adequately protected.  DO NOT USE
+  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.
 
   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
 -----
 
@@ -54,6 +1256,16 @@ User-facing changes with this notmuch release:
 * Only error for invalid diff lines in `tags/`, which allows for
   `README`s and similar in nmbug repositories.
 
 * Only error for invalid diff lines in `tags/`, which allows for
   `README`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.
+
 Notmuch 0.25.3 (2017-12-08)
 ===========================
 
 Notmuch 0.25.3 (2017-12-08)
 ===========================
 
@@ -549,7 +1761,7 @@ Fixed constant values so they are not all zero anymore
   Previously, it was impossible to open writable database handles,
   because `DATABASE_MODE_READ_ONLY` and `DATABASE_MODE_READ_WRITE` were
   both set to zero.
   Previously, it was impossible to open writable database handles,
   because `DATABASE_MODE_READ_ONLY` and `DATABASE_MODE_READ_WRITE` were
   both set to zero.
-  The same issue occured with sort modes.
+  The same issue occurred with sort modes.
 
 Notmuch 0.22.2 (2016-09-08)
 ===========================
 
 Notmuch 0.22.2 (2016-09-08)
 ===========================
@@ -909,7 +2121,7 @@ Path to gpg is now configurable
 Emacs
 -----
 
 Emacs
 -----
 
-Avoid rendering large text attachements.
+Avoid rendering large text attachments.
 
 Improved rendering of CID references in HTML.
 
 
 Improved rendering of CID references in HTML.
 
@@ -950,7 +2162,7 @@ Documentation
 Sphinx is now mandatory to build docs
 
   Support for using rst2man in place of sphinx to build the
 Sphinx is now mandatory to build docs
 
   Support for using rst2man in place of sphinx to build the
-  docmumentation has been removed.
+  documentation has been removed.
 
 Improved notmuch-search-terms.7
 
 
 Improved notmuch-search-terms.7
 
@@ -1329,7 +2541,7 @@ Command-Line Interface
 The commands set consistent exit status codes on failures
 
   The cli commands now consistently set exit status of 1 on failures,
 The commands set consistent exit status codes on failures
 
   The cli commands now consistently set exit status of 1 on failures,
-  except where explicitly otherwise noted. The notable expections are
+  except where explicitly otherwise noted. The notable exceptions are
   the status codes for format version mismatches for commands that
   support formatted output.
 
   the status codes for format version mismatches for commands that
   support formatted output.
 
@@ -1463,7 +2675,7 @@ uses `@{upstream}` instead of `FETCH_HEAD` to track upstream changes.
   2. Remove your `NMBGIT` repository (e.g. `mv .nmbug .nmbug.bak`).
   3. Use the new `clone` command to create a fresh clone:
 
   2. Remove your `NMBGIT` repository (e.g. `mv .nmbug .nmbug.bak`).
   3. Use the new `clone` command to create a fresh clone:
 
-        nmbug clone http://nmbug.tethera.net/git/nmbug-tags.git
+        nmbug clone https://nmbug.notmuchmail.org/git/nmbug-tags.git
 
   4. If you had local commits in step 1, add a remote for that
      repository and fetch them into the new repository.
 
   4. If you had local commits in step 1, add a remote for that
      repository and fetch them into the new repository.
@@ -2539,7 +3751,7 @@ Turn "id:MSG-ID" links into buttons associated with notmuch searches
 
 Add keybinding ('c I') for stashing Message-ID's without an id: prefix
 
 
 Add keybinding ('c I') for stashing Message-ID's without an id: prefix
 
-  Reduces manual labour when stashing them for use outside notmuch.
+  Reduces manual labor when stashing them for use outside notmuch.
 
 Do not query on `notmuch-search` exit
 
 
 Do not query on `notmuch-search` exit
 
@@ -2574,7 +3786,7 @@ mailing list.
 nmbug - share tags with a given prefix
 
   nmbug helps maintain a git repo containing all tags with a given
 nmbug - share tags with a given prefix
 
   nmbug helps maintain a git repo containing all tags with a given
-  prefix (by default "notmuch::"). Tags can be shared by commiting
+  prefix (by default "notmuch::"). Tags can be shared by committing
   them to git in one location and restoring in another.
 
 Notmuch 0.9 (2011-10-01)
   them to git in one location and restoring in another.
 
 Notmuch 0.9 (2011-10-01)