From: Tomi Ollila Date: Tue, 6 May 2014 08:33:25 +0000 (+0300) Subject: A release-0.18.mdwn X-Git-Url: https://git.cworth.org/git?p=notmuch-wiki;a=commitdiff_plain;h=2673b161e8f0cfb63348d96cbfecbbdecbc9c3d9 A release-0.18.mdwn --- diff --git a/news/release-0.18.mdwn b/news/release-0.18.mdwn new file mode 100644 index 0000000..5bf7321 --- /dev/null +++ b/news/release-0.18.mdwn @@ -0,0 +1,236 @@ +[[!meta date="2014-05-06"]] + +Notmuch 0.18 (2014-05-06) +========================= + +Overview +-------- + +This new release includes some enhancements to searching for messages +by filesystem location (`folder:` and `path:` prefixes under *General* +below). Saved searches in *Emacs* have also been enhanced to allow +distinct search orders for each one. Another enhancement to the +*Emacs* interface is that replies to encrypted messages are now +encrypted, reducing the risk of unintentional information disclosure. +The default dump output format has changed to the more robust +`batch-tag` format. The previously deprecated parsing of single +message mboxes has been removed. For detailed release notes, see +below. + +General +------- + +### The `folder:` search prefix now requires an exact match + +The `folder:` prefix has been changed to search for email messages +by the exact, case sensitive maildir or MH folder name. Wildcard +matching (`folder:foo*`) is no longer supported. The new behaviour +allows for more accurate mail folder based searches, makes it +possible to search for messages in the top-level folder, and should +lead to less surprising results than the old behaviour. Users are +advised to see the `notmuch-search-terms` manual page for details, +and review how the change affects their existing `folder:` searches. + +There is a new `path:` search prefix. + +The new `path:` search prefix complements the `folder:` prefix. The +`path:` prefix searches for email messages that are in particular +directories within the mail store, optionally recursively using a +special syntax. See the `notmuch-search-terms` manual page for +details. + +### Notmuch database upgrade due to `folder:` and `path:` changes + +The above mentioned changes to the `folder:` prefix and the addition +of `path:` prefix require a Notmuch database upgrade. 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. + +Library changes +--------------- + +### Notmuch database upgrade + +The libnotmuch consumers are reminded to handle database upgrades +properly, either by relying on running `notmuch new`, or checking +`notmuch_database_needs_upgrade()` and calling +`notmuch_database_upgrade()` as necessary. This has always been the +case, but in practise there have been no database upgrades in any +released version of Notmuch before now. + +### Support for indexing mbox files has been dropped + +There has never been proper support for mbox files containing +multiple messages, and the support for single-message mbox files has +been deprecated since Notmuch 0.15. The support has now been +dropped, and all mbox files will be rejected during indexing. + +### Message header parsing changes + +Notmuch previously had an internal parser for message headers. The +parser has now been dropped in favour of letting GMime parse both +the headers and the message MIME structure at the same pass. This is +mostly an internal change, but the GMime parser is stricter in its +interpretation of the headers. This may result in messages with +slightly malformed message headers being now rejected. + +Command-Line Interface +---------------------- + +### `notmuch dump` now defaults to `batch-tag` format + +The old format is still available with `--format=sup`. + +### `notmuch new` has a --quiet option + +This option suppresses the progress and summary reports. + +### `notmuch insert` respects maildir.synchronize_flags config option + +Do not synchronize tags to maildir flags in `notmuch insert` if the +user does not want it. + +### 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 +the status codes for format version mismatches for commands that +support formatted output. + +### Bug fix for checking configured new.tags for invalid tags + +`notmuch new` and `notmuch insert` now check the user configured +new.tags for invalid tags, and refuse to apply them, similar to +`notmuch tag`. Invalid tags are currently the empty string and tags +starting with `-`. + +Emacs Interface +--------------- + +### Init file + +If the file pointed by new variable `notmuch-init-file` (typically +`~/.emacs.d/notmuch-config.el`) exists, it is loaded at the end of +`notmuch.el`. Users can put their personal notmuch emacs lisp based +configuration/customization items there instead of filling +`~/.emacs` with these. + +### Changed format for saved searches + +The format for `notmuch-saved-searches` has changed, but old style +saved searches are still supported. The new style means that a saved +search can store the desired sort order for the search, and it can +store a separate query to use for generating the count notmuch +shows. + +The variable is fully customizable and any configuration done +through customize should *just work*, with the additional options +mentioned above. For manual customization see the documentation for +`notmuch-saved-searches`. + +IMPORTANT: a new style notmuch-saved-searches variable will break +previous versions of notmuch-emacs (even search will not work); to +fix remove the customization for notmuch-saved-searches. + +If you have a custom saved search sort function (not unsorted or +alphabetical) then the sort function will need to be +modified. Replacing (car saved-search) by (notmuch-saved-search-get +saved-search :name) and (cdr saved-search) by +(notmuch-saved-search-get saved-search :query) should be sufficient. + +### The keys of `notmuch-tag-formats` are now regexps + +Previously, the keys were literal strings. Customized settings of +`notmuch-tag-formats` will continue to work as before unless tags +contain regexp special characters like `.` or `*`. + +### Changed tags are now shown in the buffer + +Previously tag changes made in a buffer were shown immediately. In +some cases (particularly automatic tag changes like marking read) +this made it hard to see what had happened (e.g., whether the +message had been unread). + +The changes are now shown explicitly in the buffer: by default +deleted tags are displayed with red strike-through and added tags +are displayed underlined in green (inverse video is used for deleted +tags if the terminal does not support strike-through). + +The variables `notmuch-tag-deleted-formats` and +`notmuch-tag-added-formats`, which have the same syntax as +`notmuch-tag-formats`, allow this to be customized. + +Setting `notmuch-tag-deleted-formats` to `'((".*" nil))` and +`notmuch-tag-added-formats` to `'((".*" tag))` will give the old +behavior of hiding deleted tags and showing added tags identically +to tags already present. + +### Version variable + +The new, build-time generated variable `notmuch-emacs-version` is used +to distinguish between notmuch cli and notmuch emacs versions. +The function `notmuch-hello-versions` (bound to 'v' in notmuch-hello +window) prints both notmuch cli and notmuch emacs versions in case +these differ from each other. +This is especially useful when using notmuch remotely. + +### Ido-completing-read initialization in Emacs 23 + +`ido-completing-read` in Emacs 23 versions 1 through 3 freezes unless +it is initialized. Defadvice-based *Ido* initialization is defined +for these Emacs versions. + +### Bug fix for saved searches with newlines in them + +Split lines confuse `notmuch count --batch`, so we remove embedded +newlines before calling notmuch count. + +### Bug fixes for sender identities + +Previously, Emacs would rewrite some sender identities in unexpected +and undesirable ways. Now it will use identities exactly as +configured in `notmuch-identities`. + +### Replies to encrypted messages will be encrypted by default + +In the interest of maintaining confidentiality of communications, +the Notmuch Emacs interface now automatically adds the mml tag to +encrypt replies to encrypted messages. This should make it less +likely to accidentally reply to encrypted messages in plain text. + +### Reply pushes mark before signature + +We push mark and set point on reply so that the user can easily cut +the quoted text. The mark is now pushed before the signature, if +any, instead of end of buffer so the signature is preserved. + +### Message piping uses the originating buffer's working directory + +`notmuch-show-pipe-message` now uses the originating buffer's +current default directory instead of that of the `*notmuch-pipe*` +buffer's. + +nmbug +----- + +nmbug adds a `clone` command for setting up the initial repository and +uses `@{upstream}` instead of `FETCH_HEAD` to track upstream changes. + +The `@{upstream}` change reduces ambiguity when fetching multiple +branches, but requires existing users update their `NMBGIT` +repository (usually `~/.nmbug`) to distinguish between local and +remote-tracking branches. The easiest way to do this is: + + 1. If you have any purely local commits (i.e. they aren't in the + nmbug repository on nmbug.tethera.net), push them to a remote + repository. We'll restore them from the backup in step 4. + 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 + + 4. If you had local commits in step 1, add a remote for that + repository and fetch them into the new repository.