notmuch
2 years agodoc: document thread subqueries
David Bremner [Sat, 5 May 2018 15:59:28 +0000 (12:59 -0300)]
doc: document thread subqueries

Mention both performance and quoting issues.

2 years agolib: define specialized get_thread_id for use in thread subquery
David Bremner [Sun, 28 Jan 2018 02:50:42 +0000 (22:50 -0400)]
lib: define specialized get_thread_id for use in thread subquery

The observation is that we are only using the messages to get there
thread_id, which is kindof a pessimal access pattern for the current
notmuch_message_get_thread_id

2 years agoperf-test: add simple test for thread subqueries
David Bremner [Sat, 13 Jan 2018 12:46:21 +0000 (08:46 -0400)]
perf-test: add simple test for thread subqueries

This is not a particularly sensible query, but thread:{date:2010} is a
good way to generate fairly large intermediate queries.

2 years agolib: add thread subqueries.
David Bremner [Tue, 26 Dec 2017 01:03:05 +0000 (21:03 -0400)]
lib: add thread subqueries.

This change allows queries of the form

 thread:{from:me} and thread:{from:jian} and not thread:{from:dave}

This is still somewhat brute-force, but it's a big improvement over
both the shell script solution and the previous proposal [1], because it
does not build the whole thread structure just generate a
query. A further potential optimization is to replace the calls to
notmuch with more specialized Xapian code; in particular it's not
likely that reading all of the message metadata is a win here.

[1]: id:20170820213240.20526-1-david@tethera.net

2 years agoMerge tag 'debian/0.26.2-2'
David Bremner [Sun, 6 May 2018 12:00:02 +0000 (09:00 -0300)]
Merge tag 'debian/0.26.2-2'

uploaded to unstable

2 years agodebian: re-enable gdb in tests on s390x, ppc64el, armel, mipsel debian/0.26.2-2
David Bremner [Sun, 6 May 2018 11:38:26 +0000 (08:38 -0300)]
debian: re-enable gdb in tests on s390x, ppc64el, armel, mipsel

I was able to verify these 4 arches on Debian porterboxes

2 years agodebian: mark dtach and gdb as <!nocheck>
David Bremner [Sun, 6 May 2018 10:11:21 +0000 (07:11 -0300)]
debian: mark dtach and gdb as <!nocheck>

These are only needed for the test suite. In addition to the
functional change, this also helps document their role as
build-dependencies.

2 years agoT460-emacs-tree: sync $EXPECTED with test name
Florian Klink [Thu, 19 Apr 2018 08:41:01 +0000 (10:41 +0200)]
T460-emacs-tree: sync $EXPECTED with test name

This syncs the $EXPECTED directory name with the tests filename.

Signed-off-by: Florian Klink <flokli@flokli.de>
2 years agomove more http -> https
Daniel Kahn Gillmor [Sun, 29 Apr 2018 08:35:30 +0000 (04:35 -0400)]
move more http -> https

Correct URLs that have crept into the notmuch codebase with http://
when https:// is possible.

As part of this conversion, this changeset also indicates the current
preferred upstream URLs for both gmime and sup.  the new URLs are
https-enabled, the old ones are not.

This also fixes T310-emacs.sh, thanks to Bremner for catching it.

2 years agotest: add known broken test for regexp search of second subject
David Bremner [Thu, 14 Dec 2017 14:32:34 +0000 (10:32 -0400)]
test: add known broken test for regexp search of second subject

We expect this to give the same answer as the non-regexp subject
search. It does not because the regexp search relies on the value
slot, which currently contains only one subject.

2 years agotest: tests for python bindings get_property / get_properties
David Bremner [Wed, 2 May 2018 23:30:51 +0000 (20:30 -0300)]
test: tests for python bindings get_property / get_properties

These roughly replicate the equivalent C tests, although they rely on
the database state created by the former tests, since the python
bindings currently provide read-only access to properties.

2 years agopython: add bindings for notmuch_message_get_propert(y/ies)
Ruben Pollan [Wed, 2 May 2018 17:01:01 +0000 (19:01 +0200)]
python: add bindings for notmuch_message_get_propert(y/ies)

Message.get_property (prop) returns a string with the value of the property and
Message.get_properties (prop, exact=False) yields key, value pairs

2 years agoMerge branch 'release'
David Bremner [Sat, 28 Apr 2018 11:45:59 +0000 (08:45 -0300)]
Merge branch 'release'

2 years agobuild: push additional refs during release
David Bremner [Sat, 28 Apr 2018 11:34:48 +0000 (08:34 -0300)]
build: push additional refs during release

These currently have to be pushed by hand during a release, which
isn't a big deal, but is one more thing to remember.

2 years agodebian: finalize changelog 0.26.2 debian/0.26.2-1
David Bremner [Sat, 28 Apr 2018 11:11:27 +0000 (08:11 -0300)]
debian: finalize changelog

2 years agoNEWS: set release date
David Bremner [Sat, 28 Apr 2018 11:06:56 +0000 (08:06 -0300)]
NEWS: set release date

2 years agoMerge branch 'release'
David Bremner [Fri, 27 Apr 2018 01:47:40 +0000 (22:47 -0300)]
Merge branch 'release'

minimal mset fix, for 0.26.2

2 years agodebian: changelog for 0.26.2-1
David Bremner [Fri, 27 Apr 2018 01:42:39 +0000 (22:42 -0300)]
debian: changelog for 0.26.2-1

2 years agotravis: disable gdb based tests
David Bremner [Sat, 13 Jan 2018 00:50:05 +0000 (20:50 -0400)]
travis: disable gdb based tests

Apparently something broke with gdb on travis.

(cherry picked from commit 12541fea7fe333f7c154a4a12a1d40394c2d6364)

2 years agoversion: bump to 0.26.2
David Bremner [Fri, 27 Apr 2018 01:28:45 +0000 (22:28 -0300)]
version: bump to 0.26.2

2 years agoNEWS: news item for mset fix
David Bremner [Wed, 18 Apr 2018 00:00:12 +0000 (21:00 -0300)]
NEWS: news item for mset fix

2 years agolib: work around xapian bug with get_mset(0,0, x)
David Bremner [Fri, 6 Apr 2018 11:43:07 +0000 (08:43 -0300)]
lib: work around xapian bug with get_mset(0,0, x)

At least Fedora28 triggers this Xapian bug due to some toolchain change .

   https://bugzilla.redhat.com/show_bug.cgi?id=1546162

The underlying bug is fixed in xapian commit f92e2a936c1592, and
should be fixed in Xapian 1.4.6

2 years agoMerge branch 'release'
David Bremner [Wed, 25 Apr 2018 20:36:32 +0000 (17:36 -0300)]
Merge branch 'release'

reference loop fixes to be included in 0.26.2

2 years agoNEWS: add item for reference loop fix.
David Bremner [Sat, 14 Apr 2018 01:37:45 +0000 (22:37 -0300)]
NEWS: add item for reference loop fix.

2 years agodoc: add a section on quoting to notmuch-search-terms(7)
David Bremner [Sat, 7 Apr 2018 22:10:51 +0000 (19:10 -0300)]
doc: add a section on quoting to notmuch-search-terms(7)

I think we've diverged enough from the Xapian query parser
that we can't rely on that syntax description [1]. As far as I can
tell, [1] also only discusses quotes in the context of phrases.

[1]: https://xapian.org/docs/queryparser.html

2 years agotest: re-enable disabled test in T700-reindex.sh
David Bremner [Sun, 8 Apr 2018 11:12:20 +0000 (08:12 -0300)]
test: re-enable disabled test in T700-reindex.sh

The extra test_done looks like a typo

2 years agoNEWS: Fix typos
Martin Michlmayr [Sat, 14 Apr 2018 08:01:13 +0000 (10:01 +0200)]
NEWS: Fix typos

2 years agolib: choose oldest message when breaking reference loops
David Bremner [Fri, 20 Apr 2018 14:59:48 +0000 (11:59 -0300)]
lib: choose oldest message when breaking reference loops

This preserves a sensible thread order

2 years agotest: add known broken test for thread ordering from a loop
David Bremner [Sat, 14 Apr 2018 01:46:09 +0000 (22:46 -0300)]
test: add known broken test for thread ordering from a loop

The previous loop handling code chooses the last message in the
message list, which turns out to be the last in date order.
See the comment in _notmuch_thread_create.

2 years agolib: break reference loop by choosing arbitrary top level msg
David Bremner [Sat, 14 Apr 2018 01:08:05 +0000 (22:08 -0300)]
lib: break reference loop by choosing arbitrary top level msg

Other parts of notmuch (e.g. notmuch show) expect each thread to
contain at least one top level message, and crash if this expectation
is not met.

2 years agotest: add known broken test for indexing an In-Reply-To loop.
David Bremner [Tue, 20 Mar 2018 21:22:35 +0000 (18:22 -0300)]
test: add known broken test for indexing an In-Reply-To loop.

This documents the bug discussed in

     id:87d10042pu.fsf@curie.anarc.at

2 years agotest: two new messages for the 'broken' corpus
David Bremner [Tue, 20 Mar 2018 21:22:34 +0000 (18:22 -0300)]
test: two new messages for the 'broken' corpus

These have an 'In-Reply-To' loop, which currently confuses "notmuch
new".

2 years agoMerge branch 'release'
David Bremner [Sat, 7 Apr 2018 20:43:01 +0000 (17:43 -0300)]
Merge branch 'release'

2 years agoversion: bump to 0.26.1 0.26.1
David Bremner [Mon, 2 Apr 2018 11:09:45 +0000 (08:09 -0300)]
version: bump to 0.26.1

2 years agodebian: changelog for 0.26.1-1
David Bremner [Mon, 2 Apr 2018 11:08:53 +0000 (08:08 -0300)]
debian: changelog for 0.26.1-1

2 years agolib: bump LIBRARY_MINOR_VERSION
David Bremner [Tue, 27 Mar 2018 21:30:28 +0000 (18:30 -0300)]
lib: bump LIBRARY_MINOR_VERSION

We added several new functions, at least

   notmuch_database_get_default_indexopts
   notmuch_database_index_file
   notmuch_indexopts_destroy
   notmuch_indexopts_get_decrypt_policy
   notmuch_indexopts_set_decrypt_policy
   notmuch_message_count_files
   notmuch_message_has_maildir_flag
   notmuch_message_reindex
   notmuch_message_remove_all_properties_with_prefix
   notmuch_thread_get_total_files

2 years agoFix typos as found by codespell
Georg Faerber [Sun, 18 Mar 2018 02:30:25 +0000 (03:30 +0100)]
Fix typos as found by codespell

Signed-off-by: Georg Faerber <georg@riseup.net>
2 years agodoc: Examples of notmuch-reindex use and crypto policy
Daniel Kahn Gillmor [Wed, 21 Feb 2018 17:50:27 +0000 (09:50 -0800)]
doc: Examples of notmuch-reindex use and crypto policy

Currently, notmuch has the levers needed to set coherent crypto policy
around how cleartext is indexed, which also has an impact on how
messages are rendered.  But we don't have a lot of documentation about
how to do sensible things.  This is an initial attempt to address
that.

The first example shows a way to selectively index specific messages.

The next two examples are about aligning the existing database with
crypto indexing policy

The default crypto policy is to not index cleartext, and to only
decrypt messages on display when explicitly requested.

The other sensible crypto policy is to index cleartext while stashing
session keys. messages indexed in this way will be searchable, and
will be decrypted on display automatically unless the user explicitly
asks for it to *not* be decrypted.

The policy for indexing *new* messages is stored in the database as
the config variable index.decrypt.

But setting policy for new messages doesn't retroactively affect
already indexed messages.

This patch attempts to document ways that someone can efficiently
align their pre-existing database with their new policy.

I'm not sure this is the right place to document these examples, but i
do want them to be user-facing and relatively easy to find.  I'm happy
to entertain suggestions for where else we should put them.

2 years agocli/insert: add --world-readable flag
Daniel Kahn Gillmor [Fri, 9 Feb 2018 04:10:58 +0000 (23:10 -0500)]
cli/insert: add --world-readable flag

In some cases (e.g. when building a publicly-visible e-mail archive)
it doesn't make any sense to restrict visibility of the message to the
current user account.

This adds a --world-readable boolean option for "notmuch insert", so
that those who want to archive their mail publicly can feed their
archiver with:

    notmuch insert --world-readable

Other local delivery agents (postfix's local, and dovecot's lda) all
default to delivery in mode 0600 rather than relying on the user's
umask, so this fix doesn't change the default.

Also, this does not override the user's umask.  if the umask is
already set tight, it will not become looser as the result of passing
--world-readable.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2 years agoClarify the syntax required when searching using timestamps.
Matthew Lear [Tue, 6 Feb 2018 21:52:01 +0000 (21:52 +0000)]
Clarify the syntax required when searching using timestamps.

Need to be clearer about specifying time ranges using timestamps.
Legacy syntax which predates the date prefix is still supported, but
timestamps used in conjunction with the date prefix require additional
syntax.

2 years agodebian: drop export-dir from gbp.conf
Daniel Kahn Gillmor [Tue, 6 Feb 2018 19:38:21 +0000 (14:38 -0500)]
debian: drop export-dir from gbp.conf

No one knows why this invocation is here.  it does weird things during
the build.  If a developer really wants this behavior, they can
specify it in their own ~/.gbp.conf

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2 years agodoc: create manpage folders with right permissions
Antoine Amarilli [Wed, 31 Jan 2018 20:50:45 +0000 (21:50 +0100)]
doc: create manpage folders with right permissions

Avoids the issue where umask can make man pages unreadable after
installation. Relevant email on the mailing-list:
<87h8rt30sy.fsf@fifthhorseman.net>

2 years agotravis: disable gdb based tests
David Bremner [Sat, 13 Jan 2018 00:50:05 +0000 (20:50 -0400)]
travis: disable gdb based tests

Apparently something broke with gdb on travis.

2 years agotravis: build against python3-sphinx instead of python-sphinx
Daniel Kahn Gillmor [Wed, 10 Jan 2018 16:14:52 +0000 (11:14 -0500)]
travis: build against python3-sphinx instead of python-sphinx

Ubuntu trusty has python3-sphinx 1.2.2+dfsg-1ubuntu1, so this should
be OK.

2 years agoINSTALL: fix typo
David Bremner [Sat, 13 Jan 2018 00:48:22 +0000 (20:48 -0400)]
INSTALL: fix typo

2 years agoINSTALL: refer to python3-sphinx
Daniel Kahn Gillmor [Wed, 10 Jan 2018 16:14:51 +0000 (11:14 -0500)]
INSTALL: refer to python3-sphinx

We're now preferring to build with python3 instead of python2.  Update
the INSTALL to match.

Thanks to Antoine Amarilli <a3nm@a3nm.net> for pointing this out!

2 years agoMerge tag '0.26'
David Bremner [Tue, 9 Jan 2018 11:46:57 +0000 (07:46 -0400)]
Merge tag '0.26'

notmuch 0.26 release

2 years agoNEWS: Fix markup of headline 0.26 debian/0.26-1
David Bremner [Tue, 9 Jan 2018 11:26:44 +0000 (07:26 -0400)]
NEWS: Fix markup of headline

2 years agoNEWS: set release date
David Bremner [Tue, 9 Jan 2018 11:15:45 +0000 (07:15 -0400)]
NEWS: set release date

2 years agoversion: bump to 0.26
David Bremner [Tue, 9 Jan 2018 11:15:16 +0000 (07:15 -0400)]
version: bump to 0.26

2 years agodebian: add some hints about upstream changes.
David Bremner [Tue, 9 Jan 2018 11:14:28 +0000 (07:14 -0400)]
debian: add some hints about upstream changes.

2 years agonotes about debian packaging changes
Daniel Kahn Gillmor [Sun, 7 Jan 2018 14:37:45 +0000 (09:37 -0500)]
notes about debian packaging changes

2 years agoversion: bump to 0.26~rc2 0.26_rc2 debian/0.26_rc2-1
David Bremner [Sat, 6 Jan 2018 13:41:39 +0000 (09:41 -0400)]
version: bump to 0.26~rc2

Update debian version to follow.

2 years agoNEWS: don't start headlines with --
David Bremner [Sat, 6 Jan 2018 13:30:28 +0000 (09:30 -0400)]
NEWS: don't start headlines with --

This confuses our simple tooling, and it's questionable style anyway.

2 years agoNEWS: minimalist notes for Vladimir's changes
David Bremner [Fri, 5 Jan 2018 01:07:31 +0000 (21:07 -0400)]
NEWS: minimalist notes for Vladimir's changes

2 years agoNEWS: minimalist notes for Yuri's changes
David Bremner [Fri, 5 Jan 2018 01:01:56 +0000 (21:01 -0400)]
NEWS: minimalist notes for Yuri's changes

2 years agoNEWS: minimalist notes for Jani's changes
David Bremner [Fri, 5 Jan 2018 00:56:32 +0000 (20:56 -0400)]
NEWS: minimalist notes for Jani's changes

2 years agoNEWS: move test suite news down
David Bremner [Fri, 5 Jan 2018 00:46:43 +0000 (20:46 -0400)]
NEWS: move test suite news down

2 years agofix typos
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:32:38 +0000 (10:32 -0500)]
fix typos

2 years agoMerge branch 'release'
David Bremner [Fri, 5 Jan 2018 00:26:06 +0000 (20:26 -0400)]
Merge branch 'release'

debian updates

2 years agoStandards-Version: bump to 4.1.3 (no changes needed)
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:47:50 +0000 (10:47 -0500)]
Standards-Version: bump to 4.1.3 (no changes needed)

2 years agomove to debhelper 10
Daniel Kahn Gillmor [Tue, 2 Jan 2018 15:47:49 +0000 (10:47 -0500)]
move to debhelper 10

2 years agoMerge tag '0.26_rc1'
David Bremner [Tue, 2 Jan 2018 01:50:24 +0000 (21:50 -0400)]
Merge tag '0.26_rc1'

notmuch 0.26~rc1 release

2 years agodebian: bump date of upload 0.26_rc1 debian/0.26_rc1-1
David Bremner [Tue, 2 Jan 2018 01:18:22 +0000 (21:18 -0400)]
debian: bump date of upload

2 years agodoc: add 2018 to copyright year
David Bremner [Tue, 2 Jan 2018 01:17:05 +0000 (21:17 -0400)]
doc: add 2018 to copyright year

2 years agoNEWS: document notmuch-properties(7)
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:30 +0000 (18:09 -0500)]
NEWS: document notmuch-properties(7)

2 years agoNEWS: document notmuch_message_remove_all_properties_with_prefix
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:29 +0000 (18:09 -0500)]
NEWS: document notmuch_message_remove_all_properties_with_prefix

2 years agoNEWS: notmuch {show, reply} --decrypt takes explicit argument
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:28 +0000 (18:09 -0500)]
NEWS: notmuch {show, reply} --decrypt takes explicit argument

2 years agoNEWS: note decrypt_policy in python bindings for index_file
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:27 +0000 (18:09 -0500)]
NEWS: note decrypt_policy in python bindings for index_file

2 years agoNEWS: transition n_d_add_message to n_d_index_file
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:26 +0000 (18:09 -0500)]
NEWS: transition n_d_add_message to n_d_index_file

2 years agoNEWS: cleartext indexing section includes session keys
Daniel Kahn Gillmor [Sun, 31 Dec 2017 23:09:25 +0000 (18:09 -0500)]
NEWS: cleartext indexing section includes session keys

These are part and parcel of the same feature, so include the overview
here.

2 years agodoc/{reply, show}: match indentation
David Bremner [Sun, 31 Dec 2017 13:34:28 +0000 (09:34 -0400)]
doc/{reply, show}: match indentation

This is essentially a conflict resolution Jani's normalization and
Daniel's doc changes, but it's easier to do as a second commit.

2 years agoMerge branch 'release'
David Bremner [Sun, 31 Dec 2017 13:26:13 +0000 (09:26 -0400)]
Merge branch 'release'

Conflicts:
        doc/man1/notmuch-reply.rst
doc/man1/notmuch-show.rst

Conflicts taken from release (dkg's doc changes)

2 years agodoc: unify definition list usage across man pages
Jani Nikula [Sat, 30 Dec 2017 17:16:11 +0000 (19:16 +0200)]
doc: unify definition list usage across man pages

Make all parameter descriptions etc. use reStructuredText definition
lists with uniform style and indentation. Remove redundant indentation
from around the lists. Remove blank lines between term lines and
definition blocks. Use four spaces for indentation.

This is almost completely whitespace and paragraph reflow changes.

2 years agoNEWS: Python bindings changes for 0.26
David Bremner [Sat, 30 Dec 2017 15:57:44 +0000 (11:57 -0400)]
NEWS: Python bindings changes for 0.26

These are my own changes, plus those of Florian Klink and Lucas
Hoffmann. Gaute's change fixed a bug that was never in a released
version, so I left it out.

2 years agoNEWS: CLI changes for 0.26
David Bremner [Sat, 30 Dec 2017 15:35:23 +0000 (11:35 -0400)]
NEWS: CLI changes for 0.26

As with the lib changes, these are based on the commits with me as author.

2 years agoNEWS: library changes for 0.26
David Bremner [Sat, 30 Dec 2017 13:50:35 +0000 (09:50 -0400)]
NEWS: library changes for 0.26

These are just "my" changes, as arbited by "git shortlog", which
sometimes lies.

2 years agodebian: minimalist changelog for 0.26~rc1-1
David Bremner [Fri, 29 Dec 2017 20:49:50 +0000 (16:49 -0400)]
debian: minimalist changelog for 0.26~rc1-1

2 years agoversion: bump 0.26~rc1
David Bremner [Fri, 29 Dec 2017 20:48:42 +0000 (16:48 -0400)]
version: bump 0.26~rc1

2 years agocli/reply: make --decrypt take a keyword
Daniel Kahn Gillmor [Tue, 19 Dec 2017 16:40:55 +0000 (11:40 -0500)]
cli/reply: make --decrypt take a keyword

This brings the --decrypt argument to "notmuch reply" into line with
the other --decrypt arguments (in "show", "new", "insert", and
"reindex").  This patch is really just about bringing consistency to
the user interface.

We also use the recommended form in the emacs MUA when replying, and
update test T350 to match.

2 years agocli/show: make --decrypt take a keyword.
Daniel Kahn Gillmor [Tue, 19 Dec 2017 16:40:54 +0000 (11:40 -0500)]
cli/show: make --decrypt take a keyword.

We also expand tab completion for it, update the emacs bindings, and
update T350, T357, and T450 to match.

Make use of the bool-to-keyword backward-compatibility feature.

2 years agocli: some keyword options can be supplied with no argument
Daniel Kahn Gillmor [Mon, 25 Dec 2017 18:42:26 +0000 (14:42 -0400)]
cli: some keyword options can be supplied with no argument

We might change some notmuch command line tools that used to be
booleans into keyword arguments.

In that case, there are some legacy tools that will expect to be able
to do "notmuch foo --bar" instead of "notmuch foo --bar=baz".

This patch makes it possible to support that older API, while
providing a warning and an encouragement to upgrade.

2 years agoNEWS: Add nmbug 0.3 release notes to the notmuch 0.26 section
W. Trevor King [Thu, 28 Dec 2017 18:11:58 +0000 (10:11 -0800)]
NEWS: Add nmbug 0.3 release notes to the notmuch 0.26 section

2 years agonmbug: Bump to version 0.3
W. Trevor King [Thu, 28 Dec 2017 18:11:57 +0000 (10:11 -0800)]
nmbug: Bump to version 0.3

Changes since 0.2:

* Accept failures to unset core.worktree in clone (0a155847,
  2017-10-10, unreleased).
* Use --no-renames in log (f9189a06, 2016-09-26, v0.24).
* Auto-checkout in clone if it wouldn't clobber (7ef3b653, 2017-10-10,
  unreleased).
* Add a 'help' command for folks who don't like --help
  (9d25c97d, 2014-10-03, v0.20).
* Setup a 'config' branch on clone to track origin/config (244f8739,
  2015-03-22, v0.20).  This branch may be consumed by
  notmuch-report(1).
* Only error for invalid diff lines in tags/ (57225988, 2017-10-16,
  unreleased).
* Ignore # comments in 'notmuch dump ...' output (9bbc54bd,
  2016-03-27, v0.22).
* Respect 'expect' in _spawn(..., wait=True) (e263c5b1, 2017-10-10,
  unreleased).
* Update URLs in documentation (554b90b5 and 6a833a6e8, 2016-06-02,
  v0.23).

2 years agoMerge tag '0.26_rc0'
David Bremner [Thu, 28 Dec 2017 16:02:40 +0000 (12:02 -0400)]
Merge tag '0.26_rc0'

notmuch 0.26~rc0 release

2 years agodebian: update libnotmuch5.symbols for 0.26 0.26_rc0 debian/0.26_rc0-1
David Bremner [Thu, 28 Dec 2017 14:31:47 +0000 (10:31 -0400)]
debian: update libnotmuch5.symbols for 0.26

Several added symbols, no SONAME bump.

2 years agodebian: changelog stanza for 0.26~rc0-1
David Bremner [Thu, 28 Dec 2017 14:21:54 +0000 (10:21 -0400)]
debian: changelog stanza for 0.26~rc0-1

2 years agoversion: bump to 0.26~rc0
David Bremner [Thu, 28 Dec 2017 14:19:48 +0000 (10:19 -0400)]
version: bump to 0.26~rc0

2 years agomake release archive: common (or no) timestamps
Tomi Ollila [Tue, 12 Dec 2017 06:39:20 +0000 (08:39 +0200)]
make release archive: common (or no) timestamps

The appended file 'version' has the same timestamp as the files added
by `git archive`.

The original file name and time stamp are no longer saved to the
gzip header in resulting $(PACKAGE)-$(VERSION).tar.gz file.

When build environment is close enough to another, this may
provide mutually reproducible release archive files.

2 years agoRevert "lib: add thread subqueries."
David Bremner [Thu, 28 Dec 2017 14:05:55 +0000 (10:05 -0400)]
Revert "lib: add thread subqueries."

This reverts commit 4f5bbaf7e2cecfe5022ba4b28915cccfb7ccb12d.

2 years agopython: remove obsolete debian directory
David Bremner [Sun, 24 Dec 2017 13:58:45 +0000 (09:58 -0400)]
python: remove obsolete debian directory

It is unlikely this still works since it has not been updated since
2010. The python packages for debian are now built by the top level
debian/ packaging.

2 years agolib: add thread subqueries.
David Bremner [Sun, 20 Aug 2017 21:32:40 +0000 (18:32 -0300)]
lib: add thread subqueries.

This change allows queries of the form

 thread:{from:me} and thread:{from:jian} and not thread:{from:dave}

This is still somewhat brute-force, but it's a big improvement over
both the shell script solution and the previous proposal [1], because it
does not build the whole thread structure just generate a
query. A further potential optimization is to replace the calls to
notmuch with more specialized Xapian code; in particular it's not
likely that reading all of the message metadata is a win here.

[1]: id:20170820213240.20526-1-david@tethera.net

2 years agoNEWS: document notmuch reindex
Daniel Kahn Gillmor [Sun, 22 Oct 2017 18:53:35 +0000 (14:53 -0400)]
NEWS: document notmuch reindex

Describe the introduction of the "reindex" subcommand.  This blurb
acknowledges Subject: instability under reindexing when multiple
copies exist (suggesting that this is something that needn't
necessarily hold up a release).

2 years agopython: add decrypt_policy argument to Database.index_file()
Daniel Kahn Gillmor [Tue, 19 Dec 2017 19:08:50 +0000 (14:08 -0500)]
python: add decrypt_policy argument to Database.index_file()

We adopt a pythonic idiom here with an optional argument, rather than
exposing the user to the C indexopts object directly.

This now includes a simple test to ensure that the decrypt_policy
argument works as expected.

2 years agopython: Fix method name in docs
l-m-h@web.de [Fri, 22 Dec 2017 22:26:49 +0000 (23:26 +0100)]
python: Fix method name in docs

Fix a method rename in the docs that was overlooked in
3444c731d27fd42bbbdaae00af6ca48b4525b03b.

2 years agotest: final named query test works regardless of Xapian FieldProcessor
Daniel Kahn Gillmor [Tue, 19 Dec 2017 16:27:39 +0000 (11:27 -0500)]
test: final named query test works regardless of Xapian FieldProcessor

This test passes with older versions of Xapian as well, because
neither query returns any results.

This should resolve the travis build failure at
https://travis-ci.org/notmuch/notmuch/builds/318571658

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2 years agolib: return "" rather than NULL from notmuch_thread_get_authors
David Bremner [Fri, 15 Dec 2017 02:29:57 +0000 (22:29 -0400)]
lib: return "" rather than NULL from notmuch_thread_get_authors

The current behaviour is at best under-documented. The modified test in
T470-missing-headers.sh previously relied on printf doing the right
thing with NULL, which seems icky.

The use of talloc_strdup here is probably overkill, but it avoids
having to enforce that thread->authors is never mutated outside
_resolve_thread_authors_string.

2 years agotest: retrying lock tests are broken when built against older Xapian
Daniel Kahn Gillmor [Wed, 6 Dec 2017 02:33:24 +0000 (21:33 -0500)]
test: retrying lock tests are broken when built against older Xapian

If we're building against a version of Xapian that doesn't offer
retrying the lock, we should be honest and describe the tests as
broken, rather than marking them as missing a test prerequisite.

missing test prerequisites should be for specific components of the
test harness that are missing, not for the backend library notmuch
uses.

2 years agotest: named query tests are broken when missing Xapian FieldProcessor
Daniel Kahn Gillmor [Wed, 6 Dec 2017 02:33:23 +0000 (21:33 -0500)]
test: named query tests are broken when missing Xapian FieldProcessor

Named queries don't work without Xapian FieldProcessor.  Rather than
silently skipping them, we should explictly mark them as broken when
building against an older version of Xapian.

2 years agotest: searching by absolute date is broken without Xapian FieldProcessor
Daniel Kahn Gillmor [Wed, 6 Dec 2017 02:33:22 +0000 (21:33 -0500)]
test: searching by absolute date is broken without Xapian FieldProcessor

Previously, the test suite had simply silently skipped the absolute
date test if we're using an archaic version of Xapian.  For
correctness, we should instead mark the test as broken.

This also changes from string to numeric comparison when checking
NOMTUCH_HAVE_XAPIAN_FIELD_PROCESSOR for consistency with other tests.