X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=NEWS;h=8df124f57b4553e85271e162ab860b6343bcda1b;hp=9db9daf01498bad41319977936e6eaabd0c05c2d;hb=0dfcb7f9bb09f41785ae0b02ef95814382ebd87c;hpb=a76682a2d2f61eb14e938eeab8f2824891d8e18c diff --git a/NEWS b/NEWS index 9db9daf0..8df124f5 100644 --- a/NEWS +++ b/NEWS @@ -1,11 +1,782 @@ -Notmuch 0.16 (2013-MM-DD) +Notmuch 0.19~rc2 (2014-11-09) +============================= + +Command-Line Interface +---------------------- + +Stopped `notmuch dump` failing if someone writes to the database + + The dump command now takes the write lock when running. This + prevents other processes from writing to the database during the + dump which would cause the dump to fail. Note, if another notmuch + process already has the write lock the dump will not start, so + script callers should still check the return value. + +`notmuch insert` requires succesful message indexing for success status + + Previously the `notmuch insert` subcommand indicated success even if + the message indexing failed, as long as the message was delivered to + file system. This could have lead to delivered messages missing + tags, etc. `notmuch insert` is now more strict, also requiring + succesful indexing for success status. Use the new `--keep` option + to revert to the old behaviour (keeping the delivered message file + and returning success even if indexing fails). + +`notmuch insert` has gained support for `post-insert` hook + + The new `post-insert` hook is run after message delivery, similar to + `post-new`. There's also a new option `notmuch insert --no-hooks` to + skip the hook. See the notmuch-hooks(1) man page for details. + +`notmuch search` now supports `--duplicate=N` option with `--output=messages` + + Complementing the `notmuch search --duplicate=N --output=files` + options, the new `--duplicate=N --output=messages` combination + limits output of message IDs to messages matching search terms that + have at least `N` files associated with them. + +Added `notmuch address` subcommand + + This new subcommand searches for messages matching the given search + terms, and prints the addresses from them. Duplicate addresses are + filtered out. The `--output` option controls which of the following + information is printed: sender addresses, recipient addresses and + count of duplicate addresses. + +Emacs Interface +--------------- + +Use the `j` key to access saved searches from anywhere in notmuch + + `j` is now globally bound to `notmuch-jump`, which provides fast, + interactive keyboard shortcuts to saved searches. For example, + with the default saved searches `j i` from anywhere in notmuch will + bring up the inbox. + +Improved handling of the unread tag + + Notmuch now marks an open message read (i.e., removes the unread + tag) if point enters the message at any time in a show buffer + regardless of how point got there (mouse click, cursor command, page + up/down, notmuch commands such as n,N etc). This fixes various + anomalies or bugs in the previous handling. Additionally it is + possible to customize the mark read handling by setting + `notmuch-show-mark-read-function` to a custom function. + +Expanded default saved search settings + + The default saved searches now include several more common searches, + as well as shortcut keys for `notmuch-jump`. + +Improved `q` binding in notmuch buffers + + `q` will now bury rather than kill a notmuch search, show or tree + buffer if there are multiple windows showing the buffer. If only a + single window is showing the buffer, it is killed. + +`notmuch-show-stash-mlarchive-link-alist` now supports functions + + Some list archives may use a more complicated scheme for referring + to messages than just concatenated URL and message ID. For example, + patchwork requires a query to translate message ID to a patchwork + patch ID. `notmuch-show-stash-mlarchive-link-alist` now supports + functions to better cover such cases. See the help documentation for + the variable for details. + +Library changes +--------------- + +Introduced database version 3 with support for "database features." + + Features are independent aspects of the database schema. + Representing these independently of the database version number will + let us evolve the database format faster and more incrementally, + while maintaining better forwards and backwards compatibility. + +Library users are no longer required to call `notmuch_database_upgrade` + + Previously, library users were required to call + `notmuch_database_needs_upgrade` and `notmuch_database_upgrade` + before using a writable database. Even the CLI didn't get this + right, and it is no longer required. Now, individual APIs may + return `NOTMUCH_STATUS_UPGRADE_REQUIRED` if the database format is + too out of date for that API. + +Library users can now abort an atomic section by closing the database + + Previously there was no supported way to abort an atomic section. + Callers can now simply close the database, and any outstanding + atomic section will be aborted. + +Add return status to notmuch_database_close and +notmuch_database_destroy + +Bug fixes and performance improvements for thread linking + + The database now represents missing-but-referenced messages ("ghost + messages") similarly to how it represents regular messages. This + enables an improved thread linking algorithm that performs better + and fixes a bug that sometimes prevented notmuch from linking + messages into the same thread. + +nmbug +----- + +The Perl script has been translated to Python; you'll need Python 2.7 +or anything from the 3.x line. Most of the user-facing interface is +the same, but `nmbug help` is not `nmbug --help`, and the following nmbug +commands have slightly different interfaces: `archive`, `commit`, +`fetch`, `log`, `pull`, `push`, and `status`. For details on the +new interface for a given command, run `nmbug COMMAND --help`. + +nmbug-status +------------ + +`nmbug-status` can now optionally load header and footer templates +from the config file. Use something like: + + { + "meta": { + "header": "\n\n...", + "footer": "", + ... + }, + ... + }, + +Python Bindings +--------------- + +Add support for `notmuch_query_add_tag_exclude` + +Build System +------------ + +The notmuch binaries and libraries are now build with debugging symbols +by default. Users concerned with disk space should change the +defaults when configuring or use the strip(1) command. + +Notmuch 0.18.2 (2014-10-25) +=========================== + +Test Suite +---------- + +Translate T380-atomicity to use gdb/python + + The new version is compatible with gdb 7.8 + +Emacs 24.4 related bug fixes + + The Messages buffer became read-only, and the generated mime + structure for signatures changed slightly. + +Simplify T360-symbol-hiding + + Replace the use of `objdump` on the object files with `nm` on the + resulting lib. + +Notmuch 0.18.1 (2014-06-25) +=========================== + +This is a bug fix and portability release. + +Build System +------------ + +Add a workaround for systems without zlib.pc + +Make emacs install robust against the non-existence of emacs + +Put notmuch lib directory first in RPATH + +Fix handling of html_static_path in sphinx + + Both the python bindings and the main docs had spurious settings of + this variable. + +Test Suite +---------- + +Use --quick when starting emacs + + This avoids a hang in the T160-json tests. + +Allow pending break points in atomicity script + + This allows the atomicity tests to run on several more architectures/OSes. + +Command-Line Interface +---------------------- + +To improve portability use fsync instead of fdatasync in +`notmuch-dump`. There should be no functional difference. + +Library changes +--------------- + +Resurrect support for single-message mbox files + + The removal introduced a bug with previously indexed single-message + mboxes. This support remains deprecated. + +Fix for phrase indexing + + There were several bugs where words intermingled from different + headers and MIME parts could match a single phrase query. This fix + will affect only newly indexed messages. + +Emacs Interface +--------------- + +Make sure tagging on an empty query is harmless + + Previously tagging an empty query could lead to tags being + unintentionally removed. + +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. + +Notmuch 0.17 (2013-12-30) +========================= + +Incompatible change in SHA1 computation +--------------------------------------- + +Previously on big endian architectures like sparc and powerpc the +computation of SHA1 hashes was incorrect. This meant that messages +with overlong or missing message-ids were given different computed +message-ids than on more common little endian architectures like i386 +and amd64. If you use notmuch on a big endian architecture, you are +strongly advised to make a backup of your tags using `notmuch dump` +before this upgrade. You can locate the affected files using something +like: + + notmuch dump | \ + awk '/^notmuch-sha1-[0-9a-f]{40} / \ + {system("notmuch search --exclude=false --output=files id:" $1)}' + +Command-Line Interface +---------------------- + +New options to better support handling duplicate messages + + If more than one message file is associated with a message-id, + `notmuch search --output=files` will print all of them. A new + `--duplicate=N` option can be used to specify which duplicate to + print for each message. + + `notmuch count` now supports `--output=files` option to output the + number of files associated with matching messages. This may be + bigger than the number of matching messages due to duplicates + (i.e. multiple files having the same message-id). + +Improved `notmuch new` performance for unchanged folders + + `notmuch new` now skips over unchanged folders more efficiently, + which can substantially improve the performance of checking for new + mail in some situations (like NFS-mounted Maildirs). + +`notmuch reply --format=text` RFC 2047-encodes headers + + Previously, this used a mix of standard MIME encoding for the reply + body and UTF-8 for the headers. Now, the text format reply template + RFC 2047-encodes the headers, making the output a valid RFC 2822 + message. The JSON/sexp format is unchanged. + +`notmuch compact` command + + The new `compact` command exposes Xapian's compaction + functionality through a more convenient interface than + `xapian-compact`. `notmuch compact` will compact the database to a + temporary location, optionally backup the original database, and + move the compacted database into place. + +Emacs Interface +--------------- + +`notmuch-tree` (formerly `notmuch-pick`) has been added to mainline + + `notmuch-tree` is a threaded message view for the emacs + interface. Each message is one line in the results and the thread + structure is shown using UTF-8 box drawing characters (similar to + Mutt's threaded view). It comes between search and show in terms of + amount of output and can be useful for viewing both single threads + and multiple threads. + + Using `notmuch-tree` + + The main key entries to notmuch tree are + + 'z' enter a query to view using notmuch tree (works in hello, + search, show and tree mode itself) + + 'Z' view the current query in tree notmuch tree (works from search + and show) + + Once in tree mode, keybindings are mostly in line with the rest of + notmuch and are all viewable with '?' as usual. + + Customising `notmuch-tree` + + `notmuch-tree` has several customisation variables. The most + significant is the first notmuch-tree-show-out which determines the + behaviour when selecting a message (with RET) in tree view. By + default tree view uses a split window showing the single message in + the bottom pane. However, if this option is set then it views the + whole thread in the complete window jumping to the selected message + in the thread. In either case command-prefix selects the other option. + +Tagging threads in search is now race-free + + Previously, adding or removing a tag from a thread in a search + buffer would affect messages that had arrived after the search was + performed, resulting in, for example, archiving messages that were + never seen. Tagging now affects only the messages that were in the + thread when the search was performed. + +`notmuch-hello` refreshes when switching to the buffer + + The hello buffer now refreshes whenever you switch to the buffer, + regardless of how you get there. You can disable automatic + refreshing by customizing `notmuch-hello-auto-refresh`. + +Specific mini-buffer prompts for tagging operations + + When entering tags to add or remove, the mini-buffer prompt now + indicates what operation will be performed (e.g., "Tag thread", "Tag + message", etc). + +Built-in help improvements + + Documentation for many commands has been improved, as displayed by + `notmuch-help` (usually bound to "?"). The bindings listed by + `notmuch-help` also now include descriptions of prefixed commands. + +Quote replies as they are displayed in show view + + We now render the parts for reply quoting the same way they are + rendered for show. At this time, the notable change is that replies + to text/calendar are now pretty instead of raw vcalendar. + +Fixed inconsistent use of configured search order + + All ways of interactively invoking search now honor the value of + `notmuch-search-oldest-first`. + +Common keymap for notmuch-wide bindings + + Several key bindings have been moved from mode-specific keymaps to + the single `notmuch-common-keymap`, which is inherited by each + notmuch mode. If you've customized your key bindings, you may want + to move some of them to the common keymap. + +The `notmuch-tag` function now requires a list of tag changes + + For users who have scripted the Emacs interface: the `notmuch-tag` + API has changed. Previously, it accepted either a list of tag + changes or a space-separated string of tag changes. The latter is + no longer supported and the function now returns nothing. + +Fixed `notmuch-reply` putting reply in primary selection + + On emacs 24 notmuch-reply used to put the cited text into the + primary selection (which could lead to inadvertently pasting this + cited text elsewhere). Now the primary-selection is not changed. + +Fixed `notmuch-show` invisible part handling + + In some obscure cases part buttons and invisibility had strange + interactions: in particular, the default action for some parts gave + the wrong action. This has been fixed. + +Fixed `notmuch-show` attachment viewers and stderr + + In emacs 24.3+ viewing an attachment could cause spurious text to + appear in the show buffer (any stderr or stdout the viewer + produced). By default this output is now discarded. For debugging, + setting `notmuch-show-attachment-debug` causes notmuch to keep the + viewer's stderr and stdout in a separate buffer. + +Fixed `notmuch-mua-reply` point placement when signature involved + + By restricting cursor movement to body section for cursor placement + after signature is inserted, the cursor cannot "leak" to header + section anymore. Now inserted citation content will definitely go to + the body part of the message. + +Vim Interface +------------- + + It is now possible to compose new messages in the Vim interface, as + opposed reply to existing messages. There is also support for + going straight to a search (bypassing the folders view). + +Notmuch 0.16 (2013-08-03) +========================= + +Command-Line Interface +---------------------- + +Support for delivering messages to Maildir + + There is a new command `insert` that adds a message to a Maildir + folder and notmuch index. + +`notmuch count --batch` option + + `notmuch count` now supports batch operations similar to `notmuch + tag`. This is mostly an optimization for remote notmuch usage. + +`notmuch tag` option to remove all tags from matching messages + + `notmuch tag --remove-all` option has been added to remove all tags + from matching messages. This can be combined with adding new tags, + resulting in setting (rather than modifying) the tags of the + messages. + +Decrypting commands explicitly expect a gpg-agent + + Decryption in `notmuch show` and `notmuch reply` has only ever + worked with a functioning gpg-agent. This is now made explicit in + code and documentation. The functional change is that it's now + possible to have gpg-agent running, but gpg "use-agent" + configuration option disabled, not forcing the user to use the agent + everywhere. + +Configuration file saves follow symbolic links + + The notmuch commands that save the configuration file now follow + symbolic links instead of overwrite them. + +Top level option to specify configuration file + + It's now possible to specify the configuration file to use on the + command line using the `notmuch --config=FILE` option. + +Bash command-line completion + + The notmuch command-line completion support for the bash shell has + been rewritten. Supported completions include all the notmuch + commands, command-line arguments, values for keyword arguments, + search prefixes (such as "subject:" or "from:") in all commands that + use search terms, tags after + and - in `notmuch tag`, tags after + "tag:" prefix, user's email addresses after "from:" and "to:" + prefixes, and config options (and some config option values) in + `notmuch config`. The new completion support depends on the + bash-completion package. + Deprecated commands "part" and "search-tags" are removed. +Emacs Interface +--------------- + +New keymap to view/save parts; removed s/v/o/| part button bindings + + The commands to view, save, and open MIME parts are now prefixed + with "." (". s" to save, ". v" to view, etc) and can be invoked with + point anywhere in a part, unlike the old commands, which were + restricted to part buttons. The old "s"/"v"/"o"/"|" commands on + part buttons have been removed since they clashed with other + bindings (notably "s" for search!) and could not be invoked when + there was no part button. The new, prefixed bindings appear in + show's help, so you no longer have to memorize them. + +Default part save directory is now `mm-default-directory` + + Previously, notmuch offered to save parts and attachments to a mix + of `mm-default-directory`, `mailcap-download-directory`, and `~/`. + This has been standardized on `mm-default-directory`. + +Key bindings for next/previous thread + + Show view has new key bindings M-n and M-p to move to the next and + previous thread in the search results. + +Better handling of errors in search buffers + + Instead of interleaving errors in search result buffers, search mode + now reports errors in the minibuffer. + +Faster search and show + + Communication between Emacs and the notmuch CLI is now more + efficient because it uses the CLI's S-expression support. As a + result, search mode should now fill search buffers faster and + threads should show faster. + +No Emacs 22 support + + The Emacs 22 support added late 2010 was sufficient only for a short + period of time. After being incomplete for roughly 2 years the code + in question was now removed from this release. + +Vim Front-End +------------- + +The vim based front-end has been replaced with a new one that uses the Ruby +bindings. The old font-end is available in the contrib subfolder. + +Python Bindings +--------------- + +Fix loading of libnotmuch shared library on OS X (Darwin) systems. + +Notmuch 0.15.2 (2013-02-17) +=========================== + +Build fixes +----------- + +Update dependencies to avoid problems when building in parallel. + +Internal test framework changes +------------------------------- + +Adjust Emacs test watchdog mechanism to cope with `process-attributes` +being unimplemented. + +Notmuch 0.15.1 (2013-01-24) +=========================== + +Internal test framework changes +------------------------------- + +Set a default value for TERM when running tests. This fixes certain +build failures in non-interactive environments. + Notmuch 0.15 (2013-01-18) =========================