]> git.notmuchmail.org Git - notmuch/log
notmuch
5 years agoMerge branch 'release'
David Bremner [Wed, 6 Mar 2019 12:53:26 +0000 (08:53 -0400)]
Merge branch 'release'

Changes from 0.28.3

5 years agoDeclare fast forward from 0.28.2-1 archive/debian/0.28.3-1 debian/0.28.3-1
David Bremner [Tue, 5 Mar 2019 19:39:09 +0000 (15:39 -0400)]
Declare fast forward from 0.28.2-1

[dgit --overwrite]

5 years agodebian: changelog stanza for 0.28.3-1 0.28.3
David Bremner [Tue, 5 Mar 2019 19:40:15 +0000 (15:40 -0400)]
debian: changelog stanza for 0.28.3-1

5 years agoNEWS for 0.28.3
David Bremner [Tue, 5 Mar 2019 19:36:43 +0000 (15:36 -0400)]
NEWS for 0.28.3

5 years agobump version to 0.28.3
David Bremner [Tue, 5 Mar 2019 19:30:52 +0000 (15:30 -0400)]
bump version to 0.28.3

5 years agodoc: sequentialize calls to sphinx-build
David Bremner [Sun, 3 Mar 2019 03:30:59 +0000 (23:30 -0400)]
doc: sequentialize calls to sphinx-build

In certain conditions the parallel calls to sphinx-build could
collide, yielding a crash like

Exception occurred:
  File "/usr/lib/python3/dist-packages/sphinx/environment.py", line 1261, in get_doctree
    doctree = pickle.load(f)
EOFError: Ran out of input

5 years agolib/string_map: fix return type of string_cmp
David Bremner [Sat, 2 Mar 2019 18:10:51 +0000 (14:10 -0400)]
lib/string_map: fix return type of string_cmp

I can't figure out how checking the sign of a bool ever worked. The
following program demonstrates the problem (i.e. for me it prints 1).

 #include <stdio.h>
 #include <stdbool.h>
 int main(int argc, char **argv) {
    bool x;
    x = -1;
    printf("x = %d\n", x);
 }

This seems to be mandated by the C99 standard 6.3.1.2.

5 years agolib: Add known broken test for string_map binary search.
David Bremner [Tue, 5 Mar 2019 18:56:29 +0000 (14:56 -0400)]
lib: Add known broken test for string_map binary search.

Because the string_map functions are not exported, we test via message
properties.

5 years agopython: fix get_property error when property doesn't exist
Vincent A [Sun, 27 Jan 2019 08:40:17 +0000 (09:40 +0100)]
python: fix get_property error when property doesn't exist

In Python bindings, Message.get_property fails with an AttributeError when trying to fetch a property that doesn't exist.

From d712832ba982085975c27b23bb502af82e638b39 Mon Sep 17 00:00:00 2001
From: hydrargyrum <dev@indigo.re>
Date: Sun, 6 Jan 2019 16:08:55 +0100
Subject: [PATCH] python: fix get_property error when property doesn't exist

5 years agoEmacs: bind "g" to 'notuch-refresh-this-buffer
Matt Armstrong [Sat, 16 Feb 2019 20:27:30 +0000 (12:27 -0800)]
Emacs: bind "g" to 'notuch-refresh-this-buffer

Using "g" for refresh operations is a pretty common Emacs convention,
codified by `special-mode' in simple.el.

5 years agoMerge tag '0.28.2'
David Bremner [Sun, 17 Feb 2019 21:08:12 +0000 (17:08 -0400)]
Merge tag '0.28.2'

notmuch 0.28.2 release

5 years agobump version 0.28.2 debian/0.28.2-1
David Bremner [Sun, 17 Feb 2019 11:32:59 +0000 (07:32 -0400)]
bump version

5 years agodebian: changelog for 0.28.2-1
David Bremner [Sun, 17 Feb 2019 11:31:16 +0000 (07:31 -0400)]
debian: changelog for 0.28.2-1

5 years agoNEWS for 0.28.2
David Bremner [Sun, 17 Feb 2019 11:28:15 +0000 (07:28 -0400)]
NEWS for 0.28.2

5 years agoRecord notmuch (0.28.2-1) in archive suite sid
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Record notmuch (0.28.2-1) in archive suite sid

5 years agonotmuch (0.28.2-1) unstable; urgency=medium
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
notmuch (0.28.2-1) unstable; urgency=medium

  * [notmuch-emacs] Invoke gpg from with --batch and --no-tty

[dgit import unpatched notmuch 0.28.2-1]

5 years agoImport notmuch_0.28.2.orig.tar.gz
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Import notmuch_0.28.2.orig.tar.gz

[dgit import orig notmuch_0.28.2.orig.tar.gz]

5 years agoImport notmuch_0.28.2-1.debian.tar.xz
David Bremner [Sun, 17 Feb 2019 11:30:33 +0000 (07:30 -0400)]
Import notmuch_0.28.2-1.debian.tar.xz

[dgit import tarball notmuch 0.28.2-1 notmuch_0.28.2-1.debian.tar.xz]

5 years agopython: fix threads.__str__ automethod documentation
Jani Nikula [Mon, 11 Feb 2019 18:22:37 +0000 (20:22 +0200)]
python: fix threads.__str__ automethod documentation

Indent the directive properly to attach it to Threads autoclass
documentation.

Fixes:

WARNING: don't know which module to import for autodocumenting
'__str__' (try placing a "module" or "currentmodule" directive in the
document, or giving an explicit module name)

5 years agopython: fix documentation title underline
Jani Nikula [Mon, 11 Feb 2019 18:22:36 +0000 (20:22 +0200)]
python: fix documentation title underline

Fix documentation build sphinx warning:

filesystem.rst:18: WARNING: Title underline too short.

5 years agopython: fix documentation build with python 3.7
Jani Nikula [Mon, 11 Feb 2019 18:22:35 +0000 (20:22 +0200)]
python: fix documentation build with python 3.7

The simplistic mocking in conf.py falls short on python 3.7. Just use
unittest.mock instead.

Fixes:

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/sphinx/config.py", line 368, in eval_config_file
    execfile_(filename, namespace)
  File "/usr/lib/python3/dist-packages/sphinx/util/pycompat.py", line 150, in execfile_
    exec_(code, _globals)
  File "/path/to/notmuch/bindings/python/docs/source/conf.py", line 39, in <module>
    from notmuch import __VERSION__,__AUTHOR__
  File "/path/to/notmuch/bindings/python/notmuch/__init__.py", line 54, in <module>
    from .database import Database
  File "/path/to/notmuch/bindings/python/notmuch/database.py", line 25, in <module>
    from .globals import (
  File "/path/to/notmuch/bindings/python/notmuch/globals.py", line 48, in <module>
    class NotmuchDatabaseS(Structure):
TypeError: __mro_entries__ must return a tuple

5 years agoMerge branch 'release'
David Bremner [Sun, 10 Feb 2019 13:47:47 +0000 (09:47 -0400)]
Merge branch 'release'

5 years agoemacs: Invoke gpg with --batch and --no-tty
Daniel Kahn Gillmor [Sat, 9 Feb 2019 17:34:37 +0000 (12:34 -0500)]
emacs: Invoke gpg with --batch and --no-tty

When invoking gpg as a backgrounded tool, it's important to let gpg
know that it is backgrounded, to avoid spurious prompts or other
breakage.

In particular, https://bugs.debian.org/913614 was a regression in
GnuPG which causes problems when importing keys without a terminal,
but gpg expects one.

Ensuring that notmuch-emacs always invokes gpg as a background process
should avoid some of these unnecessary failure.

Thanks to Justus Winter for finding this problem.

Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
5 years agoMerge tag '0.28.1'
David Bremner [Fri, 1 Feb 2019 12:35:20 +0000 (08:35 -0400)]
Merge tag '0.28.1'

notmuch 0.28.1 release

5 years agobump copyright year 0.28.1 archive/debian/0.28.1-1 debian/0.28.1-1
David Bremner [Fri, 1 Feb 2019 12:08:13 +0000 (08:08 -0400)]
bump copyright year

5 years agoupdate version to 0.28.1
David Bremner [Fri, 1 Feb 2019 12:06:38 +0000 (08:06 -0400)]
update version to 0.28.1

5 years agochangelog for 0.28.1-1
David Bremner [Fri, 1 Feb 2019 12:05:42 +0000 (08:05 -0400)]
changelog for 0.28.1-1

5 years agoNEWS for bash related configuration change
David Bremner [Fri, 1 Feb 2019 12:03:14 +0000 (08:03 -0400)]
NEWS for bash related configuration change

5 years agoDebian: use new variable to force bash location
David Bremner [Thu, 17 Jan 2019 02:11:32 +0000 (22:11 -0400)]
Debian: use new variable to force bash location

This should no longer be needed on the official debian autobuilders,
but it might help others with merged /usr build environments.

5 years agoconfigure: don't use special variable BASH
David Bremner [Thu, 17 Jan 2019 02:11:31 +0000 (22:11 -0400)]
configure: don't use special variable BASH

bash, in it's wisdom, sets that variable when invoked as /bin/sh, but
then doesn't act as bash, at least not to the degree we need to run
scripts.

5 years agoemacs: use ".ps" suffix for PostScript temporary files.
David Bremner [Wed, 30 Jan 2019 11:15:59 +0000 (07:15 -0400)]
emacs: use ".ps" suffix for PostScript temporary files.

Joerg Jaspert [1] reported problems with evince reading unsuffixed
temporary files in Debian.

[1]: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=920856

5 years agodoc: fix references to search.exclude_tags
Peter Wang [Sun, 27 Jan 2019 06:54:59 +0000 (17:54 +1100)]
doc: fix references to search.exclude_tags

The documentation incorrectly referred to a configuration item
"search.tag_exclude" in some places, instead of "search.exclude_tags".

5 years agoconfigure: check that the version of emacs we may have is at least 24
Tomi Ollila [Wed, 19 Dec 2018 16:59:49 +0000 (18:59 +0200)]
configure: check that the version of emacs we may have is at least 24

This also effectively drops support to Emacs version 23, which was
deprecated in version 0.23.2 (2016-11-20) and did not entirely work
any more.

5 years agodocs: Use correct call to notmuch_query_search_threads in usage example
rhn [Mon, 17 Dec 2018 17:57:48 +0000 (17:57 +0000)]
docs: Use correct call to notmuch_query_search_threads in usage example

Amended by db: simplify (subjectively) the example.

5 years agotest: Check for replies obeying lifetime guarantees
rhn [Mon, 17 Dec 2018 17:57:47 +0000 (17:57 +0000)]
test: Check for replies obeying lifetime guarantees

The test attempts to check that a message coming from a thread outlives its messages list and gets destroyed together with the thread.

5 years agolib: Explicitly state when replies will be destroyed
rhn [Mon, 17 Dec 2018 17:57:46 +0000 (17:57 +0000)]
lib: Explicitly state when replies will be destroyed

Without an explicit guarantee, it's not clear how to use the reference.

5 years agodoc: make man pages depend on emacs docstrings
David Bremner [Thu, 20 Dec 2018 08:30:11 +0000 (17:30 +0900)]
doc: make man pages depend on emacs docstrings

This is nonsensical on the face of it, but is needed (for now) because
the notmuch-emacs page is unconditionally included in index.rst.

5 years agodoc/emacs: document notmuch-cycle-notmuch-buffers
David Bremner [Thu, 14 Jun 2018 00:32:45 +0000 (21:32 -0300)]
doc/emacs: document notmuch-cycle-notmuch-buffers

For some reason I couldn't find this when I searched, so add it to the
manual.

5 years agodoc/emacs: document notmuch-poll*
David Bremner [Thu, 14 Jun 2018 00:32:44 +0000 (21:32 -0300)]
doc/emacs: document notmuch-poll*

The current "documentation" for these variables consists of only the
variable names.

5 years agodoc/emacs: document notmuch-tagging-keys
David Bremner [Thu, 14 Jun 2018 00:32:43 +0000 (21:32 -0300)]
doc/emacs: document notmuch-tagging-keys

Calling these "Global keys" is arguably a bit of a stretch, but they
do work in all notmuch modes except notmuch-hello.

5 years agodoc/emacs: document notmuch-message-headers*
David Bremner [Thu, 14 Jun 2018 00:32:42 +0000 (21:32 -0300)]
doc/emacs: document notmuch-message-headers*

More precisely, copy the docstrings into notmuch-emacs documentation pages.

5 years agodoc/emacs: add documentation for stashing 'c X' bindings
David Bremner [Thu, 14 Jun 2018 00:32:41 +0000 (21:32 -0300)]
doc/emacs: add documentation for stashing 'c X' bindings

This is the first of a series of changes requiring the extracted docstrings.

5 years agodoc/emacs: require extracted docstrings for sphinx or info manual
David Bremner [Thu, 14 Jun 2018 00:32:40 +0000 (21:32 -0300)]
doc/emacs: require extracted docstrings for sphinx or info manual

We need to use the stamp file here in order not to depend on the order
the submakefiles are included.

5 years agoemacs: build docstring (rsti) files
David Bremner [Thu, 14 Jun 2018 00:32:38 +0000 (21:32 -0300)]
emacs: build docstring (rsti) files

These are intended to included in the sphinx manual for notmuch-emacs.
The stamp file makes it easier to depend on the docstrings from other
parts of the build

5 years agoemacs: initial version of rstdoc.el
David Bremner [Thu, 14 Jun 2018 00:32:35 +0000 (21:32 -0300)]
emacs: initial version of rstdoc.el

This small library is intended to support batch extraction of Emacs
Lisp docstrings from source files. Clients will need to include (or
replace) rstdoc.rsti.

5 years agoreply: Include sender as recipient if they were the original recipient
David Edmondson [Mon, 1 Oct 2018 16:50:47 +0000 (17:50 +0100)]
reply: Include sender as recipient if they were the original recipient

When generating a reply message, if the user was the originator and
only recipient of the original message, include the user as a
recipient of the reply.

5 years agoemacs: filter tag completions by current query
William Casarin [Mon, 8 Oct 2018 11:47:52 +0000 (04:47 -0700)]
emacs: filter tag completions by current query

When filtering by tags in notmuch-search-filter-by-tag, only return tags
related to the current query.

Before, it was returning all tags. There's no reason to refine the
current query with tags that don't exist in the current result set.

Signed-off-by: William Casarin <jb55@jb55.com>
5 years agocli: notmuch show support for --include-html with --format=text
Maxime Coste [Tue, 30 Oct 2018 23:54:32 +0000 (10:54 +1100)]
cli: notmuch show support for --include-html with --format=text

5 years agocli: notmuch show support for --body=false with --format=text
Maxime Coste [Tue, 30 Oct 2018 23:54:31 +0000 (10:54 +1100)]
cli: notmuch show support for --body=false with --format=text

5 years agoemacs: escape quote in docstring
David Bremner [Thu, 14 Jun 2018 00:32:37 +0000 (21:32 -0300)]
emacs: escape quote in docstring

This prevents emacs from turning it into a fancy, non-evaluable
docstring (and also makes it easier to deal with during extraction to
sphinx).

5 years agoemacs: require notmuch-lib from notmuch-wash.el
David Bremner [Thu, 14 Jun 2018 00:32:36 +0000 (21:32 -0300)]
emacs: require notmuch-lib from notmuch-wash.el

This is needed so that notmuch-wash.el is loadable by itself; in
particular for the docstring processing.

5 years agoAvoid spurious gcc warning in debugger.c
Daniel Kahn Gillmor [Sat, 6 Oct 2018 20:34:49 +0000 (15:34 -0500)]
Avoid spurious gcc warning in debugger.c

Without this patch, gcc 8.2.0-7 complains:

debugger.c: In function ‘debugger_is_active’:
debugger.c:40:24: warning: passing argument 2 to restrict-qualified parameter aliases with argument 1 [-Wrestrict]
     if (readlink (buf, buf, sizeof (buf)) != -1 &&
                   ~~~  ^~~

This is pretty silly, but it seems simplest to just avoid passing the
same buffer to readlink as both pathname and buf.

5 years agoindex: explicitly follow GObject conventions
Daniel Kahn Gillmor [Sun, 7 Oct 2018 01:37:57 +0000 (21:37 -0400)]
index: explicitly follow GObject conventions

Use explicit labels for GTypeInfo member initializers, rather than
relying on comments and ordering.  This is both easier to read, and
harder to screw up.  This also makes it clear that we're mis-casting
GObject class initializers for gcc.

Without this patch, g++ 8.2.0-7 produces this warning:

CXX  -g -O2 lib/index.o
lib/index.cc: In function ‘GMimeFilter* notmuch_filter_discard_non_term_new(GMimeContentType*)’:
lib/index.cc:252:23: warning: cast between incompatible function types from ‘void (*)(NotmuchFilterDiscardNonTermClass*)’ {aka ‘void (*)(_NotmuchFilterDiscardNonTermClass*)’} to ‘GClassInitFunc’ {aka ‘void (*)(void*, void*)’} [-Wcast-function-type]
      (GClassInitFunc) notmuch_filter_discard_non_term_class_init,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

The definition of GClassInitFunc in
/usr/include/glib-2.0/gobject/gtype.h suggests that this function will
always be called with the class_data member of the GTypeInfo.  We set
that value to NULL in both GObject definitions in notmuch. So we mark
it as explicitly unused.

There is no functional change here, just code cleanup.

5 years agoMerge tag 'debian/0.28-2'
David Bremner [Sat, 13 Oct 2018 00:01:06 +0000 (21:01 -0300)]
Merge tag 'debian/0.28-2'

notmuch release 0.28-2 for unstable (sid) [dgit]
[dgit distro=debian]

5 years agodebian: override location of bash archive/debian/0.28-2 debian/0.28-2
David Bremner [Fri, 12 Oct 2018 23:51:45 +0000 (20:51 -0300)]
debian: override location of bash

Yes, a build chroot can have /usr/bin/bash, thanks to usrmerge, but we
can't depend on it existing in the user's system.

5 years agoversion: bump to 0.28 0.28 archive/debian/0.28-1 debian/0.28-1
David Bremner [Fri, 12 Oct 2018 23:18:14 +0000 (20:18 -0300)]
version: bump to 0.28

5 years agodebian: changelog stanza for 0.28-1
David Bremner [Fri, 12 Oct 2018 23:17:06 +0000 (20:17 -0300)]
debian: changelog stanza for 0.28-1

5 years agoNEWS: NEWS for 0.28
David Bremner [Sat, 6 Oct 2018 02:02:30 +0000 (23:02 -0300)]
NEWS: NEWS for 0.28

This is based on my subjective assessment of what is user/packager
facing and important from the output of 'git shortlog'

5 years agoemacs: Update integration with third party packages.
David Edmondson [Thu, 4 Oct 2018 09:45:45 +0000 (10:45 +0100)]
emacs: Update integration with third party packages.

`mm-inline-text-html-with-images' was removed from mm-decode.el in
2016 and replaced with `mm-html-inhibit-images'.

`gnus-select-frame-set-input-focus' was removed from gnus-util.el in
2016 and existed only for XEmacs compatibility.

5 years agotest: git should ignore message-id-parse
Daniel Kahn Gillmor [Sun, 7 Oct 2018 04:09:20 +0000 (00:09 -0400)]
test: git should ignore message-id-parse

b31e44c678bf3bfe81bcc5f159e627551f12700f introduced message-id-parse
as a new binary created by the test suite.  It shows up as something
additional to git, but git ought to know to ignore it.

5 years agodebian: changelog for 0.28~rc0-1 0.28_rc0 debian/0.28_rc0-1
David Bremner [Wed, 3 Oct 2018 23:24:57 +0000 (20:24 -0300)]
debian: changelog for 0.28~rc0-1

5 years agoNEWS: start NEWS for 0.28
David Bremner [Wed, 3 Oct 2018 23:19:08 +0000 (20:19 -0300)]
NEWS: start NEWS for 0.28

Just a stub for now.

5 years agoversion: bump to 0.28~rc0
David Bremner [Wed, 3 Oct 2018 23:17:46 +0000 (20:17 -0300)]
version: bump to 0.28~rc0

5 years agodebian: update zsh completion installation
David Bremner [Tue, 18 Sep 2018 11:19:24 +0000 (13:19 +0200)]
debian: update zsh completion installation

This ${prefix}/share/vendor-completion convention seems to be debian
specific, so leave the global default alone for now.

5 years agocompletion: more complete completion for zsh.
Vincent Breitmoser [Tue, 18 Sep 2018 11:19:23 +0000 (13:19 +0200)]
completion: more complete completion for zsh.

This adds completion files for zsh that cover most of notmuch's cli.

The files in completion/zsh are formatted so that they can be found by
zsh's completion system if put $fpath. They are also registered to the
notmuch-* pattern, so they can be called externally using _dispatch.

Update installation recipe and drop debian/notmuch.examples to avoid
breakage. This means zsh completion is not installed for debian, to be
fixed in a future commit.

Amended by db: use regexp searching for address completion. This seems
to be fast enough to work without a cache.

5 years agoemacs: Call `notmuch-mua-send-hook' hooks when sending a message
David Edmondson [Tue, 25 Sep 2018 15:09:10 +0000 (16:09 +0100)]
emacs: Call `notmuch-mua-send-hook' hooks when sending a message

Previously any hook functions attached to `notmuch-mua-send-hook' were
ignored.

5 years agotest: Check that `notmuch-mua-send-hook' is called on sending a message
David Edmondson [Tue, 25 Sep 2018 15:09:09 +0000 (16:09 +0100)]
test: Check that `notmuch-mua-send-hook' is called on sending a message

5 years agopython: fix unchecked None access in get_property
Vincent Breitmoser [Mon, 17 Sep 2018 12:49:32 +0000 (14:49 +0200)]
python: fix unchecked None access in get_property

5 years agodebian: update notmuch-mutt packaging to use install target
David Bremner [Sun, 16 Sep 2018 17:08:09 +0000 (14:08 -0300)]
debian: update notmuch-mutt packaging to use install target

5 years agodebian: bump compat level to 11
David Bremner [Sun, 16 Sep 2018 17:08:08 +0000 (14:08 -0300)]
debian: bump compat level to 11

The immediate motivation is to have dh_installman look in debian/tmp

5 years agocontrib/notmuch-mutt: add install target
David Bremner [Sun, 16 Sep 2018 17:08:07 +0000 (14:08 -0300)]
contrib/notmuch-mutt: add install target

The main goal here is to be able to install the notmuch-mutt script
with an absolute shebang. I have tried to make the notmuch-mutt
Makefile use configure information from notmuch if available, but make
suitable guesses if not.

5 years agoconfigure: absolute path of perl
David Bremner [Sun, 16 Sep 2018 17:08:06 +0000 (14:08 -0300)]
configure: absolute path of perl

This can be used to set shebang lines during install.

5 years agobuild: install notmuch-emacs-mua with absolute shebang
David Bremner [Sun, 16 Sep 2018 17:08:05 +0000 (14:08 -0300)]
build: install notmuch-emacs-mua with absolute shebang

Follow distro-centric rules to reduce the chance of surprising
behaviour due to PATH changes

5 years agoconfigure: absolute path of bash
David Bremner [Sun, 16 Sep 2018 17:08:04 +0000 (14:08 -0300)]
configure: absolute path of bash

This can be used to set shebang lines during install.

5 years agotest: make regexp test conditional on field processors
David Bremner [Mon, 10 Sep 2018 01:36:17 +0000 (22:36 -0300)]
test: make regexp test conditional on field processors

Normally we'd mark it broken, but perversely missing regexp support
actually makes the test pass.

5 years agotest: mark thread subqueries broken without field processors
David Bremner [Mon, 10 Sep 2018 01:36:16 +0000 (22:36 -0300)]
test: mark thread subqueries broken without field processors

Currently these tests just fail when notmuch is built against Xapian
1.2.x

5 years agodebian: add tar-ignore=.git
David Bremner [Fri, 14 Sep 2018 11:03:30 +0000 (08:03 -0300)]
debian: add tar-ignore=.git

Unfortunately 514fb397c9 somewhat messed up the "debian-snapshot"
target, by including .git in the generated tarball.

5 years agoMerge tag 'debian/0.27-3'
David Bremner [Sun, 9 Sep 2018 16:46:04 +0000 (13:46 -0300)]
Merge tag 'debian/0.27-3'

notmuch release 0.27-3 for unstable (sid) [dgit]
[dgit distro=debian]

5 years agodebian: drop argument-less tar-ignore archive/debian/0.27-3 debian/0.27-3
David Bremner [Sun, 9 Sep 2018 16:06:00 +0000 (13:06 -0300)]
debian: drop argument-less tar-ignore

This hangs up dgit. It's probably not useful for users of the source
package to have debian/.gitignore, but it should not hurt.

5 years agotest: Absolute and relative directory paths.
David Edmondson [Sat, 8 Sep 2018 11:49:41 +0000 (12:49 +0100)]
test: Absolute and relative directory paths.

5 years agonotmuch: Database paths without a leading / are relative to $HOME
David Edmondson [Sat, 8 Sep 2018 11:49:40 +0000 (12:49 +0100)]
notmuch: Database paths without a leading / are relative to $HOME

If the database path specified in the configuration file does *not*
start with a /, presume that it is relative to $HOME and modify the
path used to open the database accordingly.

5 years agoDeclare fast forward from 0.27-2
David Bremner [Sat, 8 Sep 2018 21:20:10 +0000 (18:20 -0300)]
Declare fast forward from 0.27-2

[dgit --overwrite]

5 years agodebian: add unversioned emacs, drop emacs23
David Bremner [Sat, 8 Sep 2018 19:15:10 +0000 (16:15 -0300)]
debian: add unversioned emacs, drop emacs23

In current Debian sid / testing, emacs25 is a transitional package,
and emacs-gtk, emacs-lucid, and emacs-nox are the real packages.
Emacs 23 is not available in emacs after oldoldstable.

5 years agodebian: update Vcs-Git URL
David Bremner [Sat, 8 Sep 2018 19:07:05 +0000 (16:07 -0300)]
debian: update Vcs-Git URL

We should probably not git://, and it needs a branch to not confuse
e.g. vcswatch.

5 years agolib: change parent strategy to use In-Reply-To if it looks sane
David Bremner [Thu, 30 Aug 2018 11:29:15 +0000 (08:29 -0300)]
lib: change parent strategy to use In-Reply-To if it looks sane

As reported by Sean Whitton, there are mailers (in particular the
Debian Bug Tracking System) that have sensible In-Reply-To headers,
but un-useful-for-notmuch References (in particular with the BTS, the
oldest reference is last). I looked at a sample of about 200K
messages, and only about 0.5% these had something other than a single
message-id in In-Reply-To. On this basis, if we see a single
message-id in In-Reply-To, consider that as authoritative.

5 years agolib: add _notmuch_message_id_parse_strict
David Bremner [Thu, 30 Aug 2018 11:29:14 +0000 (08:29 -0300)]
lib: add _notmuch_message_id_parse_strict

The idea is that if a message-id parses with this function, the MUA
generating it was probably sane, and in particular it's probably safe
to use the result as a parent from In-Reply-to.

5 years agoutil/string-util: export skip_space
David Bremner [Thu, 30 Aug 2018 11:29:13 +0000 (08:29 -0300)]
util/string-util: export skip_space

It's only few lines, but we already define the function, so make it
usable elsewhere

5 years agotest/thread-replies: mangle In-Reply-To's
David Bremner [Thu, 30 Aug 2018 11:29:12 +0000 (08:29 -0300)]
test/thread-replies: mangle In-Reply-To's

In a future commit, we will start trusting In-Reply-To's when they
look sane (i.e. a single message-id). Modify these tests so they will
keep passing (i.e. keep choosing References) when that happens.

5 years agotest: add known broken test for good In-Reply-To / bad References
David Bremner [Thu, 30 Aug 2018 11:29:11 +0000 (08:29 -0300)]
test: add known broken test for good In-Reply-To / bad References

The current scheme of choosing the replyto (i.e. the default parent
for threading purposes) does not work well for mailers that put
the oldest Reference last.

5 years agolib/thread: change _resolve_thread_relationships to use depths
David Bremner [Thu, 30 Aug 2018 11:29:10 +0000 (08:29 -0300)]
lib/thread: change _resolve_thread_relationships to use depths

We (finally) implement the XXX comment. It requires a bit of care not
to reparent all of the possible toplevel messages.

_notmuch_messages_has_next is not ready to be a public function yet,
since it punts on the mset case. We know in the one case it is called,
the notmuch_messages_t is just a regular list / iterator.

5 years agolib/thread: rewrite _parent_or_toplevel to use depths
David Bremner [Thu, 30 Aug 2018 11:29:09 +0000 (08:29 -0300)]
lib/thread: rewrite _parent_or_toplevel to use depths

This is part 1/2 of changing the reparenting of alleged toplevel
messages to use a "deep" reference rather than just the first one
found.

5 years agolib: calculate message depth in thread
David Bremner [Thu, 30 Aug 2018 11:29:08 +0000 (08:29 -0300)]
lib: calculate message depth in thread

This will be used in reparenting messages without useful in-reply-to,
but with useful references

5 years agolib/thread: initial use of references as for fallback parenting
David Bremner [Thu, 30 Aug 2018 11:29:07 +0000 (08:29 -0300)]
lib/thread: initial use of references as for fallback parenting

This is mainly to lay out the structure of the final code. The problem
isn't really solved yet, although some very simple cases are
better (hence the fixed test). We need two passes through the messages
because we need to be careful not to re-parent too many messages and
end up without any toplevel messages.

5 years agouse EMPTY_STRING in _parent_via_in_reply_to
David Bremner [Mon, 3 Sep 2018 15:26:10 +0000 (12:26 -0300)]
use EMPTY_STRING in _parent_via_in_reply_to

This is a review suggestion [1] of Tomi. I decided not to squash it
so that the code movement remains clear.

[1]: id:m2pnxxgf5q.fsf@guru.guru-group.fi

5 years agolib/thread: refactor in_reply_to test
David Bremner [Thu, 30 Aug 2018 11:29:06 +0000 (08:29 -0300)]
lib/thread: refactor in_reply_to test

This is not a complete win in code-size, but it makes the code (which
is about to get more complicated) easier to follow.

5 years agolib: add _notmuch_message_list_empty
David Bremner [Mon, 3 Sep 2018 21:02:25 +0000 (18:02 -0300)]
lib: add _notmuch_message_list_empty

There is no public notmuch_message_list_t public interface, so to this
is added to the private API. We use it immediately in thread.cc;
future commits will use it further.

5 years agolib/thread: add macro for debug printing of threading
David Bremner [Mon, 3 Sep 2018 14:00:26 +0000 (11:00 -0300)]
lib/thread: add macro for debug printing of threading

This is analogous to DEBUG_DATABASE_SANITY, and is intended to help
debugging and to help users submit bug reports.

5 years agolib: read reference terms into message struct.
David Bremner [Thu, 30 Aug 2018 11:29:05 +0000 (08:29 -0300)]
lib: read reference terms into message struct.

The plan is to use these in resolving threads.

5 years agolib/thread: sort sibling messages by date
David Bremner [Thu, 30 Aug 2018 11:29:04 +0000 (08:29 -0300)]
lib/thread: sort sibling messages by date

For non-root messages, this should not should anything currently, as
the messages are already added in date order. In the future we will
add some non-root messages in a second pass out of order and the
sorting will be useful. It does fix the order of multiple
root-messages (although it is overkill for that).

5 years agotest: add known broken tests for "ghost roots"
David Bremner [Thu, 30 Aug 2018 11:29:03 +0000 (08:29 -0300)]
test: add known broken tests for "ghost roots"

This documents the bug discussed at

     id:87efgmmysi.fsf@len.workgroup

The underlying issue is that the reply to a ghost (missing) message is
falsely classified as a root message in _resolve_thread_relationships.

There are two pairs of tests; in each case the the first test is
simpler / more robust, but also easier to fool.