unofficial mirror of notmuch@notmuchmail.org
 help / color / mirror / code / Atom feed
* [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).