Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package vit for openSUSE:Factory checked in 
at 2026-03-30 18:32:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/vit (Old)
 and      /work/SRC/openSUSE:Factory/.vit.new.1999 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "vit"

Mon Mar 30 18:32:49 2026 rev:13 rq:1343634 version:2.3.4

Changes:
--------
--- /work/SRC/openSUSE:Factory/vit/vit.changes  2025-03-13 22:05:25.092572023 
+0100
+++ /work/SRC/openSUSE:Factory/.vit.new.1999/vit.changes        2026-03-30 
18:37:07.137656580 +0200
@@ -1,0 +2,15 @@
+Sun Mar 29 22:51:53 UTC 2026 - Mia Herkt <[email protected]>
+
+- Update to 2.3.4
+  * Support Taskwarrior 'grey' color aliases
+  * Guard empty autocomplete tab options
+  * default to string type for UDA if no type configured
+    gh#vit-project/vit#368
+  * Use 'is not None' for None checks
+  * Fix UDA string sorting (after reset)
+  * don't strip trailing commas from UDA values, they are valid
+  * add uda_config attribute to TaskParser instance
+  * modernize build script
+  * vit-watchdog: fix signal include
+
+-------------------------------------------------------------------

Old:
----
  vit-2.3.3.tar.gz

New:
----
  vit-2.3.4.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ vit.spec ++++++
--- /var/tmp/diff_new_pack.hLunjQ/_old  2026-03-30 18:37:07.769683005 +0200
+++ /var/tmp/diff_new_pack.hLunjQ/_new  2026-03-30 18:37:07.773683171 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package vit
 #
-# Copyright (c) 2025 SUSE LLC
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,17 +17,17 @@
 
 
 Name:           vit
-Version:        2.3.3
+Version:        2.3.4
 Release:        0
 Summary:        Visual Interactive Taskwarrior full-screen terminal interface
 License:        MIT
-Group:          Productivity/Office/Organizers
 URL:            https://github.com/scottkosty/vit
 Source:         
https://files.pythonhosted.org/packages/source/v/vit/vit-%{version}.tar.gz
 BuildRequires:  bash-completion
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
 BuildRequires:  python3-base >= 3.7
+BuildRequires:  python3-pip
 BuildRequires:  python3-setuptools
 BuildRequires:  python3-tasklib
 BuildRequires:  python3-typing_extensions
@@ -55,20 +55,21 @@
 %setup -q -n vit-%{version}
 
 %build
-%python3_build
+%python3_pyproject_wheel
 
 %install
-%python3_install
+%python3_pyproject_install
 install -Dm644 scripts/bash/vit.bash_completion 
%{buildroot}%{_datadir}/bash-completion/completions/vit
 %fdupes %{buildroot}%{python3_sitelib}
 
 %check
-python3 -m unittest
+%python3_pyunittest
 
 %files
 %doc COLOR.md CUSTOMIZE.md README.md
 %license LICENSE
 %{_bindir}/vit
 %{_datadir}/bash-completion/completions/vit
-%{python3_sitelib}/*
+%{python3_sitelib}/vit
+%{python3_sitelib}/vit-%{version}*-info
 

++++++ vit-2.3.3.tar.gz -> vit-2.3.4.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/PKG-INFO new/vit-2.3.4/PKG-INFO
--- old/vit-2.3.3/PKG-INFO      2025-02-22 15:51:02.195426700 +0100
+++ new/vit-2.3.4/PKG-INFO      2026-03-17 23:42:44.946233300 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: vit
-Version: 2.3.3
+Version: 2.3.4
 Summary: Visual Interactive Taskwarrior full-screen terminal interface
 Home-page: https://github.com/vit-project/vit
 Author: Chad Phillips
@@ -26,6 +26,7 @@
 Dynamic: description-content-type
 Dynamic: home-page
 Dynamic: keywords
+Dynamic: license-file
 Dynamic: requires-dist
 Dynamic: requires-python
 Dynamic: summary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/test/test_color_mappings.py 
new/vit-2.3.4/test/test_color_mappings.py
--- old/vit-2.3.3/test/test_color_mappings.py   1970-01-01 01:00:00.000000000 
+0100
+++ new/vit-2.3.4/test/test_color_mappings.py   2026-03-17 23:37:41.000000000 
+0100
@@ -0,0 +1,20 @@
+import unittest
+
+from vit.color_mappings import task_256_to_urwid_256
+
+
+class TestColorMappings(unittest.TestCase):
+
+    def test_maps_gray_and_grey_base_name(self):
+        mapping = task_256_to_urwid_256()
+        self.assertEqual(mapping['gray'], 'light gray')
+        self.assertEqual(mapping['grey'], 'light gray')
+
+    def test_maps_grey_scale_variants(self):
+        mapping = task_256_to_urwid_256()
+        self.assertEqual(mapping['gray10'], mapping['grey10'])
+        self.assertEqual(mapping['grey10'], 'g40')
+
+
+if __name__ == '__main__':
+    unittest.main()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/autocomplete.py 
new/vit-2.3.4/vit/autocomplete.py
--- old/vit-2.3.3/vit/autocomplete.py   2023-04-14 06:10:49.000000000 +0200
+++ new/vit-2.3.4/vit/autocomplete.py   2026-01-16 15:44:11.000000000 +0100
@@ -252,6 +252,9 @@
         return len(self.tab_options) - 1 if reverse else 0
 
     def increment_index(self, reverse):
+        if len(self.tab_options) == 0:
+            self.idx = None
+            return
         if self.idx == None:
             self.idx = self.initial_idx(reverse)
         else:
@@ -264,6 +267,9 @@
         tabbed_text = ''
         edit_pos = None
         if self.root_search:
+            if len(self.tab_options) == 0:
+                self.deactivate()
+                return text, None
             self.increment_index(reverse)
             tabbed_text = self.tab_options[self.idx]
         else:
@@ -280,4 +286,3 @@
                     self.increment_index(reverse)
                     tabbed_text, edit_pos = 
self.assemble(self.tab_options[self.idx])
         return tabbed_text, edit_pos
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/color_mappings.py 
new/vit-2.3.4/vit/color_mappings.py
--- old/vit-2.3.3/vit/color_mappings.py 2023-07-07 03:25:46.000000000 +0200
+++ new/vit-2.3.4/vit/color_mappings.py 2026-03-17 23:37:41.000000000 +0100
@@ -9,6 +9,7 @@
         'cyan': 'dark cyan',
         'magenta': 'dark magenta',
         'gray': 'light gray',
+        'grey': 'light gray',
         'yellow': 'brown',
         'color0': 'black',
         'color1': 'dark red',
@@ -52,10 +53,12 @@
     color_map = {}
     for i in range(0, 24):
         gray_key = 'gray%d' % i
+        grey_key = 'grey%d' % i
         color_key = 'color%d' % (i + 232)
         # NOTE: This is an approximation of the conversion, close enough!
         value = 'g%d' % (i * 4)
         color_map[gray_key] = value
+        color_map[grey_key] = value
         color_map[color_key] = value
     return color_map
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/config_parser.py 
new/vit-2.3.4/vit/config_parser.py
--- old/vit-2.3.3/vit/config_parser.py  2023-09-17 17:28:41.000000000 +0200
+++ new/vit-2.3.4/vit/config_parser.py  2025-04-22 18:40:45.000000000 +0200
@@ -248,6 +248,7 @@
     def set_config_data(self):
         self.print_empty_columns = 
self.is_truthy(self.subtree('print.empty.columns'))
         self.priority_values = self.get_priority_values()
+        self.uda_config = self.get_uda_config()
 
     def get_task_config(self):
         self.task_config = []
@@ -279,6 +280,25 @@
     def get_priority_values(self):
         return self.subtree('uda.priority.values').split(',')
 
+    def is_string_uda(self, uda_data):
+        return 'type' in uda_data and uda_data['type'].strip() == 'string'
+
+    def parse_uda_string_values(self, uda_data):
+        if 'values' in uda_data:
+            values_list = uda_data['values'].split(',')
+            values_index = {v: i for i, v in enumerate(values_list)}
+            return values_list, values_index
+        return None, None
+
+    def get_uda_config(self):
+        uda_config = self.subtree('uda.')
+        for uda_data in uda_config.values():
+            if self.is_string_uda(uda_data):
+                values_list, values_index = 
self.parse_uda_string_values(uda_data)
+                uda_data['values_list'] = values_list
+                uda_data['values_index'] = values_index
+        return uda_config
+
     def transform_string_leaves(self, hierarchy):
         if hierarchy in CONFIG_STRING_LEAVES:
             hierarchy += '.%s' % CONFIG_STRING_LEAVES_DEFAULT_BRANCH
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/task_list.py 
new/vit-2.3.4/vit/task_list.py
--- old/vit-2.3.3/vit/task_list.py      2023-07-07 03:25:46.000000000 +0200
+++ new/vit-2.3.4/vit/task_list.py      2026-01-16 15:44:11.000000000 +0100
@@ -177,7 +177,7 @@
     def sort(self):
         if 'sort' in self.report:
             for column, order, collate in reversed(self.report['sort']):
-                def comparator(first, second):
+                def comparator_default(first, second):
                     if first[column] is not None and second[column] is not 
None:
                         return -1 if first[column] < second[column] else 1 if 
first[column] > second[column] else 0
                     elif first[column] is None and second[column] is None:
@@ -186,6 +186,20 @@
                         return -1
                     elif first[column] is None and second[column] is not None:
                         return 1
+
+                def comparator_uda_string(values_index, first, second):
+                    a, b = first[column], second[column]
+                    default_index = len(values_index)
+                    a_index = values_index.get(a or '', default_index)
+                    b_index = values_index.get(b or '', default_index)
+                    return (a_index > b_index) - (a_index < b_index)
+
+                uda = self.task_config.uda_config.get(column)
+                if uda is not None and uda.get('type') == 'string':
+                    values_index = uda.get('values_index')
+                    comparator = partial(comparator_uda_string, values_index)
+                else:
+                    comparator = comparator_default
                 if order and order == 'descending':
                     self.tasks = sorted(self.tasks, 
key=cmp_to_key(comparator), reverse=True)
                 else:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/uda.py new/vit-2.3.4/vit/uda.py
--- old/vit-2.3.3/vit/uda.py    2020-12-24 04:52:45.000000000 +0100
+++ new/vit-2.3.4/vit/uda.py    2025-06-24 18:37:22.000000000 +0200
@@ -7,5 +7,5 @@
 def get_configured(task_config):
     subtree = task_config.subtree(r'^uda\.', walk_subtree=False)
     if 'uda' in subtree:
-        return {k:v['type'] for k, v in subtree['uda'].items()}
+        return {k: v['type'] if 'type' in v else 'string' for k, v in 
subtree['uda'].items()}
     return {}
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit/version.py new/vit-2.3.4/vit/version.py
--- old/vit-2.3.3/vit/version.py        2025-02-22 15:29:52.000000000 +0100
+++ new/vit-2.3.4/vit/version.py        2026-03-17 23:39:47.000000000 +0100
@@ -1 +1 @@
-VIT = '2.3.3'
+VIT = '2.3.4'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit.egg-info/PKG-INFO 
new/vit-2.3.4/vit.egg-info/PKG-INFO
--- old/vit-2.3.3/vit.egg-info/PKG-INFO 2025-02-22 15:51:02.000000000 +0100
+++ new/vit-2.3.4/vit.egg-info/PKG-INFO 2026-03-17 23:42:44.000000000 +0100
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: vit
-Version: 2.3.3
+Version: 2.3.4
 Summary: Visual Interactive Taskwarrior full-screen terminal interface
 Home-page: https://github.com/vit-project/vit
 Author: Chad Phillips
@@ -26,6 +26,7 @@
 Dynamic: description-content-type
 Dynamic: home-page
 Dynamic: keywords
+Dynamic: license-file
 Dynamic: requires-dist
 Dynamic: requires-python
 Dynamic: summary
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/vit-2.3.3/vit.egg-info/SOURCES.txt 
new/vit-2.3.4/vit.egg-info/SOURCES.txt
--- old/vit-2.3.3/vit.egg-info/SOURCES.txt      2025-02-22 15:51:02.000000000 
+0100
+++ new/vit-2.3.4/vit.egg-info/SOURCES.txt      2026-03-17 23:42:44.000000000 
+0100
@@ -11,6 +11,7 @@
 setup.py
 scripts/bash/vit.bash_completion
 test/__init__.py
+test/test_color_mappings.py
 test/test_list_batcher.py
 vit/__init__.py
 vit/action_manager.py

Reply via email to