Commit notifications for all Sup repositories
 help / color / mirror / Atom feed
* [sup.git] branch develop updated (1aae17f2 -> 73559396)
@ 2026-10-05  6:05 Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 01/03: contrib/nix: add Ruby shells as gc roots Dan Callaghan
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Dan Callaghan @ 2026-10-05  6:05 UTC (permalink / raw)
  To: sup-commits

Pushed branch develop:
    from 1aae17f2 update Manifest.txt for screenshot generator
     new f75891bd contrib/nix: add Ruby shells as gc roots
     new f72bb069 contrib/nix/test-all-rubies.sh: add Ruby 4.0
     new 73559396 use MatchAll base query term instead of Kmail


Summary of changes:
 Manifest.txt                   |  2 ++
 contrib/nix/.gitignore         |  1 +
 contrib/nix/test-all-rubies.sh |  3 +-
 lib/sup/index.rb               |  4 ++-
 test/integration/test_index.rb | 62 ++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 70 insertions(+), 2 deletions(-)
 create mode 100644 contrib/nix/.gitignore
 create mode 100644 test/integration/test_index.rb

^ permalink raw reply	[flat|nested] 4+ messages in thread

* [sup.git] 01/03: contrib/nix: add Ruby shells as gc roots
  2026-10-05  6:05 [sup.git] branch develop updated (1aae17f2 -> 73559396) Dan Callaghan
@ 2026-10-05  6:05 ` Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 02/03: contrib/nix/test-all-rubies.sh: add Ruby 4.0 Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 03/03: use MatchAll base query term instead of Kmail Dan Callaghan
  2 siblings, 0 replies; 4+ messages in thread
From: Dan Callaghan @ 2026-10-05  6:05 UTC (permalink / raw)
  To: sup-commits

New commit on branch develop:
https://supmua.dev/git/sup/commit/f75891bdfd125d25e5963442cf0e675d326d1dc3.html

commit f75891bdfd125d25e5963442cf0e675d326d1dc3
Author: Dan Callaghan <djc@djc.id.au>
AuthorDate: Sat Oct 3 21:49:34 2026 +1000

    contrib/nix: add Ruby shells as gc roots
    
    nix-collect-garbage keeps wiping out the derivations for all the old
    Rubies, which is annoying because they are expensive to build.
---
 Manifest.txt                   | 1 +
 contrib/nix/.gitignore         | 1 +
 contrib/nix/test-all-rubies.sh | 1 +
 3 files changed, 3 insertions(+)

diff --git a/Manifest.txt b/Manifest.txt
index 3b3d8f33..aaf1cc8b 100644
--- a/Manifest.txt
+++ b/Manifest.txt
@@ -23,6 +23,7 @@ bin/sup-tweak-labels
 contrib/colorpicker.rb
 contrib/completion/_sup.bash
 contrib/completion/_sup.zsh
+contrib/nix/.gitignore
 contrib/nix/Gemfile
 contrib/nix/Gemfile.lock
 contrib/nix/README
diff --git a/contrib/nix/.gitignore b/contrib/nix/.gitignore
new file mode 100644
index 00000000..c463264b
--- /dev/null
+++ b/contrib/nix/.gitignore
@@ -0,0 +1 @@
+.*shell-inputs
diff --git a/contrib/nix/test-all-rubies.sh b/contrib/nix/test-all-rubies.sh
index d1af07bd..0fdbc86e 100755
--- a/contrib/nix/test-all-rubies.sh
+++ b/contrib/nix/test-all-rubies.sh
@@ -2,5 +2,6 @@
 set -e
 cd "$(dirname "$0")/../.."
 for rubyversion in 2.4 2.5 2.6 2.7 3.0 3.1 3.2 3.3 3.4 ; do
+    nix-build contrib/nix/ruby$rubyversion-shell.nix -A inputDerivation -o contrib/nix/.ruby$rubyversion-shell-inputs
     nix-shell contrib/nix/ruby$rubyversion-shell.nix --run 'rake ci'
 done

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [sup.git] 02/03: contrib/nix/test-all-rubies.sh: add Ruby 4.0
  2026-10-05  6:05 [sup.git] branch develop updated (1aae17f2 -> 73559396) Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 01/03: contrib/nix: add Ruby shells as gc roots Dan Callaghan
@ 2026-10-05  6:05 ` Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 03/03: use MatchAll base query term instead of Kmail Dan Callaghan
  2 siblings, 0 replies; 4+ messages in thread
From: Dan Callaghan @ 2026-10-05  6:05 UTC (permalink / raw)
  To: sup-commits

New commit on branch develop:
https://supmua.dev/git/sup/commit/f72bb069cd77c4cc1376a85eeee8ca5cde5cdd79.html

commit f72bb069cd77c4cc1376a85eeee8ca5cde5cdd79
Author: Dan Callaghan <djc@djc.id.au>
AuthorDate: Sun Oct 4 13:32:34 2026 +1100

    contrib/nix/test-all-rubies.sh: add Ruby 4.0
    
    Forgot to put it in here when I added the shell.nix for it a while back.
---
 contrib/nix/test-all-rubies.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/contrib/nix/test-all-rubies.sh b/contrib/nix/test-all-rubies.sh
index 0fdbc86e..84d404a0 100755
--- a/contrib/nix/test-all-rubies.sh
+++ b/contrib/nix/test-all-rubies.sh
@@ -1,7 +1,7 @@
 #!/usr/bin/env bash
 set -e
 cd "$(dirname "$0")/../.."
-for rubyversion in 2.4 2.5 2.6 2.7 3.0 3.1 3.2 3.3 3.4 ; do
+for rubyversion in 2.4 2.5 2.6 2.7 3.0 3.1 3.2 3.3 3.4 4.0 ; do
     nix-build contrib/nix/ruby$rubyversion-shell.nix -A inputDerivation -o contrib/nix/.ruby$rubyversion-shell-inputs
     nix-shell contrib/nix/ruby$rubyversion-shell.nix --run 'rake ci'
 done

^ permalink raw reply related	[flat|nested] 4+ messages in thread

* [sup.git] 03/03: use MatchAll base query term instead of Kmail
  2026-10-05  6:05 [sup.git] branch develop updated (1aae17f2 -> 73559396) Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 01/03: contrib/nix: add Ruby shells as gc roots Dan Callaghan
  2026-10-05  6:05 ` [sup.git] 02/03: contrib/nix/test-all-rubies.sh: add Ruby 4.0 Dan Callaghan
@ 2026-10-05  6:05 ` Dan Callaghan
  2 siblings, 0 replies; 4+ messages in thread
From: Dan Callaghan @ 2026-10-05  6:05 UTC (permalink / raw)
  To: sup-commits

New commit on branch develop:
https://supmua.dev/git/sup/commit/735593960308648000dbe99d706221c24a306746.html

commit 735593960308648000dbe99d706221c24a306746
Author: Dan Callaghan <djc@djc.id.au>
AuthorDate: Mon Oct 5 14:29:38 2026 +1100

    use MatchAll base query term instead of Kmail
    
    Works around a spurious DatabaseCorruptError from Xapian, if no other
    terms are added to the query (as in the "all mail" listing).
    
    Xapian bug: https://trac.xapian.org/ticket/855
    
    Fixes #628 (with a workaround).
---
 Manifest.txt                   |  1 +
 lib/sup/index.rb               |  4 ++-
 test/integration/test_index.rb | 62 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 66 insertions(+), 1 deletion(-)

diff --git a/Manifest.txt b/Manifest.txt
index aaf1cc8b..a05e069e 100644
--- a/Manifest.txt
+++ b/Manifest.txt
@@ -173,6 +173,7 @@ test/gnupg_test_home/regen_keys.sh
 test/gnupg_test_home/secring.gpg
 test/gnupg_test_home/sup-test-2@foo.bar.asc
 test/integration/test_draft.rb
+test/integration/test_index.rb
 test/integration/test_maildir.rb
 test/integration/test_mbox.rb
 test/integration/test_sup-add.rb
diff --git a/lib/sup/index.rb b/lib/sup/index.rb
index a37eb0da..70afc8d7 100644
--- a/lib/sup/index.rb
+++ b/lib/sup/index.rb
@@ -674,7 +674,9 @@ EOS
     neglabels = [:spam, :deleted, :killed].reject { |l| (labels.include? l) || opts.member?("load_#{l}".intern) }
     pos_terms, neg_terms = [], []
 
-    pos_terms << mkterm(:type, 'mail')
+    ## workaround for https://trac.xapian.org/ticket/855
+    #pos_terms << mkterm(:type, 'mail')
+    pos_terms << Q::MatchAll
     pos_terms.concat(labels.map { |l| mkterm(:label,l) })
     pos_terms << opts[:qobj] if opts[:qobj]
     pos_terms << mkterm(:source_id, opts[:source_id]) if opts[:source_id]
diff --git a/test/integration/test_index.rb b/test/integration/test_index.rb
new file mode 100644
index 00000000..6dbeb59d
--- /dev/null
+++ b/test/integration/test_index.rb
@@ -0,0 +1,62 @@
+require "sup"
+require "test_helper"
+
+class TestIndexIntegration < Minitest::Test
+  include Redwood
+
+  def setup
+    @path = Dir.mktmpdir
+  end
+
+  def teardown
+    ObjectSpace.each_object(Class).select {|a| a < Redwood::Singleton}.each do |klass|
+      klass.deinstantiate! unless klass == Redwood::Logger
+    end
+    FileUtils.rm_r @path
+  end
+
+  def create_large_mbox n_messages
+    mbox = File.join @path, "big.mbox"
+    File.open(mbox, "w") do |f|
+      n_messages.times do |i|
+        ## spread the dates out so that the assigned docids are not
+        ## contiguous, as in a real index
+        date = Time.utc(2011) + i * 3600
+        f.write <<EOS
+From bob@example.com Sat Jan  1 00:00:00 2011
+From: Bob <bob@example.com>
+To: Joe <joe@example.com>
+Subject: message number #{i}
+Date: #{date.strftime "%a, %d %b %Y %H:%M:%S +0000"}
+Message-ID: <message-#{i}@example.com>
+
+Hi Bob, this is test message #{i}. From Joe.
+
+EOS
+      end
+    end
+    mbox
+  end
+
+  def start_sup_and_add_source source
+    start
+    Logger.remove_sink $stderr
+    Index.init @path
+    Index.load
+    SourceManager.instance.instance_eval '@sources = {}'
+    SourceManager.instance.add_source source
+    PollManager.poll_from source
+    Index.save_index
+  end
+
+  def test_all_mail_query
+    n_messages = 1200
+    mbox = create_large_mbox n_messages
+    start_sup_and_add_source MBox.new "mbox:#{mbox}"
+
+    ## the empty query is the "all mail" listing
+    ids = []
+    Index.each_id({}) { |id| ids << id }
+    assert_equal n_messages, ids.size
+  end
+end

^ permalink raw reply related	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2026-10-05  6:05 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2026-10-05  6:05 [sup.git] branch develop updated (1aae17f2 -> 73559396) Dan Callaghan
2026-10-05  6:05 ` [sup.git] 01/03: contrib/nix: add Ruby shells as gc roots Dan Callaghan
2026-10-05  6:05 ` [sup.git] 02/03: contrib/nix/test-all-rubies.sh: add Ruby 4.0 Dan Callaghan
2026-10-05  6:05 ` [sup.git] 03/03: use MatchAll base query term instead of Kmail Dan Callaghan

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox