aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-17version: bump to 0.32.3David Bremner
2021-08-17NEWS: news for 0.32.3David Bremner
2021-08-17CLI/config: restore "notmuch config get built_with.*"David Bremner
We need to special case the config section "built_with" because it is not (currently) handled by the library. This seems consist with the other sub-sub-commands 'list' and 'set'.
2021-08-17test/config: add tests for built_withDavid Bremner
The "get" test is known broken because this functionality was dropped during the 0.32 config rewrite.
2021-08-17lib/open: look in MAILDIR for database, as documented.David Bremner
This fixes the bug id:87bl9lx864.fsf@kisara.moe
2021-08-17test: add known broken tests for finding database via MAILDIRDavid Bremner
This highlights a bug reported by several users, including Mohsin Kaleem [1]. The inconsistent use of test_begin_subtest_known_broken is because some of these tests pass even though the database cannot be located. This problem is left for a future commit. [1]: id:87bl9lx864.fsf@kisara.moe
2021-08-17lib: bump libnotmuch minor versionAustin Ray
Notmuch 0.32 corresponds to libnotmuch 5.4 as indicated by docstrings; however, the minor number wasn't bumped. Any libnotmuch downstream consumer using the LIBNOTMUCH_CHECK_VERSION macro to support multiple versions won't be able to access the new 5.4 functions. Signed-off-by: Austin Ray <austin@austinray.io>
2021-08-17lib: correct deprecated db open functions' docsAustin Ray
Both notmuch_database_open() and notmuch_database_open_verbose()'s documentation state they call notmuch_database_open_with_config() with config_path=NULL; however, their implementations pass an empty string. The empty string is the correct value to maintain their original behavior of not loading the user's configuration so their documentation is incorrect.
2021-08-05perf-test: fix for verboseFelipe Contreras
Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-08-05emacs: Refine scope of notmuch-jump-key faceProtesilaos Stavrou
The intent of the 'notmuch-jump-key' face is to allow users/themes to differentiate the text of the minibuffer prompt from the keys that are associated with jump actions. Commit 5cc106b0 correctly introduced the 'notmuch-jump-key' face for keys, but mistakenly applied it to the prompt as well.
2021-08-03emacs: honour notmuch-show-text/html-blocked-images in w3m messagesjao
When mm-text-html-renderer is set to 'w3m, the variable playing the role of a regular expression for blocked images is w3m-ignored-image-url-regexp. We bind it when the renderer is not 'shr.
2021-08-03test: revert to mkdir -p to make results directory.David Bremner
As suggested by id:m21r7al3mt.fsf@guru.guru-group.fi
2021-08-03ruby: cleanup object_destroy()Felipe Contreras
It was assumed the destructor of notmuch_rb_database_type did return a notmuch_status_t because that's what notmuch_database_close returns, and that value was checked by notmuch_rb_database_close in order to decide if to raise an exception. It turns out notmuch_database_destroy was called instead, so nothing was returned (void). All the destroy functions are void, and that's what we want. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-08-03test: use --minversion to detect GNU Parallel.David Bremner
Based on a suggestion of Ole Tange [1]. [1]: id:CA+4vN7x6jp4HCiEybZ=5g+2X6Pa7etBFX3Bbd=UYty37gR6wEQ@mail.gmail.com
2021-08-03Fix author-scan.sh on BSD systems.Matt Armstrong
BSD xargs does not have the -d option. Here we use tr to convert newlines to NUL characters, then pass -0 to xargs (which BSD does support). I looked at passing -z to 'git ls-files', but I did not find a BSD grep option to turn on NUL deliminted line processing.
2021-08-03doc: drop note about early versions of XapianDavid Bremner
Mathias Beyer [1] points out that this note is redudant since Xapian no longer builds with the problematic versions of Xapian. [1]: id:20210207124404.yldgtzjrsagacrl4@hoshi
2021-08-02ruby: split database close and destroyFelipe Contreras
Mirrors the C API: 7864350c (Split notmuch_database_close into two functions, 2012-04-25). Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-07-30cli: remove extraneous space in messageSimon Branch
2021-07-25emacs: notmuch-tree: mark the initial message at point as readJonas Bernoulli
When moving between message in a tree or show buffer, the message at point is marked as read. Likewise when creating such a buffer, then the message that is initially at point is supposed to be marked as read as well. The latter worked for `notmuch-show' but not for `notmuch-tree'. Press "RET" or "M-RET" in a search buffer to observe these behaviors. In both cases the marking is supposed to be done by the function `notmuch-show-command-hook'. In the case of `notmuch-show' that function is added directly to `post-command-hook'. `notmuch-tree' instead adds the function `notmuch-tree-command-hook' to `post-command-hook' and that calls `notmuch-show-command-hook', in the respective show buffer, but of course only if that exists. Because the tree buffer is created asynchronously, the show buffer doesn't exist yet by the time the `post-command-hook' is run, so we have to explicitly run `notmuch-tree-command-hook' once the show buffer exists. The show buffer is created when `notmuch-tree-goto-and-insert-msg' calls `notmuch-tree-show-message-in'. `notmuch-tree-process-filter' is what finally brings us here.
2021-07-19emacs: remove useless lexically bound variableDavid Bremner
A let binding without a value is just an obfuscated way of saying nil, especially if you are not going to mutate the variable.
2021-07-18ruby: enable garbage collection using tallocFelipe Contreras
We basically steal all the objects from their notmuch parents, therefore they are completely under Ruby's gc control. The order at which these objects are freed does not matter any more, because destroying the database does not destroy all the children objects, since they belong to Ruby now. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-07-18ruby: create an actual wrapper structFelipe Contreras
Currently Ruby data points directly to a notmuch object (e.g. notmuch_database_t), since we don't need any extra data that is fine. However, in the next commit we will need extra data, therefore we create a new struct notmuch_rb_object_t wrapper which contains nothing but a pointer to the current pointer (e.g. notmuch_database_t). This struct is tied to the Ruby object, and is freed when the Ruby object is freed by the garbage collector. We do nothing with this wrapper, so no functionality should be changed. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-07-18perf-test: add ruby testFelipe Contreras
Simply list the message-id of all the messages in a loop 100 times. Suggested-by: David Bremner <david@tethera.net> Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-07-13emacs: update declaration of notmuch-treeDavid Bremner
This fixes an a warning from the byte-compiler. The commit 74ab62a34018b38a40db4d363fff3faae964b47a changed the function signature but did not update the declaration.
2021-07-06emacs: fix typo in variable nameDavid Bremner
This error crept in during my style rewrite of dkg's proposed change.
2021-07-06replace references to freenode with references to liberaDavid Bremner
I left the reference to freenode in the test suite data, since it is historical.
2021-07-03doc: new notmuch show --sort and related emacs commandsjao
New --sort CLI option documented in notmuch-show's man page, and notmuch-search-toggle-order mentioned in doc/notmuch-emacs.rst and devel/emacs-keybindings.org (in the latter, there's also some whitespace changes in a table introduced by org-mode).
2021-07-03emacs/tree: command to toggle search sort order in tree modejao
New command notmuch-tree-toggle-order for switching the sort order (by reissuing the search with a different flag) in a notmuch-tree buffer.
2021-07-03emacs/hello: honouring :sort-order in threaded queriesjao
Now that notmuch show accepts --sort, we can, on the emacs side, use it according to the value of :sort-order in the definition of saved queries.
2021-07-03CLI/show: tests for the new --sort optionjao
New unit tests for notmuch show --sort, covering the basic use cases.
2021-07-03CLI/show: accept --sortjao
Add the command-line option --sort to the show command of the CLI notmuch interface, with the same possible values as the same option in notmuch search.
2021-06-29test: deduplicate T590Michael J Gruber
Test numbers are a concise way to communicate about tests and to remeber them. Currently, there is one pait of duplicates: T590-libconfig.sh T590-thread-breakage.sh Renumber the latter one to 592 since this keeps the alphabetic order and leaves room in between. Signed-off-by: Michael J Gruber <git@grubix.eu>
2021-06-28debian: document new build-dependencydebian/0.31.4-2archive/debian/0.31.4-2debian/bullseyeDavid Bremner
2021-06-28Commit Debian 3.0 (quilt) metadataDavid Bremner
[dgit (9.13) quilt-fixup]
2021-06-28debian: add xapian-tools for testsDavid Bremner
xapian-metadata is used by some of the new tests. (cherry picked from commit 9f8458a998a0a20f435b5d47ac085acb9490ddae)
2021-06-28debian/changelog: refinalize for uploadDavid Bremner
2021-06-27emacs/tree use notmuch-show-single-messageDavid Bremner
This is more efficient than notmuch-show-only-matching-messages, since we do not parse the potentially large thread structure to find a single message. This is only a partial fix for notmuch-tree view, because displaying the thread structure in the tree-mode window still crashes on long threads. It is however enough to make unthreaded view handle long threads.
2021-06-27emacs/show: add parameter notmuch-show-single-messageDavid Bremner
This dynamically bound variable can be set when the caller of notmuch-show guarantees that exactly one message will match the query. It avoids transporting and parsing the complete thread structure.
2021-06-27test: start test file for emacs unthreaded view.David Bremner
Initial focus is on behaviour with large threads. The second test replicates a bug reported by Alan Schmitt in id:87lf7sojbq.fsf@m4x.org.
2021-06-27emacs: remap send-message and send-message-and-exitedef
All three of C-c C-c, <menu-bar> <Message> <Send Message>, and <tool-bar> <Send Message> are bound to message-send-and-exit by message.el, but notmuch-mua.el only had an explicit override for the keyboard binding. This mostly manifests as confusing Fcc behaviour for GUI users. Patching the bindings for specific keys is rather brittle, since it has to be aware of every relevant binding. This change switches to instead using a remap binding, which turns any binding for message-send or message-send-and-exit into a binding for the corresponding notmuch-mua command.
2021-06-27ruby: add keyword arguments to db.queryFelipe Contreras
That way we don't need pass them to the query object ourselves. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com>
2021-06-27lib: update transaction documentationDavid Bremner
Partly this is to recognize the semantics we inherit from Xapian, partly to mention the new autocommit feature.
2021-06-27doc: document database.autocommit variableDavid Bremner
This exposes some database internals that most users will probably not understand.
2021-06-27lib: autocommit after some number of completed transactionsDavid Bremner
This change addresses two known issues with large sets of changes to the database. The first is that as reported by Steven Allen [1], notmuch commits are not "flushed" when they complete, which means that if there is an open transaction when the database closes (or e.g. the program crashes) then all changes since the last commit will be discarded (nothing is irrecoverably lost for "notmuch new", as the indexing process just restarts next time it is run). This does not really "fix" the issue reported in [1]; that seems rather difficult given how transactions work in Xapian. On the other hand, with the default settings, this should mean one only loses less than a minutes worth of work. The second issue is the occasionally reported "storm" of disk writes when notmuch finishes. I don't yet have a test for this, but I think committing as we go should reduce the amount of work when finalizing the database. [1]: id:20151025210215.GA3754@stebalien.com
2021-06-27test: add known broken test for closing with open transactionDavid Bremner
The expected output may need adjusting, but what is clear is that saving none of the changes is not desirable.
2021-06-27lib/config: add NOTMUCH_CONFIG_AUTOCOMMITDavid Bremner
This will be used to control how often atomic transactions are committed.
2021-06-27database/close: remove misleading code / commentDavid Bremner
Unfortunately, it doesn't make a difference if we call cancel_transaction or not, all uncommited changes are discarded if there is an open (unflushed) transaction.
2021-06-27lib/database: fix style mistake.David Bremner
The spacing of the declaration was wrong in ea30110.
2021-06-27emacs: use new face for notmuch-jump and relatedProtesilaos Stavrou
The minibuffer-prompt face that was used before made it impossible to differentiate between two distinct UI elements: (i) the prompt's text which itself cannot be acted upon, (ii) the actionable keys used to jump to searches/tags. The use of a named face, notmuch-jump-key, makes it possible for users or theme developers to apply properties that are specific to each of those two cases. In the interest of backward compatibility, the new face inherits from minibuffer-prompt.
2021-06-27Merge tag '0.32.2'David Bremner
notmuch 0.32.2 release