sup

A curses threads-with-tags style email client

sup.git

git clone https://supmua.dev/git/sup/
commit 099412d0b5d622c320e4bca8e3c1fb0bb57cacaa
parent d5b5955a344fab493f4dad1798ccdcbdbfb4e1f2
Author: Dan Callaghan <djc@djc.id.au>
Date:   Mon,  6 Apr 2026 10:57:32 +1000

rubocop: 1.63.2 → 1.86.0

Skip rubocop checks on Ruby < 3.3 since these cannot get the newer
rubocop and so they will not understand the .rubocop.yml changes.

Diffstat:
M .rubocop.yml | 2 +-
M Rakefile | 2 +-
M contrib/nix/Gemfile.lock | 39 ++++++++++++++++++++++-----------------
M contrib/nix/gemset.nix | 83 +++++++++++++++++++++++++++++++++++++++++++++++++------------------------------
4 files changed, 76 insertions(+), 50 deletions(-)
diff --git a/.rubocop.yml b/.rubocop.yml
@@ -1,4 +1,4 @@
-require:
+plugins:
   - rubocop-packaging
 
 AllCops:
diff --git a/Rakefile b/Rakefile
@@ -79,7 +79,7 @@ task :check_manifest do
 end
 
 task :rubocop_packaging do
-  if /^2\.[012]\./ =~ RUBY_VERSION
+  if /^(2\.|3\.[012]\.)/ =~ RUBY_VERSION
     puts "skipping rubocop-packaging checks on unsupported Ruby #{RUBY_VERSION}"
     next
   end
diff --git a/contrib/nix/Gemfile.lock b/contrib/nix/Gemfile.lock
@@ -11,8 +11,9 @@ GEM
     highline (3.1.2)
       reline
     io-console (0.8.0)
-    json (2.10.2)
-    language_server-protocol (3.17.0.4)
+    json (2.19.3)
+    language_server-protocol (3.17.0.5)
+    lint_roller (1.1.0)
     locale (2.1.4)
     lockfile (2.1.3)
     logger (1.7.0)
@@ -25,40 +26,44 @@ GEM
     minitest (5.25.5)
     ncursesw (1.4.13)
     optimist (3.2.1)
-    parallel (1.26.3)
-    parser (3.3.7.4)
+    parallel (1.28.0)
+    parser (3.3.11.1)
       ast (~> 2.4.1)
       racc
+    prism (1.9.0)
     pry (0.15.2)
       coderay (~> 1.1)
       method_source (~> 1.0)
     racc (1.8.1)
     rainbow (3.1.1)
     rake (13.2.1)
-    regexp_parser (2.9.0)
+    regexp_parser (2.12.0)
     reline (0.6.1)
       io-console (~> 0.5)
-    rexml (3.2.6)
     rmail (1.1.4)
     rr (1.2.1)
-    rubocop (1.63.2)
+    rubocop (1.86.0)
       json (~> 2.3)
-      language_server-protocol (>= 3.17.0)
+      language_server-protocol (~> 3.17.0.2)
+      lint_roller (~> 1.1.0)
       parallel (~> 1.10)
       parser (>= 3.3.0.2)
       rainbow (>= 2.2.2, < 4.0)
-      regexp_parser (>= 1.8, < 3.0)
-      rexml (>= 3.2.5, < 4.0)
-      rubocop-ast (>= 1.31.1, < 2.0)
+      regexp_parser (>= 2.9.3, < 3.0)
+      rubocop-ast (>= 1.49.0, < 2.0)
       ruby-progressbar (~> 1.7)
-      unicode-display_width (>= 2.4.0, < 3.0)
-    rubocop-ast (1.31.2)
-      parser (>= 3.3.0.4)
-    rubocop-packaging (0.5.2)
-      rubocop (>= 1.33, < 2.0)
+      unicode-display_width (>= 2.4.0, < 4.0)
+    rubocop-ast (1.49.1)
+      parser (>= 3.3.7.2)
+      prism (~> 1.7)
+    rubocop-packaging (0.6.0)
+      lint_roller (~> 1.1.0)
+      rubocop (>= 1.72.1, < 2.0)
     ruby-progressbar (1.13.0)
     unicode (0.4.4.5)
-    unicode-display_width (2.5.0)
+    unicode-display_width (3.2.0)
+      unicode-emoji (~> 4.1)
+    unicode-emoji (4.2.0)
     xapian-ruby (1.4.27)
 
 PLATFORMS
diff --git a/contrib/nix/gemset.nix b/contrib/nix/gemset.nix
@@ -86,20 +86,30 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "01lbdaizhkxmrw4y8j3wpvsryvnvzmg0pfs56c52laq2jgdfmq1l";
+      sha256 = "0il6qxkxqql7n7sgrws5bi5a36v51dswqcxb6j6gm8aj62shp6r8";
       type = "gem";
     };
-    version = "2.10.2";
+    version = "2.19.3";
   };
   language_server-protocol = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "0scnz2fvdczdgadvjn0j9d49118aqm3hj66qh8sd2kv6g1j65164";
+      sha256 = "1k0311vah76kg5m6zr7wmkwyk5p2f9d9hyckjpn3xgr83ajkj7px";
       type = "gem";
     };
-    version = "3.17.0.4";
+    version = "3.17.0.5";
+  };
+  lint_roller = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11yc0d84hsnlvx8cpk4cbj6a4dz9pk0r1k29p0n1fz9acddq831c";
+      type = "gem";
+    };
+    version = "1.1.0";
   };
   locale = {
     groups = ["default"];
@@ -207,10 +217,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1vy7sjs2pgz4i96v5yk9b7aafbffnvq7nn419fgvw55qlavsnsyq";
+      sha256 = "0w697335hi5dk5ay9kyn53399sy87y8v0y6ij93m5wmshhadxrik";
       type = "gem";
     };
-    version = "1.26.3";
+    version = "1.28.0";
   };
   parser = {
     dependencies = ["ast" "racc"];
@@ -218,10 +228,20 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1awq9rswd3mj8sr5acp1ca6nbkk57zpw8388j7w163i8fhi2h9ib";
+      sha256 = "0m2xqvn1la62hji1mn04y59giikww95p2hs0r4y2rrz3mdxcwyni";
+      type = "gem";
+    };
+    version = "3.3.11.1";
+  };
+  prism = {
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "11ggfikcs1lv17nhmhqyyp6z8nq5pkfcj6a904047hljkxm0qlvv";
       type = "gem";
     };
-    version = "3.3.7.4";
+    version = "1.9.0";
   };
   pry = {
     dependencies = ["coderay" "method_source"];
@@ -269,10 +289,10 @@
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1ndxm0xnv27p4gv6xynk6q41irckj76q1jsqpysd9h6f86hhp841";
+      sha256 = "1fwfw26a32rps78920nn29shqg2zmqv72i89j1fap41isshida9m";
       type = "gem";
     };
-    version = "2.9.0";
+    version = "2.12.0";
   };
   reline = {
     dependencies = ["io-console"];
@@ -285,16 +305,6 @@
     };
     version = "0.6.1";
   };
-  rexml = {
-    groups = ["default"];
-    platforms = [];
-    source = {
-      remotes = ["https://rubygems.org"];
-      sha256 = "05i8518ay14kjbma550mv0jm8a6di8yp5phzrd8rj44z9qnrlrp0";
-      type = "gem";
-    };
-    version = "3.2.6";
-  };
   rmail = {
     groups = ["default"];
     platforms = [];
@@ -316,37 +326,37 @@
     version = "1.2.1";
   };
   rubocop = {
-    dependencies = ["json" "language_server-protocol" "parallel" "parser" "rainbow" "regexp_parser" "rexml" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
+    dependencies = ["json" "language_server-protocol" "lint_roller" "parallel" "parser" "rainbow" "regexp_parser" "rubocop-ast" "ruby-progressbar" "unicode-display_width"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1dmj955zbvhlrzzag6hc77xdyyzn8ihvffpjalnzn5asxhz7jcdl";
+      sha256 = "11nicljvmns665vryhfdrpssnk5dn1mxdap7ynprpgkfw5piiwag";
       type = "gem";
     };
-    version = "1.63.2";
+    version = "1.86.0";
   };
   rubocop-ast = {
-    dependencies = ["parser"];
+    dependencies = ["parser" "prism"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1v3q8n48w8h809rqbgzihkikr4g3xk72m1na7s97jdsmjjq6y83w";
+      sha256 = "0dahfpnzz63hyqxa03x8rypnrxzwyvh4i5a8ri34bzpnf3pg64j4";
       type = "gem";
     };
-    version = "1.31.2";
+    version = "1.49.1";
   };
   rubocop-packaging = {
-    dependencies = ["rubocop"];
+    dependencies = ["lint_roller" "rubocop"];
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1iqgsbpj7y8ksddbb9gj5vpzs2y8202khyk2mcc165kkfmvm6rx3";
+      sha256 = "19sqypdixw125l9l0wy8vjbj876m1jdj9lj82vdqqvwfnh7vv4pv";
       type = "gem";
     };
-    version = "0.5.2";
+    version = "0.6.0";
   };
   ruby-progressbar = {
     groups = ["default"];
@@ -369,14 +379,25 @@
     version = "0.4.4.5";
   };
   unicode-display_width = {
+    dependencies = ["unicode-emoji"];
+    groups = ["default"];
+    platforms = [];
+    source = {
+      remotes = ["https://rubygems.org"];
+      sha256 = "0hiwhnqpq271xqari6mg996fgjps42sffm9cpk6ljn8sd2srdp8c";
+      type = "gem";
+    };
+    version = "3.2.0";
+  };
+  unicode-emoji = {
     groups = ["default"];
     platforms = [];
     source = {
       remotes = ["https://rubygems.org"];
-      sha256 = "1d0azx233nags5jx3fqyr23qa2rhgzbhv8pxp46dgbg1mpf82xky";
+      sha256 = "03zqn207zypycbz5m9mn7ym763wgpk7hcqbkpx02wrbm1wank7ji";
       type = "gem";
     };
-    version = "2.5.0";
+    version = "4.2.0";
   };
   xapian-ruby = {
     groups = ["default"];