summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2025-03-14debian: changelog for 0.39~rc3-1debian/0.39_rc3-1archive/debian/0.39_rc3-10.39_rc3David Bremner
2025-03-14version: bump to 0.39~rc3David Bremner
2025-03-14Set 'untrusted-content' to t in all modesStefan Kangas
Instead of trying to guess in which modes this is safe not to set in, let's just set it in all of them. Background (added by db): untrusted-content was added in Emacs 29.3 and is currently set by Gnus and used by org-mode to prevent certain unsafe operations. I think the intent is to use it for blocking more unsafe operations in the future.
2025-03-13bindings/python-cffi: fix docstring for message.header()Michael J Gruber
The cffi bindings raise a LookupError in case a header is not present. Adjust the docstring to say so. The legacy bindings behaved differently, and this is one of the things to be aware of when migrating to the cffi bindings.
2025-03-13Debian build-deps: include emacs-pgtk in conjunctionDaniel Kahn Gillmor
Debian developers with the pure GTK+ variant of emacs (which does not support X11 at all, as it builds entirely against the GTK Wayland backend) should also be able to treat the build-dependencies as satisfied. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2025-03-13emacs/tree: add call to notmuch-hl-line-mode from process-filterDavid Bremner
This removes the visual gap/stutter between when the screen fills and when the hl-line "cursor" is drawn. It is not obviously how to robustly test this, since it the observable effect is purely a matter of timing.
2025-03-13emacs/tree: call notmuch-hl-line-mode from tree-sentinelDavid Bremner
There is a a perceptible gap between when the tree shows up and when the hl-line is visible, but this is better than the previous state where the line did not show up at all until the user moved the cursor.
2025-03-13emacs/tree: condition hl-line-mode on notmuch-hl-lineDavid Bremner
It isn't clear that this call to hl-line-mode will survive the coming re-organization to stop relying on hooks, but incrementally this at least makes the disabling behaviour consistent.
2025-03-13emacs: replace use of hook to draw hl-line in search modeDavid Bremner
In the thread at id:87fsfuuxwn.fsf@thinkbox, a bug is discussed where the point and hl-line overlay get out of sync, leading the user to open the wrong message. As far as I can tell this is caused by notmuch-hl-mode being invoked too early. This change bypasses the logic preventing notmuch-search-hook being called only once, so that the overlay is updated later after the buffer is full(er). This change may lead to the overlay being updated multiple times; if this is annoying we can add a similar buffer local variable to ensure it is only called once. The extra logic to check notmuch-search-target-line reduces the flicker somewhat by not highlighting the first line every time.
2025-03-13test/emacs: add tests for hl-line-mode integrationDavid Bremner
Most of the known broken tests replicate (my intepretation of) the bug reported at id:87fsfuuxwn.fsf@thinkbox (or some unreported, but probably related bugs in tree/unthreaded view). The last 3 broken tests are just unimplimented planned functionality.
2025-03-13emacs: add defcustom to control hl-line modeDavid Bremner
Currently the presence of hl-line highlighting is controlled implicitely by hooks. In future commits it will be migrated to use this variable.
2025-03-11debian: increase test timeout to 10mdebian/0.39_rc2-2archive/debian/0.39_rc2-2David Bremner
Workaround for slow riscv64 autobuilders.
2025-03-11debian: changelog for 0.39~rc2-1debian/0.39_rc2-1archive/debian/0.39_rc2-10.39_rc2David Bremner
2025-03-11version: bump to 0.39~rc2David Bremner
2025-03-08ruby: fix "undefining the allocator of T_DATA" warningsJohannes Larsen
Ruby 3.2 introduced a warning when C-extensions use structs without redefining the allocation default allocation routine meant for objects. See https://bugs.ruby-lang.org/issues/18007 for details. In the Ruby bindings this happens at `Data_Wrap_Notmuch_Object` call sites, so the object types used there needed to update their allocation. This ruby code (given a database at the hardcoded path with messages matching `tag:tmp`) exercise all the ruby objects: require 'notmuch' Notmuch::Database.open File.expand_path("~/mail") do |db| db.get_directory("/tmp") db.query("tag:tmp").search_threads.each do |t| t.messages.each do |m| puts m.header("Subject") end end end Before these changes with ruby 3.2.5 and notmuch 0.38.3 it outputs: notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Query notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Threads notmuch.rb:5: warning: undefining the allocator of T_DATA class Notmuch::Thread notmuch.rb:6: warning: undefining the allocator of T_DATA class Notmuch::Messages notmuch.rb:6: warning: undefining the allocator of T_DATA class Notmuch::Message notmuch release 0.38.3 now available (the last line is the message I tagged with tmp), and after the changes: notmuch release 0.38.3 now available
2025-03-01docs: avoid nmbug in notmuch-git.1Michael J Gruber
These days, `nmbug` is `notmuch-git` with special defaults, so avoid the term `nmbug` in the doc when we talk about `notmuch-git` in general. Also, spell git in lower case (as we do for notmuch) except for the one case where we name the beast.
2025-02-28Accept "key-missing" from a signature from a revoked keyDaniel Kahn Gillmor
We have traditionally expected a signature to show up as "revoked" when the signing key is revoked. However, GnuPG's recent fix to avoid a denial of service against legitimate signatures appears to have changed the status of signature verification from keys which happen to have been revoked. See https://bugs.debian.org/1098995 and https://dev.gnupg.org/T7547 This change makes the test suite a little bit less brittle while we look for a resolution from upstream. It should probably also be backported to debian unstable unless a notmuch release to unstable is imminent. Signed-off-by: Daniel Kahn Gillmor <dkg@fifthhorseman.net>
2025-02-28python: Fix message ID docstringFloris Bruynooghe
The messageidb attribute does not exist. The returned BinString type already allows use as both strings and binary. Presumably this was written before that type was adopted.
2025-02-25debian: upload to experimental instead of unstabledebian/0.39_rc1-1archive/debian/0.39_rc1-1David Bremner
2025-02-25version: bump to 0.39~rc1David Bremner
2025-02-25debian: changelog stanza for 0.39~rc1-1David Bremner
2025-02-25test/emacs: add workaround for Emacs 30 pp changesDavid Bremner
This relies on the fact that setting pp-default-function has no effect for Emacs <30.
2025-02-22Consolidate duplicated dpkg-dev requirementsXiyue Deng
* Keep dpkg-dev (>= 1.22.5) which is added for t64 transition.
2025-02-22debian: changelog for 0.39~rc0-1debian/0.39_rc0-1archive/debian/0.39_rc0-10.39_rc0David Bremner
Close a few Debian bugs.
2025-02-22version: bump to 0.39~rc0David Bremner
Normally this would be done as part of the release process, rather than committed intially to master, but in this case I want to test the change to python bindings version handling in the previous commit.
2025-02-22bindings/python: strip ~ from python versionDavid Bremner
Inspired by a suggestion of Xiyue Deng, this change ensures that the python bindings have a version that recent setuptools is happy with. This will have the unfortunate side effect of the python view of the version number differing from the rest of notmuch for the pre-releases. The alternative would be to transform the version numbers for the Debian packages for the pre-releases, as there is now no version scheme that works for both, since setuptools started rejecting versions with "~" in them. If we decide to go the latter way in the future, this change is easy to revert.
2025-02-22build: remove handling for legacy python bindings versionDavid Bremner
The legacy python bindings are no longer built.
2025-02-22python: move legacy python bindings to contrib.David Bremner
This forces us to verify the build and test suite completes without the legacy python bindings. As of this commit the legacy python bindings are unsupported by notmuch. They are provided in contrib/ for now, but will most likely eventually be removed from there as well. We recommend that downstream/distro packagers phase out their packages for the legacy python bindings.
2025-02-22python: fix documentation typoDavid Bremner
The method is actually called 'getall'.
2025-02-22test/message-property: convert python tests from legacy bindingsDavid Bremner
One test is deleted since that method is not provided by the new bindings. Similar things can be done by accessing the PropertiesMap returned by properties. This change is a prelude to removing the legacy bindings from the build.
2025-02-22test/count: convert library test from python to CDavid Bremner
The new python bindings do not support modifying query objects, so convert to C. There is a bit more boilerplate to handle errors but otherwise it is essentially a line by line translation.
2025-02-22test: drop tests for legacy python bindingsDavid Bremner
This is a prelude to removing the legacy bindings from the build.
2025-02-22debian: stop packaging legacy python bindings.David Bremner
This is in preparation for moving them to contrib and dropping them from the test suite upstream.
2025-02-18notmuch-show-imenu-prev-index-position-function: Don't recenterDamien Cassou
The previous version of notmuch-show-imenu-prev-index-position-function was calling notmuch-show-previous-message which was recentering the window. This is a problem when which-func-mode is active because which-func-mode is called each time the user moves point around. Because this function is only meant to be executed by imenu, there is no reason to recenter the window. For the same reason, the new implementation doesn't have to follow strictly how notmuch-show-previous-message is implemented because imenu only places point at very specific locations before calling notmuch-show-imenu-prev-index-position-function.
2025-02-07fix segfaults in Python cFFI API and add testsLars Kotthoff
Several iterators in the Python cFFI API destroyed the objects they iterated over too early (when the iterator was exhausted), causing subsequent segfaults in common cases like creating a list from the iterator. This patch fixes the segfaults and add tests to ensure that they don't happen again.
2025-01-26Revert "bump versions to 0.39~rc0"David Bremner
This reverts commit deea909993513ec6fd800b7571649582d994dcbc.
2025-01-26docs: add 2025 to copyright yearsDavid Bremner
2025-01-26bump versions to 0.39~rc0David Bremner
Prepare to release a snapshot for testing
2025-01-26debian: update changelog for 0.39~rc0-1David Bremner
2024-12-08docs: Update intersphinx_mappingFredrik Lönnegren
Running `make dirhtml` in bindings/python/docs generates the following error: ``` sphinx-build -b dirhtml -d build/doctrees source build/dirhtml Running Sphinx v8.0.2 loading translations [en]... done making output directory... done Converting `source_suffix = '.rst'` to `source_suffix = {'.rst': 'restructuredtext'}`. ERROR: Invalid value `None` in intersphinx_mapping['https://docs.python.org/']. Expected a two-element tuple or list. ``` This commit updates intersphinx_mapping to follow the latest docs [1] [1] https://www.sphinx-doc.org/en/master/usage/extensions/intersphinx.html Signed-off-by: Fredrik Lönnegren <fredrik@frelon.se>
2024-08-17NEWS: deprecate Emacs older than 27.1David Bremner
The current requirement of 25.1 is more than 5 years old at this point.
2024-08-16emacs/mua: Correct autoload cookiesPengji Zhang
This is a follow-up to [1: 8d06dfce]. Per Info node '(elisp)Autoload', autoload cookies should start with ';;;###'. 1: 2024-04-04 8d06dfce175593aebae9a759c9167df4988a3444 emacs: Autoload notmuch-user-agent related functions
2024-08-09Revert "emacs: Fix saved-search buffer titles"David Bremner
This reverts commit bc989209171d406b3671024542e59b86b0ecb23d. This was applied unintentionally to master while still under discussion.
2024-08-06emacs/tree: sanitize subjects when drawing treeDavid Bremner
This fixes the bug reported in id:6F2EF901-8B4B-44FF-83C5-22F732BA95A6@gmail.com Unfortunately it turns out our test data has several tabs in the subject lines. The expected output was updated to reflect their removal and the ripple effect of several more subjects matching the previous ones.
2024-08-06test/emacs-tree: add known broken test for subject with CR/NLDavid Bremner
The test is intentionally vague as it's hard to pin down the correct output before the code is fixed.
2024-08-06test/emacs-show: add regression test for subjects with CR/NLDavid Bremner
This subject is known to be problematic for notmuch-tree.
2024-08-06CLI/show: warn if crypto options are used with mbox formatDavid Bremner
This limitation seems somewhat hard to fix, but at least try to warn users when combining crypto operations with mbox output format. Because the default is --decrypt=auto, the warning is omitted if --decrypt=auto is specified. While this is not great, it seems more wrong to always warn, or to change the default because of this.
2024-08-06emacs: Fix saved-search buffer titlesRudolf Adamkovič
REPRODUCTION STEPS: (let ((notmuch-saved-searches (list (list :name "Emacs List" :query "query:lists-emacs") (list :name "All Lists" :query "query:lists")))) (notmuch-search-buffer-title "query:lists-emacs" )) ACTUAL: "*notmuch-saved-search-[ All Lists ]-emacs*" EXPECTED: "*notmuch-saved-search-Emacs List*"
2024-08-05devel: document emacs keybindings u and UDavid Bremner
Thanks to changing the column widths to accomodate longer function names, the diff is rather large, but the content is two new rows for 'u' and 'U'
2024-08-05Merge branch 'release'David Bremner