Commit graph

5752 commits

Author SHA1 Message Date
David Bremner
f0131af6c5 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
2018-05-07 08:42:53 -03:00
David Bremner
60fcec82d2 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.
2018-05-07 08:42:53 -03:00
David Bremner
5ad39ebf75 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
2018-05-07 08:42:53 -03:00
David Bremner
3a747e714c uploaded to unstable
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlru7eQACgkQ8gKXHaSn
 nizoGAv8CqDkdqWcDU7LT8az9BFNxeohEsXskx8gYnZSVutIQEBEfj9dKyr7t7JW
 nVz3NpOcQdsNUkafxsaezDoDDYYHlzNDN7uC0MNYipEfV6bXLaQcQ7M6SBuIjKsD
 azDNu24ar0n2qnmvd90CFSQbcIaFNACirq8wN81oMwvOkR8jC7qj8qPcqmcTmpWq
 PM146axbiTr72TPRa/w0AXUu/Q8DhKXnmvgLeJr13dNedoYRA8M7ITC1XA3tp8vT
 gxI+hSWZA3j2+GZPqwzd4SM1aOrC3VEfd1yj85M0/pXZ9HT7UzEe44YUTsyldQ6x
 MTPllr6yXYFcUJRwQJiX07g/tOJ/kmY5tAdPryPMRG0tG54Y1MOECUpj1NyWFC+s
 u6d4b7KDSwf0VonaDj0rLyEtgPQ8B+m1cJ4ixw6dinxpT710qzFABicLvfL2aqK9
 zx7IIjs8HBXdjz322tOajUTJs6qOCHQ9RXB0t9Q+KMhxGz5fBMATTmJnUInbNzVU
 f5Ujut67
 =bHZX
 -----END PGP SIGNATURE-----

Merge tag 'debian/0.26.2-2'

uploaded to unstable
2018-05-06 09:00:02 -03:00
David Bremner
55710e16fd debian: re-enable gdb in tests on s390x, ppc64el, armel, mipsel
I was able to verify these 4 arches on Debian porterboxes
2018-05-06 08:38:26 -03:00
David Bremner
e9dcc51862 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.
2018-05-06 08:01:12 -03:00
Florian Klink
140e8fb118 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>
2018-05-03 21:03:33 -03:00
Daniel Kahn Gillmor
c20a5eb805 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.
2018-05-03 20:59:20 -03:00
David Bremner
4ac23c5978 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.
2018-05-03 07:44:49 -03:00
David Bremner
f3f4297c7f 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.
2018-05-02 20:30:51 -03:00
Ruben Pollan
5e05f00fe5 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
2018-05-02 20:16:11 -03:00
David Bremner
9e158fb694 Merge branch 'release' 2018-04-28 08:45:59 -03:00
David Bremner
a08c36417f 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.
2018-04-28 08:34:48 -03:00
David Bremner
d17855dd0b debian: finalize changelog 2018-04-28 08:11:27 -03:00
David Bremner
ab9622c199 NEWS: set release date 2018-04-28 08:06:56 -03:00
David Bremner
388edce0b7 Merge branch 'release'
minimal mset fix, for 0.26.2
2018-04-26 22:47:40 -03:00
David Bremner
15d50a784f debian: changelog for 0.26.2-1 2018-04-26 22:42:39 -03:00
David Bremner
d582f3277e travis: disable gdb based tests
Apparently something broke with gdb on travis.

(cherry picked from commit 12541fea7f)
2018-04-26 22:33:42 -03:00
David Bremner
ed04c07889 version: bump to 0.26.2 2018-04-26 22:28:45 -03:00
David Bremner
cc8b6b747d NEWS: news item for mset fix 2018-04-26 22:15:11 -03:00
David Bremner
64831e8016 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
2018-04-26 22:14:59 -03:00
David Bremner
963ccabe93 Merge branch 'release'
reference loop fixes to be included in 0.26.2
2018-04-25 17:36:32 -03:00
David Bremner
15aaa41ce2 NEWS: add item for reference loop fix. 2018-04-25 17:32:48 -03:00
David Bremner
20ba0b7dfa 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
2018-04-24 23:08:10 -03:00
David Bremner
e8ac065a50 test: re-enable disabled test in T700-reindex.sh
The extra test_done looks like a typo
2018-04-24 22:59:21 -03:00
Martin Michlmayr
b4767dd622 NEWS: Fix typos 2018-04-24 22:59:04 -03:00
David Bremner
491b1f4b40 lib: choose oldest message when breaking reference loops
This preserves a sensible thread order
2018-04-23 23:00:20 -03:00
David Bremner
4e085b6d92 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.
2018-04-23 23:00:20 -03:00
David Bremner
9293d6da27 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.
2018-04-20 11:23:31 -03:00
David Bremner
ab55ca8e0a test: add known broken test for indexing an In-Reply-To loop.
This documents the bug discussed in

     id:87d10042pu.fsf@curie.anarc.at
2018-04-20 11:23:31 -03:00
David Bremner
044cbd920c test: two new messages for the 'broken' corpus
These have an 'In-Reply-To' loop, which currently confuses "notmuch
new".
2018-04-20 11:23:31 -03:00
David Bremner
5d510221d1 Merge branch 'release' 2018-04-07 17:43:01 -03:00
David Bremner
ea690a44d1 version: bump to 0.26.1 2018-04-02 08:09:45 -03:00
David Bremner
68d7f5306a debian: changelog for 0.26.1-1 2018-04-02 08:08:53 -03:00
David Bremner
920f5d925e 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
2018-04-02 08:06:53 -03:00
Georg Faerber
c117306f2d Fix typos as found by codespell
Signed-off-by: Georg Faerber <georg@riseup.net>
2018-03-24 20:09:54 -03:00
Daniel Kahn Gillmor
f6430bc06d 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.
2018-03-24 20:08:27 -03:00
Daniel Kahn Gillmor
b6e3efde05 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>
2018-03-24 20:08:11 -03:00
Matthew Lear
0cbe982bfd 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.
2018-03-24 20:07:20 -03:00
Daniel Kahn Gillmor
a9f1c7c294 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>
2018-02-07 06:41:01 -04:00
Antoine Amarilli
cf8c689eab 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>
2018-01-31 21:22:04 -04:00
David Bremner
12541fea7f travis: disable gdb based tests
Apparently something broke with gdb on travis.
2018-01-12 20:50:05 -04:00
Daniel Kahn Gillmor
2ed6357407 travis: build against python3-sphinx instead of python-sphinx
Ubuntu trusty has python3-sphinx 1.2.2+dfsg-1ubuntu1, so this should
be OK.
2018-01-12 20:48:46 -04:00
David Bremner
431c41a4f2 INSTALL: fix typo 2018-01-12 20:48:22 -04:00
Daniel Kahn Gillmor
1b9eec0041 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!
2018-01-12 20:47:13 -04:00
David Bremner
a727e7d4d3 notmuch 0.26 release
-----BEGIN PGP SIGNATURE-----
 
 iQGzBAABCAAdFiEE3VS2dnyDRXKVCQCp8gKXHaSnniwFAlpUqBwACgkQ8gKXHaSn
 nixrpAv+NnjUvhw0yWLqkMMP88KW7xY/ecA/4KPa18m/ucfsJRVfEW6hDkhmFogc
 KYeGOYGcABIX72DIOtzI8EnW6vhnf1E5APeBeWNWBeTWAi9+uEP6L/TSdk1PQiNU
 BXUvtMsfCPesLT14+469xt5MEIiZeIFu4//RPgAtQputphe5KYFOOpGlLW0qY05O
 GW0rCMfwIH9sn8Z5oBgaMCsRzoQNPCRDqKeqIa1D9fkjdnUfxgdn9ENYHOdWi3yO
 fFiwwBk6bIvN5zUU78OKl2CgJeAiNrlMUUZMgMYVr82q7CzB4sZ9PNBhj67tb+Rv
 qt2hePqnuYBLzG6/pAn08nEHas+vNofs590KZBvu1gtqAmZTDKhH7lO/p/UHlmwk
 reOX5oOCkxXUxdqlRhmvXF5fer4ZOm069bOhVZULA+yWyDX1BVSmykcvDCxceL3r
 R9JsOTSp0B75Q5OEsQJ1pn5JG1IU9NrFJ3s1vFxRIgkeva1Y5hE3hy1p6uupl3zi
 0hFt2un4
 =OH4T
 -----END PGP SIGNATURE-----

Merge tag '0.26'

notmuch 0.26 release
2018-01-09 07:46:57 -04:00
David Bremner
3c4e64d976 NEWS: Fix markup of headline 2018-01-09 07:28:21 -04:00
David Bremner
eba5537af1 NEWS: set release date 2018-01-09 07:15:45 -04:00
David Bremner
461260c3c6 version: bump to 0.26 2018-01-09 07:15:16 -04:00
David Bremner
50da90ef03 debian: add some hints about upstream changes. 2018-01-09 07:14:28 -04:00