* [Announce] notmuch release 0.3 now available
@ 2010-04-27 9:40 Carl Worth
2010-04-27 12:57 ` [PATCH] Rename already used counter var i Sebastian Spaeth
0 siblings, 1 reply; 4+ messages in thread
From: Carl Worth @ 2010-04-27 9:40 UTC (permalink / raw)
To: notmuch
[-- Attachment #1: Type: text/plain, Size: 13190 bytes --]
We're delighted to announce the 0.3 release of notmuch. We were closer
than ever to hitting our release target of "about a week" since 0.2,
(one week, one weekend, one day, and one long night).
The major theme of this release is a huge number of improvements to the
emacs interface to notmuch. There's now a lovely new "welcome screen"
that provides a search bar, recent searches, and saved searches. It
looks nice, it's extremely convenient to use, and we think it makes a
great model for what a "search-based email interface" should look
like. (So we're hoping that someone will imitate it in an upcoming
graphical interface to notmuch).
Other major improvements to the emacs interface include better HTML and
MIME support, including support for inline-image display within emacs.
Kudos to David Edmondson for most of the work on the emacs interface for
this release.
Kudos also to Sebastian Spaeth who dominated "git shortlog 0.2..0.3"
with 105 commits. Many of these were for the new python bindings to the
notmuch library now included in the tar file, (but not yet uploaded as
a Debian package). Check them out.
Dirk Hohndel and Jesse Rosenthal round out the list of major
contributors for the 0.3 release with a number of useful features each,
(better guessing of From address for replies, authors of messages
matching the search listed first for thread, subject of messages
matching the search listed for the thread, support for Fcc within emacs,
etc.).
Finally, a long-anticipated general feature was added in 0.3 which is
the ability to configure which tags get added to new messages by
default. You can stick with the default "inbox and unread", expand it to
something like "inbox, unread, and new", trim it down to just "new" or
do anything else you like. Just run "notmuch setup" for a painless
introduction. Ben Gamari wrote the actual patch that was included, but
others such as Anthony Towns had written the nearly identical features.
There are many more, long-anticipated features that will be coming out
in 0.4. It will be a slightly longer release cycle. Our goal is "a
little more than two weeks" for this one. That release will include a
number of changes to the notmuch database schema which will be fairly
invasive.
Take a look at the release notes below for more details on what's in
0.3. There are a lot of goodies here.
-Carl
--
carl.d.worth@intel.com
Where to obtain notmuch 0.3
===========================
http://notmuchmail.org/releases/notmuch-0.3.tar.gz
Which can be verified with:
http://notmuchmail.org/releases/notmuch-0.3.tar.gz.sha1
d65866323cb76b99fd3004c7f9af7f0e322743b3 notmuch-0.3.tar.gz
http://notmuchmail.org/releases/notmuch-0.3.tar.gz.sha1.asc
(signed by Carl Worth)
What's new in notmuch 0.3
=========================
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/plan
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.
What is notmuch
===============
Notmuch is a system for indexing, searching, reading, and tagging
large collections of email messages in maildir or mh format. It uses
the Xapian library to provide fast, full-text search with a convenient
search syntax.
For more about notmuch, see http://notmuchmail.org
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH] Rename already used counter var i
2010-04-27 9:40 [Announce] notmuch release 0.3 now available Carl Worth
@ 2010-04-27 12:57 ` Sebastian Spaeth
2010-04-27 15:12 ` Carl Worth
0 siblings, 1 reply; 4+ messages in thread
From: Sebastian Spaeth @ 2010-04-27 12:57 UTC (permalink / raw)
To: Notmuch developer list
From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
i is already used in a for loop at this point, so using i here again
broke notmuch-reply (it would just hang). Use j instead of i here.
Signed-off-by: Sebastian Spaeth <Sebastian@SSpaeth.de>
---
Aneesh noticed this bug and provided a fix for it. IMO it warrants a 0.3.1
release. notmuch-reply hanging indefinitely is not going to make grumpy
editors happy. Also despite a documentation blurb above the main snippet of
code, I find it pretty much black magic what is being done here. But then
I don't really know C....
notmuch-reply.c | 8 ++++----
1 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/notmuch-reply.c b/notmuch-reply.c
index 333e945..fd1de3b 100644
--- a/notmuch-reply.c
+++ b/notmuch-reply.c
@@ -317,7 +317,7 @@ guess_from_received_header (notmuch_config_t *config, notmuch_message_t *message
char *domain=NULL;
char *tld=NULL;
const char *delim=". \t";
- size_t i,other_len;
+ size_t i,j,other_len;
const char *to_headers[] = {"Envelope-to", "X-Original-To"};
@@ -348,10 +348,10 @@ guess_from_received_header (notmuch_config_t *config, notmuch_message_t *message
free(tohdr);
return primary;
}
- for (i = 0; i < other_len; i++)
- if (strcasestr (tohdr, other[i])) {
+ for (j = 0; j < other_len; j++)
+ if (strcasestr (tohdr, other[j])) {
free(tohdr);
- return other[i];
+ return other[j];
}
free(tohdr);
}
--
1.7.0.4
^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH] Rename already used counter var i
2010-04-27 12:57 ` [PATCH] Rename already used counter var i Sebastian Spaeth
@ 2010-04-27 15:12 ` Carl Worth
2010-04-27 17:18 ` Carl Worth
0 siblings, 1 reply; 4+ messages in thread
From: Carl Worth @ 2010-04-27 15:12 UTC (permalink / raw)
To: Sebastian Spaeth, Notmuch developer list
[-- Attachment #1: Type: text/plain, Size: 1105 bytes --]
On Tue, 27 Apr 2010 14:57:25 +0200, Sebastian Spaeth <Sebastian@SSpaeth.de> wrote:
> From: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> i is already used in a for loop at this point, so using i here again
> broke notmuch-reply (it would just hang). Use j instead of i here.
Thanks for the fix.
> Aneesh noticed this bug and provided a fix for it. IMO it warrants a 0.3.1
> release. notmuch-reply hanging indefinitely is not going to make grumpy
> editors happy.
Definitely.
For a point release like 0.3.1 I'm going to insist on a test case that
demonstrates each regression being fixed. Does someone know what it
takes to make a mail trigger this bug?
> Also despite a documentation blurb above the main snippet of
> code, I find it pretty much black magic what is being done here. But then
> I don't really know C....
I find it pretty much black magic too. I rewrote one piece of
black-magic code late last night when we noticed it was causing crashes
and valgrind was complaining. I'll dive in and give this chunk of code
some similar treatment.
-Carl
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH] Rename already used counter var i
2010-04-27 15:12 ` Carl Worth
@ 2010-04-27 17:18 ` Carl Worth
0 siblings, 0 replies; 4+ messages in thread
From: Carl Worth @ 2010-04-27 17:18 UTC (permalink / raw)
To: Sebastian Spaeth, Notmuch developer list
[-- Attachment #1: Type: text/plain, Size: 691 bytes --]
> On Tue, 27 Apr 2010 14:57:25 +0200, Sebastian Spaeth <Sebastian@SSpaeth.de> wrote:
> For a point release like 0.3.1 I'm going to insist on a test case that
> demonstrates each regression being fixed. Does someone know what it
> takes to make a mail trigger this bug?
I investigated this. The key was that the user had to have no configured
"other" email addresses, (or at least fewer than the fixed-length array
(2) being iterated over in the outer loop) in order to trigger the
infinite-loop bug.
I just pushed new test cases to master that pass, and verified that the
same test cases cause the code in 0.3 to enter an infinite loop.
-Carl
--
carl.d.worth@intel.com
[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2010-04-27 17:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2010-04-27 9:40 [Announce] notmuch release 0.3 now available Carl Worth
2010-04-27 12:57 ` [PATCH] Rename already used counter var i Sebastian Spaeth
2010-04-27 15:12 ` Carl Worth
2010-04-27 17:18 ` Carl Worth
Code repositories for project(s) associated with this public inbox
https://yhetil.org/notmuch.git/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).