notmuch 0.18~rc1 release

-----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1
 
 iQGcBAABCAAGBQJTZXg2AAoJEPIClx2kp54shMEL/jimQji1GYwhBMfQKldBkl52
 FVbxOS4YiOc6zOcz7n8wjkjnHPEvTS/Q6mrZQTjJxtGDYkzaY27JKczXWB/ueqCJ
 /G9kEiXRbkVBLp2AQH7zHnKWRvqAQsaw9o+jyjzmW1UbJXX7dmZNmMQkWyN3bzy6
 taCDiKPxNTlwePRJUbC6O51GC6m7fZOQHSvrmrqFZiNdeT1Gs7g/Adj8Mho6x9A+
 q98Jtftk30Cyx0hXQKNXcJyTukdvVi69HZcmP+Rr9rCRZ4/L7WRbkX+iFQhvOm19
 c6ldgiwBV6+3DW4sNDHcpwZm5ZFh4I+0xUZ/r8V9F8f4yaY0SzMYtvA2xeIqXSG6
 FwkmPSGoW8A8cF8YqKkHOEZrM4ybd2XGvkDkibUncaAeAHQp4DCVG6etLG9kEtzr
 I4yqGhYTIjmjTuLXDOLEZ2mbhgayS5oAEnVqghapTNDYzzOK8h9Gr3Jvq6Kb2ckQ
 /VnEAOOvSv4bomil4NdgXaPrLZrTiq8lS6/pe2DZEg==
 =0A2e
 -----END PGP SIGNATURE-----

Merge tag '0.18_rc1'

notmuch 0.18~rc1 release
This commit is contained in:
David Bremner 2014-05-04 08:32:05 +09:00
commit 21cb851a22
7 changed files with 155 additions and 21 deletions

View file

@ -80,8 +80,8 @@ version.stamp: $(srcdir)/version
echo $(VERSION) > $@ echo $(VERSION) > $@
$(TAR_FILE): $(TAR_FILE):
if git tag -v $(VERSION) >/dev/null 2>&1; then \ if git tag -v $(UPSTREAM_TAG) >/dev/null 2>&1; then \
ref=$(VERSION); \ ref=$(UPSTREAM_TAG); \
else \ else \
ref="HEAD" ; \ ref="HEAD" ; \
echo "Warning: No signed tag for $(VERSION)"; \ echo "Warning: No signed tag for $(VERSION)"; \

120
NEWS
View file

@ -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 Command-Line Interface
---------------------- ----------------------
@ -12,6 +86,25 @@ Command-Line Interface
This option suppresses the progress and summary reports. 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 Emacs Interface
--------------- ---------------
@ -82,6 +175,12 @@ Version variable
these differ from each other. these differ from each other.
This is especially useful when using notmuch remotely. 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 Bug fix for saved searches with newlines in them
Split lines confuse `notmuch count --batch`, so we remove embedded 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 and undesirable ways. Now it will use identities exactly as
configured in `notmuch-identities`. 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 nmbug
----- -----

View file

@ -1,2 +1,2 @@
# this file should be kept in sync with ../../../version # this file should be kept in sync with ../../../version
__VERSION__ = '0.18~rc0' __VERSION__ = '0.18~rc1'

7
debian/changelog vendored
View file

@ -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 notmuch (0.18~rc0-1) experimental; urgency=low
* Upstream release candidate. * Upstream release candidate.

View file

@ -4,7 +4,7 @@
# Project related configuration options # Project related configuration options
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
DOXYFILE_ENCODING = UTF-8 DOXYFILE_ENCODING = UTF-8
PROJECT_NAME = "Notmuch 0.17" PROJECT_NAME = "Notmuch 0.18"
PROJECT_NUMBER = PROJECT_NUMBER =
PROJECT_BRIEF = PROJECT_BRIEF =
PROJECT_LOGO = PROJECT_LOGO =

View file

@ -1 +1 @@
0.18~rc0 0.18~rc1

View file

@ -86,17 +86,22 @@ endfunction
function! s:compose_send() function! s:compose_send()
let b:compose_done = 1 let b:compose_done = 1
let fname = expand('%') let fname = expand('%')
let lines = getline(5, '$')
" remove headers ruby << EOF
0,4d # Generate proper mail to send
write 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 cmdtxt = g:notmuch_sendmail . ' -t -f ' . s:reply_from . ' < ' . fname
let out = system(cmdtxt) let out = system(cmdtxt)
let err = v:shell_error let err = v:shell_error
if err if err
undo
write
echohl Error echohl Error
echo 'Eeek! unable to send mail' echo 'Eeek! unable to send mail'
echo out echo out
@ -572,9 +577,7 @@ ruby << EOF
end end
m.cc = orig[:cc] m.cc = orig[:cc]
m.from = $email m.from = $email
m.message_id = generate_message_id
m.charset = 'utf-8' m.charset = 'utf-8'
m.content_transfer_encoding = '7bit'
end end
lines = [] lines = []
@ -600,7 +603,7 @@ ruby << EOF
reply.body = body_lines.join("\n") reply.body = body_lines.join("\n")
lines += reply.to_s.lines.map { |e| e.chomp } lines += reply.present.lines.map { |e| e.chomp }
lines << "" lines << ""
cur = lines.count - 1 cur = lines.count - 1
@ -611,18 +614,13 @@ ruby << EOF
def open_compose() def open_compose()
lines = [] lines = []
lines << "Date: #{Time.now().strftime('%a, %-d %b %Y %T %z')}"
lines << "From: #{$email}" lines << "From: #{$email}"
lines << "To: " lines << "To: "
cur = lines.count cur = lines.count
lines << "Cc: " lines << "Cc: "
lines << "Bcc: " lines << "Bcc: "
lines << "Message-Id: #{generate_message_id}"
lines << "Subject: " lines << "Subject: "
lines << "Mime-Version: 1.0"
lines << "Content-Type: text/plain; charset=utf-8"
lines << "Content-Transfer-Encoding: 7bit"
lines << "" lines << ""
lines << "" lines << ""
lines << "" lines << ""
@ -633,7 +631,7 @@ ruby << EOF
def folders_render() def folders_render()
$curbuf.render do |b| $curbuf.render do |b|
folders = VIM::evaluate('g:notmuch_folders') 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 $searches.clear
folders.each do |name, search| folders.each do |name, search|
q = $curbuf.query(search) q = $curbuf.query(search)
@ -919,7 +917,8 @@ ruby << EOF
if mime_type != "text/html" if mime_type != "text/html"
text = decoded text = decoded
else 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.write(decode_body)
pipe.close_write pipe.close_write
text = pipe.read text = pipe.read
@ -927,6 +926,16 @@ ruby << EOF
end end
text text
end 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
end end