aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--Makefile.local4
-rw-r--r--NEWS120
-rw-r--r--bindings/python/notmuch/version.py2
-rw-r--r--debian/changelog7
-rw-r--r--doc/doxygen.cfg2
-rw-r--r--version2
-rw-r--r--vim/notmuch.vim39
7 files changed, 155 insertions, 21 deletions
diff --git a/Makefile.local b/Makefile.local
index 6e78368c..fa07d81b 100644
--- a/Makefile.local
+++ b/Makefile.local
@@ -80,8 +80,8 @@ version.stamp: $(srcdir)/version
echo $(VERSION) > $@
$(TAR_FILE):
- if git tag -v $(VERSION) >/dev/null 2>&1; then \
- ref=$(VERSION); \
+ if git tag -v $(UPSTREAM_TAG) >/dev/null 2>&1; then \
+ ref=$(UPSTREAM_TAG); \
else \
ref="HEAD" ; \
echo "Warning: No signed tag for $(VERSION)"; \
diff --git a/NEWS b/NEWS
index bcd311d4..983db2b5 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,80 @@
-Notmuch 0.18~rc0 (2014-04-22)
+Notmuch 0.18~rc1 (2014-05-04)
=============================
+Overview
+--------
+
+This new release includes some enhancements to searching for messages
+by filesystem location (`folder:` and `path:` prefixes under *General*
+below). Saved searches in *Emacs* have also been enhanced to allow
+distinct search orders for each one. Another enhancement to the
+*Emacs* interface is that replies to encrypted messages are now
+encrypted, reducing the risk of unintentional information disclosure.
+The default dump output format has changed to the more robust
+`batch-tag` format. The previously deprecated parsing of single
+message mboxes has been removed. For detailed release notes, see
+below.
+
+General
+-------
+
+The `folder:` search prefix now requires an exact match
+
+ The `folder:` prefix has been changed to search for email messages
+ by the exact, case sensitive maildir or MH folder name. Wildcard
+ matching (`folder:foo*`) is no longer supported. The new behaviour
+ allows for more accurate mail folder based searches, makes it
+ possible to search for messages in the top-level folder, and should
+ lead to less surprising results than the old behaviour. Users are
+ advised to see the `notmuch-search-terms` manual page for details,
+ and review how the change affects their existing `folder:` searches.
+
+There is a new `path:` search prefix.
+
+ The new `path:` search prefix complements the `folder:` prefix. The
+ `path:` prefix searches for email messages that are in particular
+ directories within the mail store, optionally recursively using a
+ special syntax. See the `notmuch-search-terms` manual page for
+ details.
+
+Notmuch database upgrade due to `folder:` and `path:` changes
+
+ The above mentioned changes to the `folder:` prefix and the addition
+ of `path:` prefix require a Notmuch database upgrade. This will be
+ done automatically, without prompting on the next time `notmuch new`
+ is run after the upgrade. The upgrade is not reversible, and the
+ upgraded database will not be readable by older versions of
+ Notmuch. As a safeguard, a database dump will be created in the
+ `.notmuch` directory before upgrading.
+
+Library changes
+---------------
+
+Notmuch database upgrade
+
+ The libnotmuch consumers are reminded to handle database upgrades
+ properly, either by relying on running `notmuch new`, or checking
+ `notmuch_database_needs_upgrade()` and calling
+ `notmuch_database_upgrade()` as necessary. This has always been the
+ case, but in practise there have been no database upgrades in any
+ released version of Notmuch before now.
+
+Support for indexing mbox files has been dropped
+
+ There has never been proper support for mbox files containing
+ multiple messages, and the support for single-message mbox files has
+ been deprecated since Notmuch 0.15. The support has now been
+ dropped, and all mbox files will be rejected during indexing.
+
+Message header parsing changes
+
+ Notmuch previously had an internal parser for message headers. The
+ parser has now been dropped in favour of letting GMime parse both
+ the headers and the message MIME structure at the same pass. This is
+ mostly an internal change, but the GMime parser is stricter in its
+ interpretation of the headers. This may result in messages with
+ slightly malformed message headers being now rejected.
+
Command-Line Interface
----------------------
@@ -12,6 +86,25 @@ Command-Line Interface
This option suppresses the progress and summary reports.
+`notmuch insert` respects maildir.synchronize_flags config option
+
+ Do not synchronize tags to maildir flags in `notmuch insert` if the
+ user does not want it.
+
+The commands set consistent exit status codes on failures
+
+ The cli commands now consistently set exit status of 1 on failures,
+ except where explicitly otherwise noted. The notable expections are
+ the status codes for format version mismatches for commands that
+ support formatted output.
+
+Bug fix for checking configured new.tags for invalid tags
+
+ `notmuch new` and `notmuch insert` now check the user configured
+ new.tags for invalid tags, and refuse to apply them, similar to
+ `notmuch tag`. Invalid tags are currently the empty string and tags
+ starting with `-`.
+
Emacs Interface
---------------
@@ -82,6 +175,12 @@ Version variable
these differ from each other.
This is especially useful when using notmuch remotely.
+Ido-completing-read initialization in Emacs 23
+
+ `ido-completing-read` in Emacs 23 versions 1 through 3 freezes unless
+ it is initialized. Defadvice-based *Ido* initialization is defined
+ for these Emacs versions.
+
Bug fix for saved searches with newlines in them
Split lines confuse `notmuch count --batch`, so we remove embedded
@@ -93,6 +192,25 @@ Bug fixes for sender identities
and undesirable ways. Now it will use identities exactly as
configured in `notmuch-identities`.
+Replies to encrypted messages will be encrypted by default
+
+ In the interest of maintaining confidentiality of communications,
+ the Notmuch Emacs interface now automatically adds the mml tag to
+ encrypt replies to encrypted messages. This should make it less
+ likely to accidentally reply to encrypted messages in plain text.
+
+Reply pushes mark before signature
+
+ We push mark and set point on reply so that the user can easily cut
+ the quoted text. The mark is now pushed before the signature, if
+ any, instead of end of buffer so the signature is preserved.
+
+Message piping uses the originating buffer's working directory
+
+ `notmuch-show-pipe-message` now uses the originating buffer's
+ current default directory instead of that of the `*notmuch-pipe*`
+ buffer's.
+
nmbug
-----
diff --git a/bindings/python/notmuch/version.py b/bindings/python/notmuch/version.py
index f15440d1..a10ecd93 100644
--- a/bindings/python/notmuch/version.py
+++ b/bindings/python/notmuch/version.py
@@ -1,2 +1,2 @@
# this file should be kept in sync with ../../../version
-__VERSION__ = '0.18~rc0'
+__VERSION__ = '0.18~rc1'
diff --git a/debian/changelog b/debian/changelog
index 72dbd45c..15fc994e 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,3 +1,10 @@
+notmuch (0.18~rc1-1) experimental; urgency=low
+
+ * Upstream release candidate
+ - include encoding fix for vim client.
+
+ -- David Bremner <bremner@debian.org> Sun, 04 May 2014 07:29:51 +0900
+
notmuch (0.18~rc0-1) experimental; urgency=low
* Upstream release candidate.
diff --git a/doc/doxygen.cfg b/doc/doxygen.cfg
index 65d5fb50..bfbfcab3 100644
--- a/doc/doxygen.cfg
+++ b/doc/doxygen.cfg
@@ -4,7 +4,7 @@
# Project related configuration options
#---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8
-PROJECT_NAME = "Notmuch 0.17"
+PROJECT_NAME = "Notmuch 0.18"
PROJECT_NUMBER =
PROJECT_BRIEF =
PROJECT_LOGO =
diff --git a/version b/version
index 065d0c86..9f565a42 100644
--- a/version
+++ b/version
@@ -1 +1 @@
-0.18~rc0
+0.18~rc1
diff --git a/vim/notmuch.vim b/vim/notmuch.vim
index d7b310c8..331e9300 100644
--- a/vim/notmuch.vim
+++ b/vim/notmuch.vim
@@ -86,17 +86,22 @@ endfunction
function! s:compose_send()
let b:compose_done = 1
let fname = expand('%')
+ let lines = getline(5, '$')
- " remove headers
- 0,4d
- write
+ruby << EOF
+ # Generate proper mail to send
+ text = VIM::evaluate('lines').join("\n")
+ fname = VIM::evaluate('fname')
+ transport = Mail.new(text)
+ transport.message_id = generate_message_id
+ transport.charset = 'utf-8'
+ File.write(fname, transport.to_s)
+EOF
let cmdtxt = g:notmuch_sendmail . ' -t -f ' . s:reply_from . ' < ' . fname
let out = system(cmdtxt)
let err = v:shell_error
if err
- undo
- write
echohl Error
echo 'Eeek! unable to send mail'
echo out
@@ -572,9 +577,7 @@ ruby << EOF
end
m.cc = orig[:cc]
m.from = $email
- m.message_id = generate_message_id
m.charset = 'utf-8'
- m.content_transfer_encoding = '7bit'
end
lines = []
@@ -600,7 +603,7 @@ ruby << EOF
reply.body = body_lines.join("\n")
- lines += reply.to_s.lines.map { |e| e.chomp }
+ lines += reply.present.lines.map { |e| e.chomp }
lines << ""
cur = lines.count - 1
@@ -611,18 +614,13 @@ ruby << EOF
def open_compose()
lines = []
- lines << "Date: #{Time.now().strftime('%a, %-d %b %Y %T %z')}"
lines << "From: #{$email}"
lines << "To: "
cur = lines.count
lines << "Cc: "
lines << "Bcc: "
- lines << "Message-Id: #{generate_message_id}"
lines << "Subject: "
- lines << "Mime-Version: 1.0"
- lines << "Content-Type: text/plain; charset=utf-8"
- lines << "Content-Transfer-Encoding: 7bit"
lines << ""
lines << ""
lines << ""
@@ -633,7 +631,7 @@ ruby << EOF
def folders_render()
$curbuf.render do |b|
folders = VIM::evaluate('g:notmuch_folders')
- count_threads = VIM::evaluate('g:notmuch_folders_count_threads')
+ count_threads = VIM::evaluate('g:notmuch_folders_count_threads') == 1
$searches.clear
folders.each do |name, search|
q = $curbuf.query(search)
@@ -919,7 +917,8 @@ ruby << EOF
if mime_type != "text/html"
text = decoded
else
- IO.popen("elinks --dump", "w+") do |pipe|
+ IO.popen(VIM::evaluate('exists("g:notmuch_html_converter") ? ' +
+ 'g:notmuch_html_converter : "elinks --dump"'), "w+") do |pipe|
pipe.write(decode_body)
pipe.close_write
text = pipe.read
@@ -927,6 +926,16 @@ ruby << EOF
end
text
end
+
+ def present
+ buffer = ''
+ header.fields.each do |f|
+ buffer << "%s: %s\r\n" % [f.name, f.to_s]
+ end
+ buffer << "\r\n"
+ buffer << body.to_s
+ buffer
+ end
end
end