]> git.notmuchmail.org Git - notmuch/blobdiff - NEWS
emacs: quote MML tags in replies
[notmuch] / NEWS
diff --git a/NEWS b/NEWS
index d55453b1e3620e6fd280413e77123b669a124a1c..a089e679963d7f0d10dc1b0ed9633f1026a69e07 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,384 @@
-Notmuch 0.6 (2011-07-XX)
+Notmuch 0.11.1 (2012-mm-dd)
+===========================
+
+Bug-fix release.
+----------------
+
+Fix error handling in python bindings.
+
+  The python bindings in 0.11 failed to detect NULL pointers being
+  returned from libnotmuch functions and thus failed to raise
+  exceptions to indicate the error condition. Any subsequent calls
+  into libnotmuch caused segmentation faults.
+
+Quote MML tags in replies
+
+  MML tags are text codes that Emacs uses to indicate attachments
+  (among other things) in messages being composed.  The Emacs
+  interface did not quote MML tags in the quoted text of a reply.
+  User could be tricked into replying to a maliciously formatted
+  message and not editing out the MML tags from the quoted text.  This
+  could lead to files from the user's machine being attached to the
+  outgoing message.  The Emacs interface now quotes these tags in
+  reply text, so that they do not effect outgoing messages.
+
+
+Notmuch 0.11 (2012-01-13)
+=========================
+
+Command-Line Interface
+----------------------
+
+Hooks
+
+  Hooks have been introduced to notmuch. Hooks are scripts that notmuch
+  invokes before and after certain actions. Initially, "notmuch new"
+  supports "pre-new" and "post-new" hooks that are run before and after
+  importing new messages into the database.
+
+notmuch reply --decrypt bugfix
+
+  The "notmuch reply" command with --decrypt argument had a rarely
+  occurring bug that caused an encrypted message not to be decrypted
+  sometimes. This is now fixed.
+
+Performance
+-----------
+
+Automatic tag query optimization
+
+  "notmuch tag" now automatically optimizes the user's query to
+  exclude messages whose tags won't change.  In the past, we've
+  suggested that people do this by hand; this is no longer necessary.
+
+Don't sort messages when creating a dump file
+
+  This speeds up tag dumps considerably, without any loss of
+  information. To replicate the old behavior of sorted output (for
+  example to compare two dump files), one can use e.g. sort(1).
+
+Memory Management
+-----------------
+
+Reduction of memory leaks
+
+  Two memory leaks when searching and showing messages were identified
+  and fixed in this release.
+
+Emacs Interface
+---------------
+
+Bug fixes
+
+  notmuch-show-advance (bound to the spacebar in notmuch-show-mode) had
+  a bug that caused it to always jump to the next message, even if it
+  should have scrolled down to show more of the current message instead.
+  This is now fixed.
+
+Support "notmuch new" as a notmuch-poll-script
+
+  It's now possible to use "notmuch new" as a notmuch-poll-script
+  directly. This is also the new default. This allows taking better
+  advantage of the "notmuch new" hooks from emacs without intermediate
+  scripts.
+
+Improvements in saved search management
+
+  New saved searches are now appended to the list of saved searches,
+  not inserted in front. It's also possible to define a sort function
+  for displaying saved searches; alphabetical sort is provided.
+
+Hooks for notmuch-hello
+
+  Two new hooks have been added: "notmuch-hello-mode-hook" (called after
+  entering notmuch-hello-mode) and "notmuch-hello-refresh-hook" (called
+  after updating a notmuch-hello buffer).
+
+New face for crypto parts headers
+
+  Crypto parts used to be displayed with a hardcoded color. A new face
+  has been introduced to fix this: notmuch-crypto-part-header. It
+  defaults to the same value as before, but can be customized to match
+  other color themes.
+
+Use space as default thousands separator
+
+  Large numbers in notmuch-hello are now displayed using a space as
+  thousands separator (e.g. "123 456" instead of "123,456"). This can be
+  changed by customizing "notmuch-hello-thousands-separator".
+
+Call notmuch-show instead of notmuch-search when clicking on
+buttonized id: links.
+
+New function notmuch-show-advance
+
+  This new function advances through just the current thread, and is
+  less invasive than notmuch-show-advance-and-archive.  It can easily
+  be bound to SPC with:
+
+  (define-key notmuch-show-mode-map " " 'notmuch-show-advance)
+
+Various performance improvements.
+
+New add-on tool
+---------------
+
+The tool contrib/notmuch-deliver helps with initial delivery and
+tagging of mail (replacing running notmuch new).
+
+
+Notmuch 0.10.2 (2011-12-04)
+===========================
+
+Bug-fix release.
+----------------
+
+Fix crash in python bindings.
+
+    The python bindings did not call g_type_init, which caused crashes
+    for some, but not all users.
+
+Notmuch 0.10.1 (2011-11-25)
+===========================
+
+Bug-fix release.
+----------------
+
+Fix --help argument
+
+  Argument processing changes in 0.10 introduced a bug where "notmuch
+  --help" crashed while "notmuch help" worked fine. This is fixed in
+  0.10.1.
+
+Notmuch 0.10 (2011-11-23)
+=========================
+
+New build and testing features
+------------------------------
+
+Emacs tests are now done in dtach. This means that dtach  is now
+needed to run the notmuch test suite, at least until the checking for
+prerequisites is improved.
+
+Full test coverage of the stashing feature in Emacs.
+
+New command-line features
+-------------------------
+
+Add "notmuch restore --accumulate" option
+
+  The --accumulate switch causes the union of the existing and new tags to be
+  applied, instead of replacing each message's tags as they are read in from
+  the dump file.
+
+Add search terms to  "notmuch dump"
+
+  The dump command now takes an optional search term much like notmuch
+  search/show/tag. The output file argument of dump is deprecated in
+  favour of using stdout.
+
+Add "notmuch search" --offset and --limit options
+
+  The search command now takes options --offset=[-]N and --limit=N to limit
+  the number of results shown.
+
+Add "notmuch count --output" option
+
+  The count command is now capable of counting threads in addition to
+  messages. This is selected using the new --output=(threads|messages) option.
+
+New emacs UI features
+---------------------
+
+Add tab-completion for notmuch-search and notmuch-search-filter
+
+  These functions now support completion tags for query parts
+  starting with "tag:".
+
+Turn "id:MSG-ID" links into buttons associated with notmuch searches
+
+  Text of the form "id:MSG-ID" in mails is now a clickable button that
+  opens a notmuch search for the given message id.
+
+Add keybinding ('c I') for stashing Message-ID's without an id: prefix
+
+  Reduces manual labour when stashing them for use outside notmuch.
+
+Do not query on notmuch-search exit
+
+   It is harmless to kill the external notmuch process, so the user
+   is no longer interrogated when they interrupt a search.
+
+Performance
+-----------
+
+Emacs now constructs large search buffers more efficiently
+
+Search avoids opening and parsing message files
+
+  We now store more information in the database so search no longer
+  has to open every message file to get basic headers.  This can
+  improve search speed by as much as 10X, but taking advantage of this
+  requires a database rebuild:
+
+       notmuch dump > notmuch.dump
+       # Backup, then remove notmuch database ($MAIL/.notmuch)
+       notmuch new
+       notmuch restore notmuch.dump
+
+New collection of add-on tools
+------------------------------
+
+The source directory "contrib" contains tools built on notmuch.  These
+tools are not part of notmuch, and you should check their individual
+licenses.  Feel free to report problems with them to the notmuch
+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
+   them to git in one location and restoring in another.
+
+Notmuch 0.9 (2011-10-01)
+========================
+
+New, general features
+---------------------
+
+Correct handling of interruptions during "notmuch new"
+
+  "notmuch new" now operates as a series of small, self-consistent
+  transactions, so it can correctly resume after an interruption or
+  crash.  Previously, interruption could lose existing tags, fail to
+  detect messages on resume, or leave the database in a state
+  temporarily or permanently inconsistent with the mail store.
+
+Library changes
+---------------
+
+New functions
+
+  notmuch_database_begin_atomic and notmuch_database_end_atomic allow
+  multiple database operations to be performed atomically.
+
+  notmuch_database_find_message_by_filename does exactly what it says.
+
+API changes
+
+  notmuch_database_find_message (and n_d_f_m_by_filename) now return
+  a status indicator and uses an output parameter for the
+  message. This change required changing the SONAME of libnotmuch to
+  libnotmuch.so.2
+
+Python bindings changes
+-----------------------
+
+  - Re-encode python unicode objects to utf-8 before passing back to
+    libnotmuch.
+  - Support Database().begin_atomic()/end_atomic()
+  - Support Database().find_message_by_filename()
+    NB! This needs a db opened in READ-WRITE mode currently, or it will crash
+    the python process. The is a limitation (=bug) of the underlying libnotmuch.
+  - Fixes where we would not throw NotmuchErrors when we should (Justus Winter)
+  - Update for n_d_find_message* API changes (see above).
+
+Ruby bindings changes
+---------------------
+
+  - Wrap new library functions notmuch_database_{begin,end}_atomic.
+  - Add new exception Notmuch::UnbalancedAtomicError.
+  - Rename destroy  to destroy! according to Ruby naming conventions.
+  - Update for n_d_find_message* API changes (see above).
+
+Emacs improvements
+------------------
+
+  * Add gpg callback to crypto sigstatus buttons to retrieve/refresh
+    signing key.
+  * Add notmuch-show-refresh-view function (and corresponding binding)
+    to refresh the view of a notmuch-show buffer.
+
+Reply formatting cleanup
+------------------------
+
+  "notmuch reply" no longer includes notification that non-leafnode
+  MIME parts are being suppressed.
+
+Notmuch 0.8 (2011-09-10)
+========================
+
+Improved handling of message/rfc822 parts
+
+  Both in the CLI and the emacs interface.  Output of rfc822 parts now
+  includes the primary headers, as well as the body and all subparts.
+  Output of the completely raw rfc822-formatted message, including all
+  headers, is unfortunately not yet supported (but hopefully will be
+  soon).
+
+Improved Build system portability
+
+  Certain parts of the shell script generating notmuch.sym were
+  specific to the GNU versions of sed and nm. The new version should
+  be more portable to e.g. OpenBSD.
+
+Documentation update for Ruby bindings
+
+  Added documentation, typo fixes, and improved support for rdoc.
+
+Unicode, iterator, PEP8 changes for python bindings
+
+  - PEP8 (code formatting) changes for python files.
+  - Remove Tags.__len__ ; see 0.6 release notes for motivation.
+  - Decode headers as UTF8, encode (unicode) database paths as UTF8.
+
+Notmuch 0.7 (2011-08-01)
+========================
+
+Vim interface improvements
+--------------------------
+
+Jason Woofenden provided a number of bug fixes for the Vim interface
+
+  * fix citation/signature fold lengths
+  * fix cig/cit parsing within multipart/*
+  * fix on-screen instructions for show-signature
+  * fix from list reformatting in search view
+  * fix space key: now archives (did opposite)
+
+Uwe Kleine-König contributed
+
+  * use full path for sendmail/doc fix
+  * fix compose temp file name
+
+Python Bindings changes
+-----------------------
+
+Sebastian Spaeth contributed two changes related to unicode and UTF8:
+
+  * message tags are now explicitly unicode
+  * query string is encoded as a UTF8 byte string
+
+Build-System improvements
+------------------------
+
+Generate notmuch.sym after the relevant object files
+
+  This fixes a bug in parallel building. Thanks to Thomas Jost for the
+  patch.
+
+Notmuch 0.6.1 (2011-07-17)
+==========================
+
+Bug-fix release.
+----------------
+
+Re-export Xapian exception typeinfo symbols.
+
+  It turned out our aggressive symbol hiding caused problems for
+  people running gcc 4.4.5.
+
+Notmuch 0.6 (2011-07-01)
 =======================
 New, general features
 ---------------------
@@ -13,9 +393,11 @@ Folder-based searching
   For example, one might use things such as:
 
        folder:spam
-       folder:2011/06
+       folder:2011-*
+       folder:work/todo
 
-  or anything else that matches directories within your mail storage.
+  to match any path containing a directory "spam", "work/todo", or
+  containing a directory starting with "2011-", respectively.
 
   This feature is particularly useful for users of delivery-agent
   software (such as procmail or maildrop) that is filtering mail and
@@ -32,15 +414,19 @@ Folder-based searching
        notmuch new
        notmuch restore notmuch.dump
 
+Support for PGP/MIME
+
+  Both the command line interface and the emacs-interface have new
+  support for PGP/MIME, detailed below. Thanks to Daniel Kahn Gillmor
+  and Jameson Graef Rollins for making this happen.
+
 New, automatic tags: "signed" and "encrypted"
 
   These tags will automatically be applied to messages containing
   multipart/signed and multipart/encrypted parts.
 
   NOTE: Only messages that are newly indexed with this version of
-  notmuch will receive these tags. In order to enable this feature for
-  all mail, the entire notmuch index will need to be rebuilt (see
-  above).
+  notmuch will receive these tags.
 
 New command-line features
 -------------------------
@@ -52,6 +438,8 @@ Add new "notmuch show --verify" option for signature verification
 Add new "notmuch show --decrypt" and "notmuch reply --decrypt" options
 
   This option instructs notmuch to decrypt PGP/MIME-encrypted parts.
+  Note that this feature currently requires gpg-agent and a passphrase entry
+  tool (e.g. pinentry-gtk or pinentry-curses).
 
 Proper nesting of multipart parts in "notmuch show" output
 
@@ -79,19 +467,19 @@ Deprecate "notmuch search-tags", (in favor of "notmuch search --output=tags *")
 
 Performance improvements
 ------------------------
-Faster searches (by doing fewer serches to construct threads)
+Faster searches (by doing fewer searches to construct threads)
 
   Whenever a user asks for search results as threads, notmuch first
   performs a search for messages matching the query, then performs
   additional searches to find other messages in the resulting threads.
 
-  Removing inefficiences and redundancies in these secondary searches
+  Removing inefficiencies and redundancies in these secondary searches
   results in a measured speedups of 1.5x for a typical search.
 
 Faster searches (by doing fewer passes to gather message data)
 
   Optimizing Xapian data access patterns (using a single pass to get
-  all message-document data rather than a ps for each data type)
+  all message-document data rather than a pass for each data type)
   results in a measured speedup of 1.7x for a typical search.
 
   The benefits of this optimization combine with the preceding
@@ -110,11 +498,20 @@ Make "notmuch new" faster for unchanged directories
   Optimizing to not do any further examinations of sub-directories
   when the filesystem indicates that a directory is unchanged from the
   last "notmuch new" results in measured speedups of 8.5 for the "No
-  new mail" case, (was 0.77s, now 0.09s). Thanks to Austin Clements
-  and Karel Zak.
+  new mail" case, (was 0.77s, now 0.09s). Thanks to Karel Zak.
 
 New emacs-interface features
 ----------------------------
+
+Support for PGP/MIME (GnuPG)
+
+  Automatically indicate validity of signatures for multipart/signed
+  messages.  Automatically display decrypted content for
+  multipart/encrypted messages.  See the emacs variable
+  notmuch-crypto-process-mime for more information. Note that this
+  needs gpg-agent and a pinentry tool just as the command line tools.
+  Also note there is no support SMIME yet.
+
 Output of pipe command is now displayed if pipe command fails
 
   This is extremely useful in the common use case of piping a patch to
@@ -130,7 +527,7 @@ User-selectable From address
   will prompt for the from address to use.
 
   The user can customize the "Notmuch Identities" setting in the
-  notmuch cutomize group in order to use addresses other than those in
+  notmuch customize group in order to use addresses other than those in
   the notmuch configuration file if desired.
 
   The user can also choose to always be prompted for the from address
@@ -138,6 +535,11 @@ User-selectable From address
   the "Notmuch Always Prompt For Sender" option in the notmuch
   customize group.
 
+Hiding of repeated subjects in collapsed thread view
+
+  In notmuch-show mode, if a collapsed message has the same subject as
+  its parent, the subject is not shown.
+
 Automatic detection and hiding of original message in top-posted message
 
   When a message contains a line looking something like:
@@ -154,7 +556,7 @@ New hooks for running code when tags are modified
   Some users want to perform additional actions whenever a particular
   tag is added/removed from a message. This could be used to, for
   example, interface with some external spam-recognition training
-  tool. T facilitate this, two new hooks are added which can be
+  tool. To facilitate this, two new hooks are added which can be
   modified in the following settings of the notmuch customize group:
 
        Notmuch Before Tag Hook
@@ -181,24 +583,20 @@ Better rendering of text/x-vcalendar parts
 
 Avoid getting confused by Subject and Author fields with newline characters
 
-  Replacing all characters with ACII code less than 32 with a question mark.
+  Replacing all characters with ASCII code less than 32 with a question mark.
 
 Cleaner display of From line in email messages (remove double quotes,
 and drop "name" if it's actually just a repeat of the email address).
 
 Vim interface improvements
 --------------------------
-Felipe Contreras provided a number of updates for the vim interface.
-
-  Using sendmail directly rather than mailx,
+Felipe Contreras provided a number of updates for the vim interface:
 
-  Implementing archive in show view
-
-  Add support to mark as read in show and search views
-
-  Add delete commands
-
-  Various cleanups.
+  * Using sendmail directly rather than mailx,
+  * Implementing archive in show view
+  * Add support to mark as read in show and search views
+  * Add delete commands
+  * Various cleanups.
 
 Bindings improvements
 ---------------------
@@ -207,23 +605,29 @@ Ruby bindings are now much more complete
   Including QUERY.sort, QUERY.to_s, MESSAGE.maildir_flags_to_tags,
   MESSAGE.tags_to_maildir_flags, and MESSAGE.get_filenames
 
-Python bindings are now much more complete
+* Python bindings have been updated and extended
+  (docs online at http://packages.python.org/notmuch/)
 
-  Including Message().get_filenames(),
-  Message().tags_to_maildir_flags(), Threads().__nonzero__,
-  Tags().__nonzero__()
+  New bindings:
+  - Message().get_filenames(),
+  - Message().tags_to_maildir_flags(),Message().maildir_flags_to_tags()
+  - list(Threads()) and list(Messages) works now
 
-  Also implement Message.__cmp__ and __hash__
+  - Message().__cmp__() and __hash__()
   These allow, for example:
-
-       if msg1 == msg2
+       if msg1 == msg2: ...
 
   As well as set arithmetic on Messages():
 
-       s1, s2= msgs1, msgs2
+       s1, s2= set(msgs1), set(msgs2)
        s1.union(s2)
        s2 -= s1
 
+   Removed:
+     - len(Messages()) as it exhausted the iterator.
+       Use len(list(Messages())) or
+       Query.count_messages() to get the length.
+
 Added initial Go bindings in bindings/go
 
 New build-system features
@@ -254,17 +658,17 @@ Binary for bash for running test suite now located via PATH.
   bash 4). As some systems supply an older version of bash at
   /bin/bash, the test suite is now updated to search $PATH to locate
   the bash binary. This allows users of systems with old /bin/bash to
-  simply install bash >= 4 somwhere on $PATH before /bin and then use
+  simply install bash >= 4 somewhere on $PATH before /bin and then use
   the test suite.
 
 Support for testing output with a trailing newline.
 
   Previously, some tests would fail to notice a difference in the
-  presense/absence of a trailing newline in a program output, (which
+  presence/absence of a trailing newline in a program output, (which
   has led to bugs in the past). Now, carefully-written tests (using
   test_expect_equal_file rather than test_expect_equal) will detect
   any change in the presence/absence of a trailing newline. Many tests
-  are updated to take advnatage of this.
+  are updated to take advantage of this.
 
 Avoiding accessing user's $HOME while running test suite
 
@@ -313,7 +717,7 @@ Fix libnotmuch library to only export notmuch API functions
 
   Previous release of the notmuch library also exported some Xapian
   C++ exception type symbols. These were never part of the library
-  interface and were never intented to be exported.
+  interface and were never intended to be exported.
 
 Emacs-interface bug fixes
 -------------------------
@@ -321,16 +725,16 @@ Display any unexpected output or errors from "notmuch search" invocations
 
   Previously any misformatted output or trailing error messages were
   silently ignored. This output is now clearly displayed. This fix was
-  very helpful in identifying and fixing the bug decribed below.
+  very helpful in identifying and fixing the bug described below.
 
 Fix bug where some threads would be missing from large search results
 
   When a search returned a "large" number of results, the emacs
-  interface was incorrectly dropping one thread everytime the output
-  of the "notmuch search" process spanned the emacss read-buffer. This
+  interface was incorrectly dropping one thread every time the output
+  of the "notmuch search" process spanned the emacs read-buffer. This
   is now fixed.
 
-Avoid rec-compression of .gz files (and similar) when saving attachment
+Avoid re-compression of .gz files (and similar) when saving attachment
 
   Emacs was being too clever for its own good and trying to
   re-compress pre-compressed .gz files when saving such attachments
@@ -356,9 +760,9 @@ Maildir-flag synchronization
        ----     -----
        'D'      draft
        'F'      flagged
-        'P'      passed
-        'R'      replied
-        'S'      unread (added when 'S' flag is not present)
+       'P'      passed
+       'R'      replied
+       'S'      unread (added when 'S' flag is not present)
 
   The synchronization occurs in both directions, (for example, adding
   the 'S' flag to a file will cause the "unread" tag to be added, and