From c33702a2d65eb6cf4030dd516599f1545df86ec5 Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sat, 22 Jul 2023 09:34:00 -0300 Subject: [PATCH 01/16] new performance test results, with tweak to file deletion --- perf-test-results/2023-07-22-minkowski.mdwn | 89 +++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 perf-test-results/2023-07-22-minkowski.mdwn diff --git a/perf-test-results/2023-07-22-minkowski.mdwn b/perf-test-results/2023-07-22-minkowski.mdwn new file mode 100644 index 0000000..9989004 --- /dev/null +++ b/perf-test-results/2023-07-22-minkowski.mdwn @@ -0,0 +1,89 @@ +Here are the results of "make time test" on a "12th Gen Intel(R) +Core(TM) i7-12700" with NVME SSD. The file system is ext4. System was +not completely idle, but no heavy computation or I/O was run at the +same time. + +Notmuch is 0.37+78~gb6f144ab + +
+
+T00-new.sh: Testing notmuch new                         [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  Initial notmuch new   313.59  271.42  18.66   324600  7361464/19092656
+  notmuch new #2        0.01    0.00    0.00    9600    0/160
+  notmuch new #3        0.00    0.00    0.00    9920    0/8
+  notmuch new #4        0.00    0.00    0.00    9920    0/8
+  notmuch new #5        0.01    0.01    0.00    9760    0/8
+  notmuch new #6        0.01    0.00    0.00    9920    0/8
+  new (52374 mv)        227.44  160.81  65.97   240028  0/5864136
+  new (52374 mv back)   215.89  151.02  64.13   240776  0/6048104
+  new (52374 rm)        42.35   34.67   6.79    396680  0/8304096
+  new (52374 restore)   90.49   81.30   8.14    377472  0/8499120
+  new (52374 cp)        135.97  96.72   38.73   210384  0/4704208
+
+T01-dump-restore.sh: Testing dump and restore           [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  load nmbug tags       2.68    1.25    1.06    12780   600/32344
+  dump *                2.74    2.62    0.12    26528   0/27928
+  restore *             2.99    2.75    0.23    9628    0/0
+
+T02-tag.sh: Testing tagging                             [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  tag * +new_tag        158.89  95.36   62.71   111184  0/1530176
+  tag * +existing_tag   0.00    0.00    0.00    9440    0/0
+  tag * -existing_tag   117.41  66.16   50.94   37016   0/1456544
+  tag * -missing_tag    0.00    0.00    0.00    9760    0/0
+
+T03-reindex.sh: Testing reindexing                      [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  reindex *             303.88  294.12  9.23    481720  0/12625544
+  reindex *             300.98  291.86  8.84    480964  0/12393528
+  reindex *             300.93  292.11  8.43    480724  0/12655848
+  reindex (52374 mv)    265.73  256.50  8.97    453768  0/12677400
+  reindex (52374 mv back)224.48 217.32  6.73    447548  0/10269912
+  reindex (52374 rm)    225.40  218.02  7.13    448436  0/10632312
+  reindex (52374 restore)226.12 218.84  6.98    448832  8/10340920
+  reindex (52374 cp)    224.17  217.22  6.68    447324  0/10259528
+T04-thread-subquery.sh: Testing thread subqueries       [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  search thread:{} ...  1.50    1.43    0.06    28260   0/144
+  search thread:{} ...  1.51    1.43    0.08    29008   0/144
+  search thread:{} ...  1.49    1.40    0.08    28840   0/144
+
+T05-ruby.sh: Testing ruby bindings                      [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  print all messages    324.61  302.98  21.43   93476   40/1912640
+
+T06-emacs.sh: Testing emacs operations                  [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+                        Wall(s) GCs     GC time(s)
+tag messages            1.54    0.60    0.01
+show warmup             1.92    12.40   0.23
+show thread #1          2.04    3.60    0.22
+depth bound #1          0.34    0.40    0.04
+height bound #1         0.36    0.60    0.06
+size bound #1           0.34    0.40    0.05
+show thread #2          0.88    0.80    0.09
+depth bound #2          0.37    0.40    0.06
+height bound #2         0.43    0.40    0.07
+size bound #2           0.31    0.20    0.03
+show thread #3          1.33    0.80    0.12
+depth bound #3          0.50    0.20    0.03
+height bound #3         0.48    0.00    0.00
+size bound #3           0.52    0.20    0.04
+show thread #4          9.65    1.60    0.31
+depth bound #4          0.89    0.40    0.10
+height bound #4         0.75    0.20    0.05
+size bound #4           0.76    0.40    0.11
+
+T07-git.sh: Testing notmuch-git                         [0.5 large]
+                        Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  init                  0.05    0.04    0.00    16000   0/264
+  commit --force        14.94   16.44   3.25    248356  40/854568
+  commit                2.72    0.89    1.81    135160  0/8
+  commit                2.62    1.07    1.54    135164  0/8
+  checkout              2.65    0.90    1.75    135160  0/8
+  tag -inbox            159.01  95.46   63.12   110324  0/1537824
+  checkout --force      169.48  103.43  71.10   210860  0/5498304
+
+ -- 2.43.0 From 666576500647080b019632dd1d4a79512bc231da Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Wed, 13 Sep 2023 15:27:17 +0300 Subject: [PATCH 02/16] News for release 0.38 --- news/release-0.38.mdwn | 73 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100644 news/release-0.38.mdwn diff --git a/news/release-0.38.mdwn b/news/release-0.38.mdwn new file mode 100644 index 0000000..ab84a27 --- /dev/null +++ b/news/release-0.38.mdwn @@ -0,0 +1,73 @@ +[[!meta date="2023-09-12"]] + +Notmuch 0.38 (2023-09-12) +========================= + +General +------- + +Support relative lastmod queries (see notmuch-sexp-queries(7) and +notmuch-search-terms(7) for details). + +Support indexing of designated attachments as text (see +notmuch-config(1) for details). + +CLI +--- + +Add options --offset and --limit to notmuch-show(1). + +Emacs +----- + +New commands notmuch-search-edit-search and notmuch-tree-edit-search. + +Introduce notmuch-tree-outline-mode. + +Some compatibility fixes for Emacs 29. At least one issue (hiding +images) remains in 0.38. + +Support completion when piping to external command. + +Fix regression in updating tag display introduced by 0.37. + +Library +------- + +Fix bug creating database when database.path is not set. + +Incremental performance improvements for message deletion. + +Catch Xapian exceptions when deleting messages. + +Sync removed message properties to the database. + +Replace use of thread-unsafe Query::MatchAll in the infix query +parser. + +Notmuch-Mutt +------------ + +Be more careful when clearing the results directory. + +Ruby +---- + +Use `database_open_with_config`, and provide compatible path search +semantics. + +### Bugfix for query.get_sort + +Test Suite +---------- + +Support testing installed version of notmuch. + +Adapt to some breaking changes in glib handling of init files. + +Replace OpenPGP key used in test suite. + +Performance Tests +----------------- + +Update signatures for performance test corpus. -- 2.43.0 From 7b185873e25722b59e3c03591b239564ca2543f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jakub=C2=A0Jindra?= Date: Thu, 14 Sep 2023 09:53:15 +0200 Subject: [PATCH 03/16] fix table in manpages/notmuch-sexp-queries-7 --- manpages/notmuch-sexp-queries-7.mdwn | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/manpages/notmuch-sexp-queries-7.mdwn b/manpages/notmuch-sexp-queries-7.mdwn index d375a86..299fc74 100644 --- a/manpages/notmuch-sexp-queries-7.mdwn +++ b/manpages/notmuch-sexp-queries-7.mdwn @@ -139,8 +139,7 @@ │tag │ and │ term │ yes │ yes │ yes │ ├───────────┼─────────┼────────┼────────┼──────────┼───────┤ │thread │ or │ term │ yes │ yes │ yes │ - └───────────┴─────────┴────────┴────────┴──────────┴───────┘ - + ├───────────┼─────────┼────────┼────────┼──────────┼───────┤ │to │ and │ phrase │ yes │ yes │ no │ └───────────┴─────────┴────────┴────────┴──────────┴───────┘ -- 2.43.0 From fdc6261ec04c5e09ac63cff144e59d0041896f45 Mon Sep 17 00:00:00 2001 From: Dick Marinus Date: Fri, 29 Sep 2023 21:14:26 +0200 Subject: [PATCH 04/16] Postfix and Dovecot tips --- postfixdovecottips.mdwn | 48 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100644 postfixdovecottips.mdwn diff --git a/postfixdovecottips.mdwn b/postfixdovecottips.mdwn new file mode 100644 index 0000000..a10d4e8 --- /dev/null +++ b/postfixdovecottips.mdwn @@ -0,0 +1,48 @@ +[[!img notmuch-logo.png alt="Notmuch logo" class="left"]] + +Postfix can be used for delivering mail and Dovecot for making your maildir +available using IMAP. + +Dovecot Pigeonhole Sieve can be used for filtering incoming mail and index it +using notmuch. + +[[!toc levels=2]] + +# Configuration + +## Configure Postfix to use Dovecot Sieve + +Set `mailbox_command` to dovecot deliver: + + postconf -e 'mailbox_command=/usr/libexec/dovecot/deliver -f "$SENDER" -a "$RECIPIENT"' + +## Configure Dovecot Sieve to allow running notmuch + +* Add `mail_plugins = sieve` to `/etc/dovecot/conf.d/15-lda.conf` to enable Sieve +* Add `sieve_plugins = sieve_extprograms` to `/etc/dovecot/conf.d/90-sieve.conf` to allow running external programs +* Add `sieve_extensions = +vnd.dovecot.pipe` to `/etc/dovecot/conf.d/90-sieve.conf` to allow pipe to external programs +* Add `sieve_pipe_bin_dir = /usr/libexec/dovecot/sieve-pipe` to `/etc/dovecot/conf.d/90-sieve-extprograms.conf` to configure directory with allowed programs +* Add `mail_location = maildir:~/Maildir` to `/etc/dovecot/conf.d/10-mail.conf` to use Maildir +* Run `mkdir /usr/libexec/dovecot/sieve-pipe` to create the directory with allowed programs +* Run `ln -s /usr/bin/notmuch /usr/libexec/dovecot/sieve-pipe/notmuch` to add a link to notmuch to the directory with allowed programs + +## Example Sieve configuration + +Create `~/.dovecot.sieve` with the following contents: + + require ["fileinto", "vnd.dovecot.pipe"]; + if header :contains "X-Spam-Flag" "YES" { + pipe "notmuch" [ "insert", "--folder=.spam", "--create-folder", "+spam" ]; + } elsif anyof (header :matches "From" "notmuch@notmuchmail.org") { + pipe "notmuch" [ "insert", "--folder=.mailinglist", "--create-folder", "+mailinglist" ]; + } else { + pipe "notmuch" [ "insert", "+notmuch-insert", "+inbox" ]; + } + +# Notes + +## Postfix file size limit + +Postfix sets a `file size` ulimit before executing the `mailbox_command`. This +also affects the notmuch index. Make sure `mailbox_size_limit` is at least the +size of your largest notmuch index files. -- 2.43.0 From 6201364f20f45f20f76c6d1ae0497bab0cf0d539 Mon Sep 17 00:00:00 2001 From: Dick Marinus Date: Fri, 29 Sep 2023 21:17:02 +0200 Subject: [PATCH 05/16] Update homepage --- index.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.mdwn b/index.mdwn index dd06815..e1cbcec 100644 --- a/index.mdwn +++ b/index.mdwn @@ -82,7 +82,7 @@ on Notmuch. * [[Searching]] * [[Excluding and deleting messages|excluding]] * [[Initial tagging|Initial_Tagging]] - * Tips for using Notmuch with [[Emacs|emacstips]], [[Vim|vimtips]], and [[Mutt|mutttips]] + * Tips for using Notmuch with [[Emacs|emacstips]], [[Vim|vimtips]], [[Postfix and Dovecot|postfixdovecottips]]and [[Mutt|mutttips]] * [[Emacs remote usage|remoteusage]] * [[Performance|performance]] * [[References|references]] -- 2.43.0 From 279cb85fce10950182ae357d45830a0c5b8ae8dc Mon Sep 17 00:00:00 2001 From: Dick Marinus Date: Fri, 29 Sep 2023 21:17:34 +0200 Subject: [PATCH 06/16] fix formatting --- index.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.mdwn b/index.mdwn index e1cbcec..798776e 100644 --- a/index.mdwn +++ b/index.mdwn @@ -82,7 +82,7 @@ on Notmuch. * [[Searching]] * [[Excluding and deleting messages|excluding]] * [[Initial tagging|Initial_Tagging]] - * Tips for using Notmuch with [[Emacs|emacstips]], [[Vim|vimtips]], [[Postfix and Dovecot|postfixdovecottips]]and [[Mutt|mutttips]] + * Tips for using Notmuch with [[Emacs|emacstips]], [[Vim|vimtips]], [[Postfix & Dovecot|postfixdovecottips]] and [[Mutt|mutttips]] * [[Emacs remote usage|remoteusage]] * [[Performance|performance]] * [[References|references]] -- 2.43.0 From f00080814876bd85a52b6b6bce4350c9d24c192b Mon Sep 17 00:00:00 2001 From: =?utf8?q?Christoph=20G=C3=B6ttschkes?= Date: Sun, 8 Oct 2023 13:10:34 +0200 Subject: [PATCH 07/16] Adds hint to notmuch-user-agent to the FCC/BCC emacstips. --- emacstips.mdwn | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/emacstips.mdwn b/emacstips.mdwn index 4eb8e80..8d04395 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -228,6 +228,11 @@ address. Please see the documentation for the variable `notmuch-fcc-dirs` in the customization window for how to arrange this. +The `notmuch-fcc-dirs` variable is only taken into account when mails +are composed using `notmuch-mua-mail`. If you want to use the notmuch +mail user agent by default, the `mail-user-agent` needs to be +customized to use the `notmuch-user-agent`. + ## How to customize `notmuch-saved-searches` When starting notmuch, a list of saved searches and message counts is -- 2.43.0 From e4ff3c5b0eb7f31492273bbfe55a0fbb4f2b3196 Mon Sep 17 00:00:00 2001 From: Paul Wise Date: Mon, 16 Oct 2023 11:38:20 +0800 Subject: [PATCH 08/16] Update link to notmuch-web The bitbucket repo disappeared but a copy is on GitHub. --- frontends.mdwn | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/frontends.mdwn b/frontends.mdwn index 0d8a24a..b7ecf56 100644 --- a/frontends.mdwn +++ b/frontends.mdwn @@ -29,7 +29,7 @@ * ner, a curses frontend written in C++ ([github mirror](https://github.com/pioto/ner)). * [mutt-kz](https://github.com/karelzak/mutt-kz), a fork of [mutt](http://www.mutt.org/) with Notmuch as a backend (actually linked against lib notmuch). Deprecated in favour of neomutt. * [jaro-mail](http://www.dyne.org/software/jaro-mail). Command line client emphasizing privacy. ([github mirror](https://github.com/dyne/JaroMail)) -* [notmuch-web](https://bitbucket.org/wuzzeb/notmuch-web) A web front end written in [Haskell](http://hackage.haskell.org/package/notmuch-web). Not active upstream since 2014. +* [notmuch-web](https://github.com/afcady/notmuch-web) A web front end written in [Haskell](http://hackage.haskell.org/package/notmuch-web). Not active upstream since 2014. ## Tools based on Notmuch -- 2.43.0 From e839d326595281884e5f1359e3a72d1b657e8989 Mon Sep 17 00:00:00 2001 From: Paul Wise Date: Mon, 16 Oct 2023 11:40:48 +0800 Subject: [PATCH 09/16] Add link to the notmuch-email-client web browser extension Suggested-by: madduck on #notmuch --- frontends.mdwn | 1 + 1 file changed, 1 insertion(+) diff --git a/frontends.mdwn b/frontends.mdwn index b7ecf56..5a9cef3 100644 --- a/frontends.mdwn +++ b/frontends.mdwn @@ -23,6 +23,7 @@ * [noservice](https://gitlab.com/noservice/noservice). Web interface, written in Clojure. * [notmuchfs](https://github.com/tsto/notmuchfs), a virtual maildir file system for Notmuch queries. * [epistula](https://github.com/emdete/epistula), a terminal MUA based on gpgme and gmime written in go and with tcell (alpha status). +* [notmuch-email-client](https://github.com/inbasic/notmuch-email-client/), an [extension](https://add0n.com/notmuch-email-client.html) for using notmuch in web browsers ## Historical -- 2.43.0 From 493f6d76e5f5010cce0b00eb1877de705db19a12 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Thu, 19 Oct 2023 11:54:07 +0200 Subject: [PATCH 10/16] bindings: update for the new Python bindings --- bindings.mdwn | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/bindings.mdwn b/bindings.mdwn index 8871028..9288c0a 100644 --- a/bindings.mdwn +++ b/bindings.mdwn @@ -19,20 +19,19 @@ The Notmuch command-line interface is based on the C library. Notmuch includes Python bindings to the Notmuch shared library. Please refer to the nice and extensive [Notmuch Python API -documentation](http://notmuch.readthedocs.org/projects/notmuch-python/). +documentation](https://notmuchmail.org/doc/latest/python-bindings.html). The bindings are very simple to use. As an example, given you have the Python bindings installed (or simply set your PYTHONPATH environment variable to point to the .../bindings/python directory), this snippet will produce a list of mails matching the given expression: - >>> import notmuch - >>> db = notmuch.Database() - >>> query = db.create_query('tag:inbox AND NOT tag:killed') - >>> list(query.search_messages()) # doctest:+ELLIPSIS + >>> from notmuch2 import Database + >>> db = Database() + >>> messages = list(db.messages('tag:inbox AND NOT tag:killed')) [...] -[The source](https://git.notmuchmail.org/git/notmuch/tree/HEAD:/bindings/python/) +[The source](https://git.notmuchmail.org/git/notmuch/tree/HEAD:/bindings/python-cffi/) ## Ruby -- 2.43.0 From 929218d3dded40a49ffd2ebe733920bad6d32fee Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Fri, 27 Oct 2023 09:54:39 +0300 Subject: [PATCH 11/16] News for release 0.38.1 --- news/release-0.38.1.mdwn | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) create mode 100644 news/release-0.38.1.mdwn diff --git a/news/release-0.38.1.mdwn b/news/release-0.38.1.mdwn new file mode 100644 index 0000000..a14d467 --- /dev/null +++ b/news/release-0.38.1.mdwn @@ -0,0 +1,19 @@ +[[!meta date="2023-10-26"]] + +Notmuch 0.38.1 (2023-10-26) +=========================== + +CLI +--- + +Report parse errors in config files. + +Emacs +----- + +Fix image toggling for Emacs >= 29.1. + +notmuch-mutt +------------ + +Fix syntax error in script. -- 2.43.0 From eb4b6e7352077be8bb5ab1223218a38925723561 Mon Sep 17 00:00:00 2001 From: David Miguel Susano Pinto Date: Tue, 31 Oct 2023 21:48:29 +0000 Subject: [PATCH 12/16] emacstips.mdwn: attachment check is builtin notmuch since versino 0.29 --- emacstips.mdwn | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/emacstips.mdwn b/emacstips.mdwn index 8d04395..19c354a 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -919,12 +919,22 @@ Very often we forget to actually attach the file when we send an email that's supposed to have an attachment. Did this never happen to you? If not, then it will. -There is a hook out there that checks the content of the email for -keywords and warns you before the email is sent out if there's no -attachment. This is currently work in progress, but you can already -add the hook to your `~/.emacs.d/notmuch-config.el` file to test -it. Details available (and feedback welcome) in the [relevant -discussion](https://notmuchmail.org/pipermail/notmuch/2018/026414.html). +Since version 0.29 Notmuch includes the `notmuch-mua-attachment-check` +function. This function checks whether a message references an +attachment and if it finds none it asks for confirmation before +sending the message. The function is meant to be added to the +`message-send-hook`, like so: + + (add-hook 'message-send-hook 'notmuch-mua-attachment-check) + +The "customize"able variable `notmuch-mua-attachment-regexp` controls +how reference to an attachment are identified. By default, it +identifies English and French terms. For example, the following makes +it recognise English and Portuguese terms: + + (setq-default notmuch-mua-attachment-regexp + "\\b\\(attach\\|attachment\\|attached\\|anexo\\|anexado\\)\\b") + ## Applying patches to git repositories -- 2.43.0 From d8d37483ddfdf589c309acd0b3e1c897f9749307 Mon Sep 17 00:00:00 2001 From: David Miguel Susano Pinto Date: Mon, 6 Nov 2023 17:03:51 +0000 Subject: [PATCH 13/16] emacstips: add code to check for empty subject --- emacstips.mdwn | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/emacstips.mdwn b/emacstips.mdwn index 19c354a..288690c 100644 --- a/emacstips.mdwn +++ b/emacstips.mdwn @@ -936,6 +936,21 @@ it recognise English and Portuguese terms: "\\b\\(attach\\|attachment\\|attached\\|anexo\\|anexado\\)\\b") +## Avoid forgetting the subject + +It happens that we forget to enter the Subject line, particularly when +we leave that to the end. It's easy to write a function that checks +whether the Subject is empty, and add it to `message-send-hook` to get +confirmation: + + (defun my-notmuch-mua-empty-subject-check () + "Request confirmation before sending a message with empty subject" + (when (and (null (message-field-value "Subject")) + (not (y-or-n-p "Subject is empty, send anyway? "))) + (error "Sending message cancelled: empty subject."))) + (add-hook 'message-send-hook 'my-notmuch-mua-empty-subject-check) + + ## Applying patches to git repositories The `notmuch-extract-thread-patches` and -- 2.43.0 From f0fdf426ad21cc1f75b1578a6c59b2d8f17f9429 Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Fri, 1 Dec 2023 14:21:39 +0200 Subject: [PATCH 14/16] News for release 0.38.2 --- news/release-0.38.2.mdwn | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 news/release-0.38.2.mdwn diff --git a/news/release-0.38.2.mdwn b/news/release-0.38.2.mdwn new file mode 100644 index 0000000..a218fdb --- /dev/null +++ b/news/release-0.38.2.mdwn @@ -0,0 +1,16 @@ +[[!meta date="2023-12-01"]] + +Notmuch 0.38.2 (2023-12-01) +=========================== + +Library +------- + +Make sorting of string maps lexicographic on (key,value) pairs. This +avoids some test failures due to variation in message property output +order. + +Emacs +----- + +Avoid extra separators after the last address in `notmuch-emacs-mua`. -- 2.43.0 From 03873d18d357772cefd7ff13deec94a7dfe556ff Mon Sep 17 00:00:00 2001 From: David Bremner Date: Sun, 17 Dec 2023 07:24:34 -0800 Subject: [PATCH 15/16] comparing ext4 and btrfs --- .../2023-12-16-motzkin-btrfs.mdwn | 91 +++++++++++++++++++ .../2023-12-17-motzkin-ext4.mdwn | 87 ++++++++++++++++++ 2 files changed, 178 insertions(+) create mode 100644 perf-test-results/2023-12-16-motzkin-btrfs.mdwn create mode 100644 perf-test-results/2023-12-17-motzkin-ext4.mdwn diff --git a/perf-test-results/2023-12-16-motzkin-btrfs.mdwn b/perf-test-results/2023-12-16-motzkin-btrfs.mdwn new file mode 100644 index 0000000..7ac138d --- /dev/null +++ b/perf-test-results/2023-12-16-motzkin-btrfs.mdwn @@ -0,0 +1,91 @@ +Here are the results of "make time-test" on a +"13th Gen Intel(R) Core(TM) i7-1365U". File system is btrfs on lvm on luks. + +notmuch is 0.38.1-15-gbddeb201 + +
+T00-new.sh: Testing notmuch new                         [0.5 large]
+Unpacking manifests
+Unpacking corpus
+....................................................................
+creating link farm
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  Initial notmuch new   313.22  289.82  20.82   325828  152/26600144
+  notmuch new #2        0.03    0.01    0.02    10272   0/8
+  notmuch new #3        0.03    0.00    0.03    10400   0/8
+  notmuch new #4        0.03    0.01    0.02    10396   0/8
+  notmuch new #5        0.03    0.00    0.03    10472   0/8
+  notmuch new #6        0.03    0.00    0.03    10436   0/8
+  new (52374 mv)        271.65  185.97  82.58   237540  0/18738520
+  new (52374 mv back)   274.10  185.69  84.51   238084  0/18789240
+  new (52374 rm)        52.22   40.45   8.39    394820  0/12076624
+  new (52374 restore)   117.57  98.02   11.64   387288  0/21043744
+  new (52374 cp)        167.01  112.94  48.69   214280  0/16791664
+
+T01-dump-restore.sh: Testing dump and restore           [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  load nmbug tags       5.82    1.80    1.86    13056   492584/65400
+  dump *                3.16    2.60    0.28    26792   1230896/27928
+  restore *             3.30    2.70    0.22    9916    123872/0
+
+T02-tag.sh: Testing tagging                             [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  tag * +new_tag        187.51  96.93   77.36   111648  3961184/1866656
+  tag * +existing_tag   0.00    0.00    0.00    9728    0/0
+  tag * -existing_tag   126.16  65.23   60.76   37364   16/1513200
+  tag * -missing_tag    0.00    0.00    0.00    9728    0/0
+
+T03-reindex.sh: Testing reindexing                      [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  reindex *             368.40  338.14  18.48   482844  3984864/34952728
+  reindex *             360.48  337.81  15.32   481516  264/34669112
+  reindex *             355.73  335.88  13.62   481512  768/34677832
+  reindex (52374 mv)    322.80  293.33  16.89   453880  0/37045544
+  reindex (52374 mv back)265.99 247.46  11.24   453380  0/27842152
+  reindex (52374 rm)    273.08  249.49  12.85   451644  0/27825720
+  reindex (52374 restore)265.34 246.61  11.60   452508  0/27851624
+  reindex (52374 cp)    274.16  249.05  12.75   453352  0/27823592
+
+T04-thread-subquery.sh: Testing thread subqueries       [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  search thread:{} ...  1.89    1.41    0.20    28316   832896/144
+  search thread:{} ...  1.49    1.43    0.05    28268   0/144
+  search thread:{} ...  1.48    1.38    0.10    27516   0/144
+
+T05-ruby.sh: Testing ruby bindings                      [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  print all messages    349.10  320.61  24.01   100808  1299568/1912632
+
+T06-emacs.sh: Testing emacs operations                  [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+            Wall(s) GCs GC time(s)
+tag messages        1.60    0.40    0.00
+show warmup     0.75    13.00   0.22
+show thread #1      0.76    3.60    0.18
+depth bound #1      0.16    0.40    0.03
+height bound #1     0.18    0.60    0.05
+size bound #1       0.16    0.40    0.03
+show thread #2      0.46    1.00    0.09
+depth bound #2      0.16    0.40    0.04
+height bound #2     0.14    0.20    0.02
+size bound #2       0.17    0.40    0.05
+show thread #3      0.63    0.80    0.11
+depth bound #3      0.25    0.20    0.03
+height bound #3     0.25    0.20    0.03
+size bound #3       0.24    0.20    0.03
+show thread #4      2.01    1.80    0.32
+depth bound #4      0.27    0.20    0.04
+height bound #4     0.32    0.40    0.09
+size bound #4       0.28    0.20    0.05
+rm: cannot remove '/srv/exp/bremner/notmuch/performance-test/tmp.T06-emacs': Directory not empty
+
+T07-git.sh: Testing notmuch-git                         [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  init                  0.05    0.03    0.01    16000   592/304
+  commit --force        15.00   18.75   4.31    248000  1294176/907736
+  commit                2.79    0.87    1.92    135124  0/72
+  commit                2.75    0.86    1.89    135124  0/8
+  checkout              2.78    0.98    1.79    135124  0/8
+  tag -inbox            184.78  95.21   77.40   110456  2665376/1843104
+  checkout --force      178.42  100.71  81.53   211144  68064/8690016
+
diff --git a/perf-test-results/2023-12-17-motzkin-ext4.mdwn b/perf-test-results/2023-12-17-motzkin-ext4.mdwn new file mode 100644 index 0000000..a0005fe --- /dev/null +++ b/perf-test-results/2023-12-17-motzkin-ext4.mdwn @@ -0,0 +1,87 @@ +Here are the results of "make time-test" on a +"13th Gen Intel(R) Core(TM) i7-1365U". File system is ext4 on lvm on luks. + +notmuch is 0.38.1-15-gbddeb201 + +
+T00-new.sh: Testing notmuch new                         [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  Initial notmuch new   359.70  294.83  20.58   325524  7127120/18533216
+  notmuch new #2        0.01    0.00    0.00    9984    0/160
+  notmuch new #3        0.00    0.00    0.00    10112   0/8
+  notmuch new #4        0.00    0.00    0.00    10112   0/8
+  notmuch new #5        0.00    0.00    0.00    10112   0/8
+  notmuch new #6        0.00    0.00    0.00    10112   0/8
+  new (52374 mv)        248.98  173.85  74.49   237060  304/6114280
+  new (52374 mv back)   250.19  174.82  74.79   238340  0/6045736
+  new (52374 rm)        45.87   37.05   7.75    388864  24/8765296
+  new (52374 restore)   99.77   89.63   9.24    381204  0/8388352
+  new (52374 cp)        150.42  106.02  43.98   211744  8/4667440
+
+T01-dump-restore.sh: Testing dump and restore           [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  load nmbug tags       2.76    1.14    1.42    13056   760/32248
+  dump *                2.67    2.55    0.12    26740   0/27928
+  restore *             2.89    2.68    0.21    10152   0/0
+
+T02-tag.sh: Testing tagging                             [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  tag * +new_tag        168.91  95.08   73.30   111276  136/1576400
+  tag * +existing_tag   0.01    0.00    0.00    9856    0/0
+  tag * -existing_tag   124.70  65.10   59.32   37228   0/1601200
+  tag * -missing_tag    0.00    0.00    0.00    9856    0/0
+
+T03-reindex.sh: Testing reindexing                      [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  reindex *             338.91  328.44  10.22   482332  8/13564952
+  reindex *             335.58  325.85  9.42    481152  0/13905656
+  reindex *             333.80  324.58  9.04    481276  0/13917480
+  reindex (52374 mv)    295.09  285.04  9.85    454384  32/13139592
+  reindex (52374 mv back)249.74 242.16  7.24    452172  0/11474632
+  reindex (52374 rm)    244.04  236.23  7.40    452884  0/10569496
+  reindex (52374 restore)247.86 240.15  7.53    451748  0/11424312
+  reindex (52374 cp)    253.09  244.48  8.04    452644  0/11601752
+
+T04-thread-subquery.sh: Testing thread subqueries       [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  search thread:{} ...  1.52    1.44    0.07    27676   8/144
+  search thread:{} ...  1.52    1.44    0.08    27204   0/144
+  search thread:{} ...  1.52    1.44    0.08    27528   0/144
+
+T05-ruby.sh: Testing ruby bindings                      [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  print all messages    346.17  321.86  24.19   101072  1552/1912632
+
+T06-emacs.sh: Testing emacs operations                  [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+            Wall(s) GCs GC time(s)
+tag messages        2.10    0.40    0.01
+show warmup     0.75    13.00   0.22
+show thread #1      0.78    3.60    0.19
+depth bound #1      0.16    0.40    0.03
+height bound #1     0.18    0.60    0.05
+size bound #1       0.17    0.40    0.03
+show thread #2      0.46    1.00    0.10
+depth bound #2      0.16    0.40    0.04
+height bound #2     0.14    0.20    0.02
+size bound #2       0.17    0.40    0.05
+show thread #3      0.64    0.80    0.10
+depth bound #3      0.28    0.20    0.03
+height bound #3     0.27    0.20    0.03
+size bound #3       0.27    0.20    0.03
+show thread #4      2.01    1.80    0.33
+depth bound #4      0.27    0.20    0.04
+height bound #4     0.32    0.40    0.09
+size bound #4       0.28    0.20    0.05
+rm: cannot remove '/home/bremner/software/upstream/notmuch/performance-test/tmp.T06-emacs': Directory not empty
+
+T07-git.sh: Testing notmuch-git                         [0.5 large]
+            Wall(s) Usr(s)  Sys(s)  Res(K)  In/Out(512B)
+  init                  0.07    0.04    0.00    15872   4624/272
+  commit --force        14.21   18.34   3.50    248152  400/854584
+  commit                2.83    0.95    1.87    135128  0/8
+  commit                2.77    1.05    1.71    134996  0/8
+  checkout              2.76    0.95    1.80    135124  0/8
+  tag -inbox            176.95  100.30  76.17   110568  0/1560400
+  checkout --force      194.89  112.79  88.50   211364  8/5653888
+
-- 2.43.0 From 533fdcc042b623381240f93dccf24cf1c48317db Mon Sep 17 00:00:00 2001 From: Tomi Ollila Date: Sun, 10 Mar 2024 14:56:50 +0200 Subject: [PATCH 16/16] News for release 0.38.3 --- news/release-0.38.3.mdwn | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 news/release-0.38.3.mdwn diff --git a/news/release-0.38.3.mdwn b/news/release-0.38.3.mdwn new file mode 100644 index 0000000..e8b1b18 --- /dev/null +++ b/news/release-0.38.3.mdwn @@ -0,0 +1,11 @@ +[[!meta date="2024-03-09"]] + +Notmuch 0.38.3 (2024-03-09) +=========================== + +CLI +--- + +Fix a bug in configuration code that caused the notmuch command to +erroneously report "Error: could not locate database" under some +circumstances. -- 2.43.0