Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package trytond for openSUSE:Factory checked 
in at 2025-05-12 16:48:15
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/trytond (Old)
 and      /work/SRC/openSUSE:Factory/.trytond.new.30101 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "trytond"

Mon May 12 16:48:15 2025 rev:104 rq:1276459 version:6.0.62

Changes:
--------
--- /work/SRC/openSUSE:Factory/trytond/trytond.changes  2025-03-12 
20:13:57.416111650 +0100
+++ /work/SRC/openSUSE:Factory/.trytond.new.30101/trytond.changes       
2025-05-12 16:51:48.992073787 +0200
@@ -1,0 +2,5 @@
+Sat May  3 10:54:59 UTC 2025 - Axel Braun <axel.br...@gmx.de>
+
+- Version 6.0.62 - Bugfix Release
+
+-------------------------------------------------------------------

Old:
----
  trytond-6.0.60.tar.gz

New:
----
  trytond-6.0.62.tar.gz

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

Other differences:
------------------
++++++ trytond.spec ++++++
--- /var/tmp/diff_new_pack.TauSGf/_old  2025-05-12 16:51:49.720104375 +0200
+++ /var/tmp/diff_new_pack.TauSGf/_new  2025-05-12 16:51:49.720104375 +0200
@@ -30,7 +30,7 @@
 %endif
 
 Name:           trytond
-Version:        %{majorver}.60
+Version:        %{majorver}.62
 Release:        0
 Summary:        An Enterprise Resource Planning (ERP) system
 License:        GPL-3.0-or-later

++++++ trytond-6.0.60.tar.gz -> trytond-6.0.62.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/CHANGELOG new/trytond-6.0.62/CHANGELOG
--- old/trytond-6.0.60/CHANGELOG        2025-03-04 22:15:51.000000000 +0100
+++ new/trytond-6.0.62/CHANGELOG        2025-05-02 22:11:01.000000000 +0200
@@ -1,4 +1,14 @@
 
+Version 6.0.62 - 2025-05-02
+---------------------------
+* Bug fixes (see mercurial logs for details)
+
+
+Version 6.0.61 - 2025-04-02
+---------------------------
+* Bug fixes (see mercurial logs for details)
+
+
 Version 6.0.60 - 2025-03-04
 ---------------------------
 * Bug fixes (see mercurial logs for details)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/PKG-INFO new/trytond-6.0.62/PKG-INFO
--- old/trytond-6.0.60/PKG-INFO 2025-03-04 22:15:54.574889400 +0100
+++ new/trytond-6.0.62/PKG-INFO 2025-05-02 22:11:04.014848000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: trytond
-Version: 6.0.60
+Version: 6.0.62
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Download-URL: http://downloads.tryton.org/6.0/
@@ -84,6 +84,7 @@
 Dynamic: home-page
 Dynamic: keywords
 Dynamic: license
+Dynamic: license-file
 Dynamic: platform
 Dynamic: project-url
 Dynamic: provides-extra
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/doc/topics/domain.rst 
new/trytond-6.0.62/doc/topics/domain.rst
--- old/trytond-6.0.60/doc/topics/domain.rst    2025-01-11 02:26:34.000000000 
+0100
+++ new/trytond-6.0.62/doc/topics/domain.rst    2025-03-29 10:07:55.000000000 
+0100
@@ -40,6 +40,7 @@
     .. note::
       Negative operators match records for which any of the field before the
       last dot is empty.
+      Except if the operand is or contains ``None``.
 
 .. warning::
     For :class:`trytond.model.fields.Reference`, an extra ending clause is
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/__init__.py 
new/trytond-6.0.62/trytond/__init__.py
--- old/trytond-6.0.60/trytond/__init__.py      2025-02-16 11:58:15.000000000 
+0100
+++ new/trytond-6.0.62/trytond/__init__.py      2025-04-03 00:39:39.000000000 
+0200
@@ -7,7 +7,7 @@
 
 from lxml import etree, objectify
 
-__version__ = "6.0.60"
+__version__ = "6.0.62"
 
 os.environ['TZ'] = 'UTC'
 if hasattr(time, 'tzset'):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/bus.py 
new/trytond-6.0.62/trytond/bus.py
--- old/trytond-6.0.60/trytond/bus.py   2025-01-11 02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/bus.py   2025-03-29 10:07:55.000000000 +0100
@@ -180,6 +180,8 @@
                     for event in events:
                         event.set()
                 now = time.time()
+                # Keep connected
+                cursor.execute('SELECT 1')
         except Exception:
             logger.error('bus listener on "%s" crashed', database,
                 exc_info=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/cache.py 
new/trytond-6.0.62/trytond/cache.py
--- old/trytond-6.0.60/trytond/cache.py 2025-01-11 02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/cache.py 2025-03-29 10:07:55.000000000 +0100
@@ -384,6 +384,8 @@
                             inst = cls._instances[name]
                             inst._clear(dbname)
                 cls._clean_last = datetime.now()
+                # Keep connected
+                cursor.execute('SELECT 1')
         except Exception:
             logger.error(
                 "cache listener on '%s' crashed", dbname, exc_info=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/ir/translation.py 
new/trytond-6.0.62/trytond/ir/translation.py
--- old/trytond-6.0.60/trytond/ir/translation.py        2025-02-28 
23:19:39.000000000 +0100
+++ new/trytond-6.0.62/trytond/ir/translation.py        2025-04-30 
00:07:36.000000000 +0200
@@ -1354,8 +1354,7 @@
         for translation in translations:
             if getattr(self, '_clean_%s' % translation.type)(translation):
                 to_delete.append(translation.id)
-            elif translation.type in ('field', 'model', 'wizard_button',
-                    'help'):
+            elif translation.type in {'field', 'model', 'wizard_button'}:
                 key = (translation.module, translation.lang, translation.type,
                     translation.name, translation.res_id)
                 if key in keys:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/model/fields/many2one.py 
new/trytond-6.0.62/trytond/model/fields/many2one.py
--- old/trytond-6.0.60/trytond/model/fields/many2one.py 2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/model/fields/many2one.py 2025-03-29 
10:07:55.000000000 +0100
@@ -236,7 +236,10 @@
                 target_domain = [target_domain, rule_domain]
             _, expression = Target.search_domain(
                 target_domain, tables=target_tables)
-        if operator.startswith('not') or operator == '!=':
+        if ((operator.startswith('not') and not (
+                        operator == 'not in'
+                        and None in value))
+                or (operator == '!=' and value is not None)):
             expression |= column == Null
         return expression
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/model/fields/reference.py 
new/trytond-6.0.62/trytond/model/fields/reference.py
--- old/trytond-6.0.60/trytond/model/fields/reference.py        2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/model/fields/reference.py        2025-03-29 
10:07:55.000000000 +0100
@@ -189,7 +189,10 @@
                     Position(',', column) + Literal(1)),
                 Model.id.sql_type().base).in_(query)
             & column.ilike(target + ',%'))
-        if operator.startswith('not') or operator == '!=':
+        if ((operator.startswith('not') and not (
+                        operator == 'not in'
+                        and None in value))
+                or (operator == '!=' and value is not None)):
             expression |= column == Null
         return expression
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/model/match.py 
new/trytond-6.0.62/trytond/model/match.py
--- old/trytond-6.0.60/trytond/model/match.py   2025-01-11 02:26:34.000000000 
+0100
+++ new/trytond-6.0.62/trytond/model/match.py   2025-03-29 10:07:55.000000000 
+0100
@@ -11,6 +11,8 @@
         and matching value as value'''
         for field_name, pattern_value in pattern.items():
             value = getattr(self, field_name)
+            if value == '':
+                value = None
             if not match_none and value is None:
                 continue
             field = self._fields[field_name]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/model/modelsql.py 
new/trytond-6.0.62/trytond/model/modelsql.py
--- old/trytond-6.0.60/trytond/model/modelsql.py        2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/model/modelsql.py        2025-03-29 
10:07:56.000000000 +0100
@@ -359,6 +359,7 @@
                         gettext('ir.msg_required_validation_record',
                             **cls.__names__(field_name)))
         for name, _, error in cls._sql_constraints:
+            name = cls._table + '_' + name
             if backend.TableHandler.convert_name(name) in str(exception):
                 raise SQLConstraintError(gettext(error))
         # Check foreign key in last because this can raise false positive
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/model/modelstorage.py 
new/trytond-6.0.62/trytond/model/modelstorage.py
--- old/trytond-6.0.60/trytond/model/modelstorage.py    2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/model/modelstorage.py    2025-04-30 
00:14:03.000000000 +0200
@@ -990,7 +990,8 @@
         to_create, to_create_translations = [], []
         to_write, to_write_translations = [], []
         languages = set()
-        while len(data):
+        data = data.copy()
+        while data:
             (row, _, translate) = \
                 process_lines(data, [], fields_def)
             if dispatch(to_create, to_write, row):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/tests/test_field_many2one.py 
new/trytond-6.0.62/trytond/tests/test_field_many2one.py
--- old/trytond-6.0.60/trytond/tests/test_field_many2one.py     2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/tests/test_field_many2one.py     2025-03-29 
10:07:55.000000000 +0100
@@ -485,6 +485,21 @@
                 ])
         self.assertListEqual(result, [record])
 
+        result = Many2One.search([
+                ('many2one.value', '!=', None),
+                ])
+        self.assertListEqual(result, [])
+
+        result = Many2One.search([
+                ('many2one.value', 'not in', [1]),
+                ])
+        self.assertListEqual(result, [record])
+
+        result = Many2One.search([
+                ('many2one.value', 'not in', [1, None]),
+                ])
+        self.assertListEqual(result, [])
+
     @with_transaction()
     def test_context_attribute(self):
         "Test context on many2one attribute"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond/tests/test_field_reference.py 
new/trytond-6.0.62/trytond/tests/test_field_reference.py
--- old/trytond-6.0.60/trytond/tests/test_field_reference.py    2025-01-11 
02:26:34.000000000 +0100
+++ new/trytond-6.0.62/trytond/tests/test_field_reference.py    2025-03-29 
10:07:55.000000000 +0100
@@ -373,6 +373,25 @@
 
         self.assertListEqual(result, [reference])
 
+        result = Reference.search([
+                ('reference.name', '!=', None, Target.__name__),
+                ])
+
+        self.assertListEqual(result, [])
+
+        result = Reference.search([
+                ('reference.name', 'not in', ["Target"], Target.__name__),
+                ])
+
+        self.assertListEqual(result, [reference])
+
+        result = Reference.search([
+                ('reference.name', 'not in', ["Target", None],
+                    Target.__name__),
+                ])
+
+        self.assertListEqual(result, [])
+
     @with_transaction()
     def test_write_string(self):
         "Test write reference string"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/trytond-6.0.60/trytond.egg-info/PKG-INFO 
new/trytond-6.0.62/trytond.egg-info/PKG-INFO
--- old/trytond-6.0.60/trytond.egg-info/PKG-INFO        2025-03-04 
22:15:53.000000000 +0100
+++ new/trytond-6.0.62/trytond.egg-info/PKG-INFO        2025-05-02 
22:11:03.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.2
+Metadata-Version: 2.4
 Name: trytond
-Version: 6.0.60
+Version: 6.0.62
 Summary: Tryton server
 Home-page: http://www.tryton.org/
 Download-URL: http://downloads.tryton.org/6.0/
@@ -84,6 +84,7 @@
 Dynamic: home-page
 Dynamic: keywords
 Dynamic: license
+Dynamic: license-file
 Dynamic: platform
 Dynamic: project-url
 Dynamic: provides-extra

Reply via email to