X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=NEWS;h=bf661fe4a01cec0f2c48429a0dbd5007d3e07fbe;hp=10752fa788122d92182d696eb29ecb755e53d1ce;hb=f25e48e0234a050cab38306a066605a0f8bd3d12;hpb=eff029de4a8782ccfe20e26814c740a271cb5285 diff --git a/NEWS b/NEWS index 10752fa7..a88d31ac 100644 --- a/NEWS +++ b/NEWS @@ -1,15 +1,741 @@ -Notmuch 0.26 (UNRELEASED) +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_queries` 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 occurence 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 ---------- -Out-of-tree builds +Test suite fixes for compatibility with Emacs 27.1. - 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. +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 +---------- + +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. + + +Notmuch 0.26 (2018-01-09) +========================= Command Line Interface ---------------------- @@ -35,6 +761,30 @@ Support maildir synced tags in `new.tags` 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 -------------- @@ -43,15 +793,34 @@ 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 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". - 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. +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 --------------- @@ -67,12 +836,36 @@ 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 --------------- @@ -85,7 +878,9 @@ 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* +Add python bindings for `notmuch_database_{get,set}_config*` + +Optional `decrypt_policy` flag is available for notmuch.database().index_file() nmbug ----- @@ -100,6 +895,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. +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) =========================== @@ -595,7 +1400,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. - The same issue occured with sort modes. + The same issue occurred with sort modes. Notmuch 0.22.2 (2016-09-08) =========================== @@ -955,7 +1760,7 @@ Path to gpg is now configurable Emacs ----- -Avoid rendering large text attachements. +Avoid rendering large text attachments. Improved rendering of CID references in HTML. @@ -996,7 +1801,7 @@ Documentation 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 @@ -1375,7 +2180,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, - 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. @@ -1509,7 +2314,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: - 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. @@ -2585,7 +3390,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 - 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 @@ -2620,7 +3425,7 @@ mailing list. 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)