]> git.notmuchmail.org Git - notmuch/blobdiff - NEWS
news: Store "from" and "subject" headers in the database.
[notmuch] / NEWS
diff --git a/NEWS b/NEWS
index aae4adde1fd7a9dd6ae220134462cafce5ffe8ae..88f7b204f8178c641e45969ca5fc307d8e7864cc 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,4 +1,182 @@
-Notmuch 0.6 (2011-07-XX)
+Notmuch 0.10 (2011-xx-xx)
+=========================
+
+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.
+
+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.
+
+Optimizations
+-------------
+
+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
+
+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 improvments
+------------------------
+
+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 +191,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 +212,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 +236,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 +265,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 +296,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 +325,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 +333,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 +354,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 +381,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,
-
-  Implementing archive in show view
+Felipe Contreras provided a number of updates for the vim interface:
 
-  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 +403,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 upodated 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 exausted 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 +456,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 +515,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 +523,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
@@ -456,15 +658,15 @@ Allow for notmuch-fcc-dirs to have a value of nil.
   string. Instead it's now a list of cons cells where the car of each
   cell is a regular expression to be matched against the sender
   address, and the cdr is the name of a folder to use for an FCC. So
-  the old fallback behavior can be achieved by including a fineal cell
+  the old fallback behavior can be achieved by including a final cell
   of (".*" . "default-fcc-folder").
 
 Vim interface improvements
 --------------------------
 Felipe Contreras provided a number of updates for the vim interface.
 
-  These include optimiations, support for newer versions of vim, fixed
-  support for sending mail on modern systmms, new commands, and
+  These include optimizations, support for newer versions of vim, fixed
+  support for sending mail on modern systems, new commands, and
   various cleanups.
 
 New bindings
@@ -950,7 +1152,7 @@ Fix to compile against GMime 2.6
 
 Fix configure script to accept (and ignore) various standard options.
 
-  For example, those that the gentoo build scripts expect configure to
+  For example, those that the Gentoo build scripts expect configure to
   accept are now all accepted.
 
 Test suite
@@ -1058,7 +1260,7 @@ tags by region.
   Selective bulk tagging is now possible by selecting a region of
   threads and then using either the '+' or '-' keybindings. Bulk
   tagging is still available for all threads matching the current
-  search with th '*' binding.
+  search with the '*' binding.
 
 More meaningful buffer names for thread-view buffers.
 
@@ -1112,3 +1314,4 @@ a performance bug that made notmuch very slow when modifying
 tags. This would cause distracting pauses when reading mail while
 notmuch would wait for Xapian when removing the "inbox" and "unread"
 tags from messages in a thread.
+