summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2026-01-24debian: changelog for 0.40~rc1-10.40_rc1David Bremner
2026-01-24version: bump to 0.40~rc1David Bremner
2026-01-24doc/emacs: correct documentation of n-show-forward-messageDavid Bremner
Commit 3af10307d started a subsection on message level actions, but the author (yours truly) mistook their customized behaviour for the default.
2026-01-22NEWS: initial news for 0.40David Bremner
2026-01-18debian: upload 0.40~rc0-2debian/0.40_rc0-2archive/debian/0.40_rc0-2David Bremner
Workaround for apparent toolchain regression on armhf.
2026-01-17Commit Debian 3.0 (quilt) metadatadebian/0.40_rc0-1archive/debian/0.40_rc0-1David Bremner
[dgit (14.2) quilt-fixup]
2026-01-17debian: update symbols file for new functionsDavid Bremner
2026-01-17lib: bump minor versionDavid Bremner
This reflects the addition of a new API functions, notmuch_{messages,threads}_status
2026-01-17debian: remove kfreebsd-any from control fileDavid Bremner
Since the arch no longer exists, it is no longer helpful to exclude it.
2026-01-17NEWS: add header for new release0.40_rc0David Bremner
2026-01-17debian: add changelog stanza for pre-releaseDavid Bremner
2026-01-17doc/python: bump copyright yearDavid Bremner
2026-01-17version: bump to 0.40~rc0David Bremner
2026-01-16test/cli: Add reproducer for the spurious warning about uuid.David Bremner
As reported by "lh" on IRC.
2026-01-15emacs/hello: fix one case of passing hide-excludedDavid Bremner
In the search box (and recent searches), notmuch-search-hide-excluded was not being passed to notmuch-search. This means that excluded messages were always shown in the results. Fix this by passing the extra argument.
2026-01-15test/emacs: known broken test for excludes and notmuch-helloDavid Bremner
One of the places notmuch-search is called did not get the new 'hide-excluded' argument.
2026-01-15One of the places notmuch-search is called did not get the newDavid Bremner
'hide-excluded' argument.
2026-01-15lib: move call to _n_m_invalidate_metadataDavid Bremner
It is wrong most of the time in _notmuch_message_remove_terms, but that function is too low level to know how to call _n_m_invalidate_metadata with the right argument, at least not without more extensive changes. This change merely makes the current behaviour more obvious, since the other calls cannot have relied on metadata being invalidated.
2026-01-14emacs: Generate and install autoloadsPengji Zhang
Previously when installed with 'make install', autoloads in sources were not scraped. So users still had to load the full library beforehand in order to use Notmuch. Now we generate and install such a file for 'make install-emacs'. With this change, users can replace in their Emacs configuration: (require 'notmuch) with a much cheaper: (require 'notmuch-autoloads) but are still able to use 'M-x notmuch'. Note that this new file is not included in the 'make elpa' package, so it does not break for those users, who have already been enjoying autoloads generated by 'package.el'. Besides, this should not break packaging for most distros. Even if they have generated and maintained such a file using their package managers, Emacs does not choke on an existing output file when scraping autoloads. Re: thread starting at id:87o75yl4u5.fsf@pengjiz.com Amended-By: db; add comment about autoload-excludes
2026-01-12emacs: Set `sentence-end-double-space` in .dir-locals.elKristoffer Balintona
Throughout the project's files, contributors have implicitly been ending their sentences with a period and a single space. Set `sentence-end-double-space` accordingly.
2025-11-09open: avoid leaking index_as_text regex objectsAnton Khirnov
Regexes compiled with regcomp() need to be freed with regfree(). Do that in a talloc destructor attached to the compiled regex array. Amended by db: Use C style comment. Add blank line per uncrustify.
2025-09-14bindings/python-cffi: handle NOTMUCH_STATUS_OPERATION_INVALIDATEDAnton Khirnov
Raise it as a newly added OperationInvalidatedError exception.
2025-09-14bindings/python-cffi: allow reopening a databaseAnton Khirnov
This will be useful for handling NOTMUCH_STATUS_OPERATION_INVALIDATED errors that will be exposed through the bindings in a following commit.
2025-08-09lib: return NOTMUCH_STATUS_OPERATION_INVALIDATED where appropriateAnton Khirnov
The overall goal is to allow clients to restart operations in situations where that is the response recommended by the underlying Xapian library. Amended-by: db, added above explanation
2025-08-04lib/database-private: undef XAPIAN_DEPRECATED before redefining itAnton Khirnov
Silences compiler warnings about redefining a macro.
2025-08-04lib: add notmuch_threads_status()Anton Khirnov
While a number of errors can happen when iterating over threads (DatabaseModifiedError, memory allocation errors, etc.), the API currently cannot signal them to the caller, and either triggers an internal error (aborting the caller) or returns NULL from notmuch_threads_get() with no information on what actually went wrong. Add a new public function notmuch_threads_status() - similar to previously added notmuch_messages_status() - that allows propagating those errors to the caller. Use this to remove the INTERNAL_ERROR() in _notmuch_thread_create() (triggered by T642). Fixes: https://github.com/pazz/alot/issues/1460 Amended-By: db. Resolved whitespace disagreement between emacs and uncrustify in favour of uncrustify.
2025-08-04test: add a known broken test for DatabaseModifiedError from threads iterationAnton Khirnov
This is similar to previously added T641, except here we iterate over threads rather than messages. After f375ea1add121c428f261473512831a169dfe335, the DatabaseModifiedError raised by Xapian is now handled in _notmuch_message_create(), resulting in a NULL message being returned to _notmuch_thread_create(), which currently triggers an internal error.
2025-08-04lib/config: simplify cleanup in notmuch_database_get_config_list()Anton Khirnov
The list destructor is always set when necessary (i.e. if the iterator is successfully created), so there is never a need to invoke it explicitly, even on failure.
2025-07-24lib: handle DatabaseModifiedError in _notmuch_message_createAnton Khirnov
If an open database is modified sufficiently by other callers, the open instance becomes invalid and operations on it throw DatabaseModifiedError. Per Xapian documentation, the caller is then supposed to reopen the database and restart the query. This exception is currently not handled in _notmuch_message_create(), leading to the default handler abort()ing the process. Catch this exception in _notmuch_message_create() and return an error instead of crashing. Since the entire query becomes invalid - including results that have already been read by the caller - this situation cannot be handled by libnotmuch transparently. A new public function - notmuch_messages_status() - is added to allow the callers to check whether the messages iterator was exhausted or terminated early due to a runtime error. This also allows memory allocation failure to be signalled to the caller. Amended-By: David Bremner <david@tethera.net> [replace use of notmuch_messages_valid]
2025-07-06test: add another known broken test for uncaught DatabaseModifiedErrorAnton Khirnov
This one is raised from _notmuch_message_create(). See also https://github.com/pazz/alot/issues/1460#issuecomment-2994101019
2025-07-04python/doc: fix link to notmuch-config manpageDavid Bremner
This docstring has been like this a long time, but recently I noticed sphinx-doc complaining about :man:. This :any: link seems to work, and is consistent with the other links to the notmuch-config man page.
2025-06-23Merge branch 'release'David Bremner
2025-06-22doc/emacs: start subsection on message level actionsDavid Bremner
In particular this gives a place for documenting how to resume editing drafts.
2025-06-22doc/emacs: update keybindings list for 'e'David Bremner
The mention of notmuch-tree-button-activate seems to have been an error / obsolete.
2025-06-22doc/emacs: refactor navigation commandsDavid Bremner
The amount of space saved here is minimal, but I want to migrate to a more topic focused manual, as opposed to long alphabetical lists of commands.
2025-06-22doc/emacs: start a section on notmuch-message-modeDavid Bremner
This is mostly just copying docstrings, but putting them into sections makes them more discoverable.
2025-06-22test: do not add legacy bindings to PYTHONPATHMichael J Gruber
d526797a ("python: move legacy python bindings to contrib.", 2025-02-15) moved the legacy python bindings away from the location in `bindingss/`. Do not add that location to the PYTHONPATH since it is obsolete.
2025-06-20emacs/search: call notmuch-search-mode before popping to bufferjonah
This makes derived-mode matching in display-buffer-alist work.
2025-06-16bindings/python-cffi: fix typosJakub Wilk
2025-03-29python: make IndexOptions publicJakub Wilk
Database docstrings refer to IndexOptions, so the latter should be public too.
2025-03-20Merge branch 'release'David Bremner
2025-03-20emacs: fix disabling notmuch-show-header-line via customlen@realtimegenomics.com
The defcustom had a typo that prevented it from working as intended.
2025-03-18Merge branch 'release'David Bremner
2025-03-18doc/python: correct wording around container complexity.David Bremner
Based on a suggestion from Jakub Wilk.
2025-03-15Merge branch 'release'David Bremner
2025-03-15debian: drop patchesdebian/0.39-1archive/debian/0.39-1David Bremner
Those changes are now directly in git.
2025-03-15Merge branch 'debian/unstable' into releaseDavid Bremner
merge bugfix uploads from other branch
2025-03-15NEWS: set release date0.39David Bremner
2025-03-15debian: changelog stanza for 0.39-1David Bremner
2025-03-15version: bump to 0.39David Bremner
Identical to 0.39~rc3, except for release related documentation (e.g. NEWS).