mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-25 12:28:09 +01:00
9d365fb5ad
This hit the list just as I sent out my "final call for 0.3.1 testing" and is just the kind of thing that's nice to get into a maintenance release.
429 lines
17 KiB
Text
429 lines
17 KiB
Text
Notmuch 0.3.1 (2010-04-27)
|
|
==========================
|
|
General bug fix
|
|
---------------
|
|
Fix an infinite loop in "notmuch reply"
|
|
|
|
This bug could be triggered by replying to a message where the
|
|
user's primary email address did not appear in the To: header and
|
|
the user had not configured any secondary email addresses. The bug
|
|
was a simple re-use of the same iterator variable in nested loops.
|
|
|
|
Emacs bug fixes
|
|
---------------
|
|
Fix calculations for line wrapping in the primary "notmuch" view.
|
|
|
|
Fix Fcc support to prompt to create a directory if the specified Fcc
|
|
directory does not exist.
|
|
|
|
New emacs features
|
|
------------------
|
|
Add a new, optional hook for detecting inline patches
|
|
|
|
This hook is disabled by default but can be enabled with a checkbox
|
|
under ""Notmuch Show Insert Text/Plain Hook" in the notmuch
|
|
customize interface. It allows for inline patches to be detected and
|
|
treated as if they were attachments, (with context-sensitive
|
|
highlighting).
|
|
|
|
Automatically tag messages as "replied" when sending a reply
|
|
|
|
This feature adds a "replied" tag by default, but can easily be
|
|
customized to add or remove other tags as well. For example, a user
|
|
might use a tag of "needs-reply" and can configure this feature to
|
|
automatically remove that tag when replying. See "Notmuch Message
|
|
Mark Replied" in the notmuch customize interface.
|
|
|
|
Build fix
|
|
---------
|
|
Fix build on OpenSolaris (at least) due to missing 'extern "C"' block.
|
|
|
|
Without this, the C++ sources could not find strcasestr and the
|
|
final linking of notmuch would fail.
|
|
|
|
Notmuch 0.3 (2010-04-27)
|
|
========================
|
|
New command-line features
|
|
-------------------------
|
|
User-configurable tags for new messages
|
|
|
|
A new "new.tags" option is available in the configuration file to
|
|
determine which tags are applied to new messages. Run "notmuch
|
|
setup" to generate new documentation within ~/.notmuch-config on how
|
|
to specify this value.
|
|
|
|
Threads search results named based on subjects that match search
|
|
|
|
This means that when new mails arrived to a thread you've previously
|
|
read, and the new mails have a new subject, you will see that
|
|
subject in the search results rather than the old subject.
|
|
|
|
Faster operation of "notmuch tag" (avoid unneeded sorting)
|
|
|
|
Since the user just wants to tag all matching messages, we can make
|
|
things perform a bit faster by avoiding the sort.
|
|
|
|
Even Better guessing of From: header for "notmuch reply"
|
|
|
|
Notmuch now looks at a number of headers when trying to figure out
|
|
the best From: header to use in a reply. This is helpful if you have
|
|
several configured email addresses, and you also subscribe to various
|
|
mailing lists with different addresses, (so that mails you are
|
|
replying to won't always include your subscribed address in the To:
|
|
header).
|
|
|
|
Indication of author names that match a search
|
|
|
|
When notmuch displays threads as the result of a search, it now
|
|
lists the authors that match the search before listing the other
|
|
authors in the thread. It inserts a pipe '|' symbol between the last
|
|
matching and first non-matching author. This is especially useful in
|
|
a search that includes tag:unread. Now the authors of the unread
|
|
messages in the thread are listed first.
|
|
|
|
New: Python bindings
|
|
--------------------
|
|
Sebastian Spaeth has contributed his python bindings for the notmuch
|
|
library to the central repository. These bindings were previously
|
|
known as "cnotmuch" within python but have now been renamed to be
|
|
accessible with a simple, and more official-looking "import notmuch".
|
|
|
|
The bindings have already proven very useful as people proficient in
|
|
python have been able to easily develop programs to do notmuch-based
|
|
searches for email-address completion, maildir-flag synchronization,
|
|
and other tasks.
|
|
|
|
These bindings are available within the bindings/python directory, but
|
|
are not yet integrated into the top-level Makefiles, nor the top-level
|
|
package-building scripts. Improvements are welcome.
|
|
|
|
Emacs interface improvements
|
|
----------------------------
|
|
An entirely new initial view for notmuch, (friendly yet powerful)
|
|
|
|
Some of us call the new view "notmuch hello" but you can get at it
|
|
by simply calling "emacs -f notmuch". The new view provides a search
|
|
bar where new searches can be performed. It also displays a list of
|
|
recent searches, along with a button to save any of these, giving it
|
|
a new name as a "saved search". Many people find these "saved
|
|
searches" one of the most convenient ways of organizing their mail,
|
|
(providing all of the features of "folders" in other mail clients,
|
|
but without any of the disadvantages).
|
|
|
|
Finally, this view can also optionally display all of the tags that
|
|
exist in the database, along with a count for each tag, and a custom
|
|
search of messages with that tag that's simply a click (or keypress)
|
|
away.
|
|
|
|
Note: For users that liked the original mode of "emacs -f notmuch"
|
|
immediately displaying a particular search result, we
|
|
recommend instead running something like:
|
|
|
|
emacs --eval '(notmuch search "tag:inbox" t)'
|
|
|
|
The "t" means to sort the messages in an "oldest first" order,
|
|
(as notmuch would do previously by default). You can also
|
|
leave that off to have your search results in "newest first"
|
|
order.
|
|
|
|
Full-featured "customize" support for configuring notmuch
|
|
|
|
Notmuch now plugs in well to the emacs "customize" mode to make it
|
|
much simpler to find things about the notmuch interface that can be
|
|
tweaked by the user.
|
|
|
|
You can get to this mode by starting at the main "Customize" menu in
|
|
emacs, then browsing through "Applications", "Mail", and
|
|
"Notmuch". Or you can go straight to "M-x customize-group"
|
|
"notmuch".
|
|
|
|
Once you're at the customize screen, you'll see a list of documented
|
|
options that can be manipulated along with checkboxes, drop-down
|
|
selectors, and text-entry boxes for configuring the various
|
|
settings.
|
|
|
|
Support for doing tab-completion of email addresses
|
|
|
|
This support currently relies on an external program,
|
|
(notmuch-addresses), that is not yet shipped with notmuch
|
|
itself. But multiple, suitable implementations of this program have
|
|
already been written that generate address completions by doing
|
|
notmuch searches of your email collection. For example, providing
|
|
first those addresses that you have composed messages to in the
|
|
past, etc.
|
|
|
|
One such program (implemented in python with the python bindings to
|
|
notmuch) is available via:
|
|
|
|
git clone http://jkr.acm.jhu.edu/git/notmuch_addresses.git
|
|
|
|
Install that program as notmuch-addresses on your PATH, and then
|
|
hitting TAB on a partial email address or name within the To: or Cc:
|
|
line of an email message will provide matching completions.
|
|
|
|
Support for file-based (Fcc) delivery of sent messages to mail store
|
|
|
|
This isn't yet enabled by default. To enable this, one will have to
|
|
set the "Notmuch Fcc Dirs" setting within the notmuch customize
|
|
screen, (see its documentation there for details). We anticipate
|
|
making this automatic in a future release.
|
|
|
|
New 'G' key binding to trigger mail refresh (G == "Get new mail")
|
|
|
|
The 'G' key works wherever '=' works. Before refreshing the screen
|
|
it calls an external program that can be used to poll email servers,
|
|
run notmuch new and setup specific tags for the new emails. The
|
|
script to be called should be configured with the "Notmuch Poll
|
|
Script" setting in the customize interface. This script will
|
|
typically invoke "notmuch new" and then perhaps several "notmuch
|
|
tag" commands.
|
|
|
|
Implement emacs message display with the JSON output from notmuch.
|
|
|
|
This is much more robust than the previous implementation, (where
|
|
some HTML mails and mail quoting the notmuch code with the delimiter
|
|
characters in it would cause the parser to fall over).
|
|
|
|
Better handling of HTML messages and MIME attachments (inline images!)
|
|
|
|
Allow for any MIME parts that emacs can display to be displayed
|
|
inline. This includes inline viewing of image attachments, (provided
|
|
the window is large enough to fit the image at its natural size).
|
|
|
|
Much more robust handling of HTML messages. Currently both text/plain
|
|
and text/html alternates will be rendered next to each other. In a
|
|
future release, users will be able to decide to see only one or the
|
|
other representation.
|
|
|
|
Each attachment now has its own button so that attachments can be
|
|
saved individually (the 'w' key is still available to save all
|
|
attachments).
|
|
|
|
Customizable support for tidying of text/plain message content
|
|
|
|
Many new functions are available for tidying up message
|
|
content. These include options such as wrapping long lines,
|
|
compressing duplicate blank lines, etc.
|
|
|
|
Most of these are disabled by default, but can easily be enabled by
|
|
clicking the available check boxes under the "Notmuch Show Insert
|
|
Text/Plain Hook" within the notmuch customize screen.
|
|
|
|
New support for searchable citations (even when hidden)
|
|
|
|
When portions of overly-long citations are hidden, the contents of
|
|
these citations will still be available for emacs' standard
|
|
"incremental search" functions. When the search matches any portion
|
|
of a hidden citation, the citation will become visible temporarily
|
|
to display the search result.
|
|
|
|
More flexible handling of header visibility
|
|
|
|
As an answer to complaints from many users, the To, Cc, and Date
|
|
headers of messages are no longer hidden by default. For those users
|
|
that liked that these were hidden, a new "Notmuch Messages Headers
|
|
Visible" option in the customize interface can be set to nil. The
|
|
visibility of headers can still be toggled on a per-message basis
|
|
with the 'h' keybinding.
|
|
|
|
For users that don't want to see some subset of those headers, the
|
|
new "Notmuch Message Headers" variable can be customized to list
|
|
only those headers that should be present in the display of a message.
|
|
|
|
The Return key now toggles message visibility anywhere
|
|
|
|
Previously this worked only on the first summary-line of a message.
|
|
|
|
Customizable formatting of search results
|
|
|
|
The user can easily customize the order, width, and formatting of
|
|
the various fields in a "notmuch search" buffer. See the "Notmuch
|
|
Search Result Format" section of the customize interface.
|
|
|
|
Generate nicer names for search buffers when using a saved search.
|
|
|
|
Add a notmuch User-Agent header when sending mail from notmuch/emacs.
|
|
|
|
New keybinding (M-Ret) to open all collapsed messages in a thread.
|
|
|
|
New library feature
|
|
-------------------
|
|
Provide a new NOTMUCH_SORT_UNSORTED value for queries
|
|
|
|
This can be somewhat faster when sorting simply isn't desired. For
|
|
example when collecting a set of messages that will all be
|
|
manipulated identically, (adding a tag, removing a tag, deleting the
|
|
messages), then there's no advantage to sorting the messages by
|
|
date.
|
|
|
|
Build fixes
|
|
-----------
|
|
Fix to compile against GMime 2.6
|
|
|
|
Previously notmuch insisted on being able to find GMime 2.4, (even
|
|
though GMime 2.6 would have worked all along).
|
|
|
|
Fix configure script to accept (and ignore) various standard options.
|
|
|
|
For example, those that the gentoo build scripts expect configure to
|
|
accept are now all accepted.
|
|
|
|
Test suite
|
|
----------
|
|
A large number of new tests for the many new features.
|
|
|
|
Better display of output from failed tests.
|
|
|
|
Now shows failures with diff rather than forcing the user to gaze at
|
|
complete actual and expected output looking for deviation.
|
|
|
|
Notmuch 0.2 (2010-04-16)
|
|
========================
|
|
This is the second release of the notmuch mail system, with actual
|
|
detailed release notes this time!
|
|
|
|
This release consists of a number of minor new features that make
|
|
notmuch more pleasant to use, and a few fairly major bug fixes.
|
|
|
|
We didn't quite hit our release target of "about a week" from the 0.1
|
|
release, (0.2 is happening 11 days after 0.1), but we hope to do
|
|
better for next week. Look forward to some major features coming to
|
|
notmuch in subsequent releases.
|
|
|
|
-Carl
|
|
|
|
General features
|
|
----------------
|
|
Better guessing of From: header.
|
|
|
|
Notmuch now tries harder to guess which configured address should be
|
|
used as the From: line in a "notmuch reply". It will examine the
|
|
Received: headers if it fails to find any configured address in To:
|
|
or Cc:. This allows it to often choose the correct address even when
|
|
replying to a message sent to a mailing list, and not directly to a
|
|
configured address.
|
|
|
|
Make "notmuch count" with no arguments count all messages
|
|
|
|
Previously, it was hard to construct a search term that was
|
|
guaranteed to match all messages.
|
|
|
|
Provide a new special-case search term of "*" to match all messages.
|
|
|
|
This can be used in any command accepting a search term, such as
|
|
"notmuch search '*'". Note that you'll want to take care that the
|
|
shell doesn't expand * against the current files. And note that the
|
|
support for "*" is a special case. It's only meaningful as a single
|
|
search term and loses its special meaning when combined with any
|
|
other search terms.
|
|
|
|
Automatically detect thread connections even when a parent message is
|
|
missing.
|
|
|
|
Previously, if two or more message were received with a common
|
|
parent, but that parent was not received, then these messages would
|
|
not be recognized as belonging to the same thread. This is now fixed
|
|
so that such messages are properly connected in a thread.
|
|
|
|
General bug fixes
|
|
-----------------
|
|
Fix potential data loss in "notmuch new" with SIGINT
|
|
|
|
One code path in "notmuch new" was not properly handling
|
|
SIGINT. Previously, this could lead to messages being removed from
|
|
the database (and their tags being lost) if the user pressed
|
|
Control-C while "notmuch new" was working.
|
|
|
|
Fix segfault when a message includes a MIME part that is empty.
|
|
|
|
Fix handling of non-ASCII characters with --format=json
|
|
|
|
Previously, characters outside the range of 7-bit ASCII were
|
|
silently dropped from the JSON output. This led to corrupted display
|
|
of utf-8 content in the upcoming notmuch web-based frontends.
|
|
|
|
Fix headers to be properly decoded in "notmuch reply"
|
|
|
|
Previously, the user might see:
|
|
|
|
Subject: Re: =?iso-8859-2?q?Rozlu=E8ka?=
|
|
|
|
rather than:
|
|
|
|
Subject: Re: Rozlučka
|
|
|
|
The former text is properly encoded to be RFC-compliant SMTP, will
|
|
be sent correctly, and will be properly decoded by the
|
|
recipient. But the user trying to edit the reply would likely be
|
|
unable to read or edit that field in its encoded form.
|
|
|
|
Emacs client features
|
|
---------------------
|
|
Show the last few lines of citations as well as the first few lines.
|
|
|
|
It's often the case that the last sentence of a citation is what is
|
|
being replied to directly, so the last few lines are often much more
|
|
important. The number of lines shown at the beginning and end of any
|
|
citation can be configured, (notmuch-show-citation-lines-prefix and
|
|
notmuch-show-citation-lines-suffix).
|
|
|
|
The '+' and '-' commands in the search view can now add and remove
|
|
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.
|
|
|
|
More meaningful buffer names for thread-view buffers.
|
|
|
|
Notmuch now uses the Subject of the thread as the buffer
|
|
name. Previously it was using the thread ID, which is a meaningless
|
|
number to the user.
|
|
|
|
Provide for customized colors of threads in search view based on tags.
|
|
|
|
See the documentation of notmuch-search-line-faces, (or us "M-x
|
|
customize" and browse to the "notmuch" group within "Applications"
|
|
and "Mail"), for details on how to configure this colorization.
|
|
|
|
Build-system features
|
|
---------------------
|
|
Add support to properly build libnotmuch on Darwin systems (OS X).
|
|
|
|
Add support to configure for many standard options.
|
|
|
|
We include actual support for:
|
|
|
|
--includedir --mandir --sysconfdir
|
|
|
|
And accept and silently ignore several more:
|
|
|
|
--build --infodir --libexecdir --localstatedir
|
|
--disable-maintainer-mode --disable-dependency-tracking
|
|
|
|
Install emacs client in "make install" rather than requiring a
|
|
separate "make install-emacs".
|
|
|
|
Automatically compute versions numbers between releases.
|
|
|
|
This support uses the git-describe notation, so a version such as
|
|
0.1-144-g43cbbfc indicates a version that is 144 commits since the
|
|
0.1 release and is available as git commit "43cbbfc".
|
|
|
|
Add a new "make test" target to run the test suite and actually verify
|
|
its results.
|
|
|
|
Notmuch 0.1 (2010-04-05)
|
|
========================
|
|
This is the first release of the notmuch mail system.
|
|
|
|
It includes the libnotmuch library, the notmuch command-line
|
|
interface, and an emacs-based interface to notmuch.
|
|
|
|
Note: Notmuch will work best with Xapian 1.0.18 (or later) or Xapian
|
|
1.1.4 (or later). Previous versions of Xapian (whether 1.0 or 1.1) had
|
|
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.
|