Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-Cython for openSUSE:Factory 
checked in at 2022-03-23 20:15:19
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-Cython (Old)
 and      /work/SRC/openSUSE:Factory/.python-Cython.new.25692 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-Cython"

Wed Mar 23 20:15:19 2022 rev:64 rq:963357 version:0.29.28

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-Cython/python-Cython.changes      
2022-02-03 23:16:48.344482012 +0100
+++ /work/SRC/openSUSE:Factory/.python-Cython.new.25692/python-Cython.changes   
2022-03-23 20:15:21.998361165 +0100
@@ -1,0 +2,11 @@
+Sun Mar 20 20:33:02 UTC 2022 - Dirk M??ller <[email protected]>
+
+- update to 0.29.28:
+  * Due to backwards incompatible changes in CPython 3.11a4, the feature flags
+    ``CYTHON_FAST_THREAD_STATE`` and ``CYTHON_USE_EXC_INFO_STACK`` are now 
disabled
+    in Python 3.11 and later.  They are enabled again in Cython 3.0.
+    Patch by David Woods.  (Github issue #4610)
+  * A C compiler warning in older PyPy versions was resolved.
+    Patch by Matti Picus.  (Github issue #4236)
+
+-------------------------------------------------------------------

Old:
----
  Cython-0.29.27.tar.gz

New:
----
  Cython-0.29.28.tar.gz

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

Other differences:
------------------
++++++ python-Cython.spec ++++++
--- /var/tmp/diff_new_pack.I1RIR9/_old  2022-03-23 20:15:22.830361596 +0100
+++ /var/tmp/diff_new_pack.I1RIR9/_new  2022-03-23 20:15:22.834361598 +0100
@@ -20,11 +20,11 @@
 %define         oldpython python
 %bcond_with test
 Name:           python-Cython
-Version:        0.29.27
+Version:        0.29.28
 Release:        0
 Summary:        The Cython compiler for writing C extensions for the Python 
language
 License:        Apache-2.0
-URL:            http://www.cython.org
+URL:            https://cython.org/
 Source:         
https://files.pythonhosted.org/packages/source/C/Cython/Cython-%{version}.tar.gz
 Source1:        python-Cython-rpmlintrc
 BuildRequires:  %{python_module devel}

++++++ Cython-0.29.27.tar.gz -> Cython-0.29.28.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/.gitrev new/Cython-0.29.28/.gitrev
--- old/Cython-0.29.27/.gitrev  2022-01-28 18:21:41.152819600 +0100
+++ new/Cython-0.29.28/.gitrev  2022-02-17 00:58:34.915900500 +0100
@@ -1 +1 @@
-229a4531780863c8a5c311d6b3c70a545988f85f
+27b6709241461f620fb25756ef9f1192cc4f589a
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/CHANGES.rst 
new/Cython-0.29.28/CHANGES.rst
--- old/Cython-0.29.27/CHANGES.rst      2022-01-28 18:21:38.020794200 +0100
+++ new/Cython-0.29.28/CHANGES.rst      2022-02-17 00:58:31.495433000 +0100
@@ -2,6 +2,21 @@
 Cython Changelog
 ================
 
+0.29.28 (2022-02-17)
+====================
+
+Bugs fixed
+----------
+
+* Due to backwards incompatible changes in CPython 3.11a4, the feature flags
+  ``CYTHON_FAST_THREAD_STATE`` and ``CYTHON_USE_EXC_INFO_STACK`` are now 
disabled
+  in Python 3.11 and later.  They are enabled again in Cython 3.0.
+  Patch by David Woods.  (Github issue #4610)
+
+* A C compiler warning in older PyPy versions was resolved.
+  Patch by Matti Picus.  (Github issue #4236)
+
+
 0.29.27 (2022-01-28)
 ====================
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/Cython/Shadow.py 
new/Cython-0.29.28/Cython/Shadow.py
--- old/Cython-0.29.27/Cython/Shadow.py 2022-01-28 18:21:38.040794400 +0100
+++ new/Cython-0.29.28/Cython/Shadow.py 2022-02-17 00:58:31.515433300 +0100
@@ -1,7 +1,7 @@
 # cython.* namespace for pure mode.
 from __future__ import absolute_import
 
-__version__ = "0.29.27"
+__version__ = "0.29.28"
 
 try:
     from __builtin__ import basestring
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/Cython/Utility/Builtins.c 
new/Cython-0.29.28/Cython/Utility/Builtins.c
--- old/Cython-0.29.27/Cython/Utility/Builtins.c        2022-01-28 
18:21:38.044794300 +0100
+++ new/Cython-0.29.28/Cython/Utility/Builtins.c        2022-02-17 
00:58:31.515433300 +0100
@@ -120,7 +120,7 @@
                 "code object passed to exec() may not contain free variables");
             goto bad;
         }
-        #if CYTHON_COMPILING_IN_PYPY || PY_VERSION_HEX < 0x030200B1
+        #if PY_VERSION_HEX < 0x030200B1 || (CYTHON_COMPILING_IN_PYPY && 
PYPY_VERSION_NUM < 0x07030400)
         result = PyEval_EvalCode((PyCodeObject *)o, globals, locals);
         #else
         result = PyEval_EvalCode(o, globals, locals);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/Cython/Utility/ModuleSetupCode.c 
new/Cython-0.29.28/Cython/Utility/ModuleSetupCode.c
--- old/Cython-0.29.27/Cython/Utility/ModuleSetupCode.c 2022-01-28 
18:21:38.044794300 +0100
+++ new/Cython-0.29.28/Cython/Utility/ModuleSetupCode.c 2022-02-17 
00:58:31.519433300 +0100
@@ -177,7 +177,10 @@
   #ifndef CYTHON_UNPACK_METHODS
     #define CYTHON_UNPACK_METHODS 1
   #endif
-  #ifndef CYTHON_FAST_THREAD_STATE
+  #if PY_VERSION_HEX >= 0x030B00A4
+    #undef CYTHON_FAST_THREAD_STATE
+    #define CYTHON_FAST_THREAD_STATE 0
+  #elif !defined(CYTHON_FAST_THREAD_STATE)
     #define CYTHON_FAST_THREAD_STATE 1
   #endif
   #ifndef CYTHON_FAST_PYCALL
@@ -194,7 +197,10 @@
   #ifndef CYTHON_USE_DICT_VERSIONS
     #define CYTHON_USE_DICT_VERSIONS (PY_VERSION_HEX >= 0x030600B1)
   #endif
-  #ifndef CYTHON_USE_EXC_INFO_STACK
+  #if PY_VERSION_HEX >= 0x030B00A4
+    #undef CYTHON_USE_EXC_INFO_STACK
+    #define CYTHON_USE_EXC_INFO_STACK 0
+  #elif !defined(CYTHON_USE_EXC_INFO_STACK)
     #define CYTHON_USE_EXC_INFO_STACK (PY_VERSION_HEX >= 0x030700A3)
   #endif
 #endif
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/PKG-INFO new/Cython-0.29.28/PKG-INFO
--- old/Cython-0.29.27/PKG-INFO 2022-01-28 18:21:46.624873600 +0100
+++ new/Cython-0.29.28/PKG-INFO 2022-02-17 00:58:40.736295700 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: Cython
-Version: 0.29.27
+Version: 0.29.28
 Summary: The Cython compiler for writing C extensions for the Python language.
 Home-page: http://cython.org/
 Author: Robert Bradshaw, Stefan Behnel, Dag Seljebotn, Greg Ewing, et al.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/runtests.py 
new/Cython-0.29.28/runtests.py
--- old/Cython-0.29.27/runtests.py      2022-01-28 18:21:38.064794500 +0100
+++ new/Cython-0.29.28/runtests.py      2022-02-17 00:58:31.539433500 +0100
@@ -614,6 +614,7 @@
         self.workdir = workdir
         self.selectors = selectors
         self.exclude_selectors = exclude_selectors
+        self.shard_num = options.shard_num
         self.annotate = options.annotate_source
         self.cleanup_workdir = options.cleanup_workdir
         self.cleanup_sharedlibs = options.cleanup_sharedlibs
@@ -690,7 +691,8 @@
 
             if ext == '.srctree':
                 if 'cpp' not in tags['tag'] or 'cpp' in self.languages:
-                    suite.addTest(EndToEndTest(filepath, workdir, 
self.cleanup_workdir, stats=self.stats))
+                    suite.addTest(EndToEndTest(
+                        filepath, workdir, self.cleanup_workdir, 
stats=self.stats, shard_num=self.shard_num))
                 continue
 
             # Choose the test suite.
@@ -720,7 +722,8 @@
                     if pyver
                 ]
                 if not min_py_ver or any(sys.version_info >= min_ver for 
min_ver in min_py_ver):
-                    suite.addTest(PureDoctestTestCase(module, 
os.path.join(path, filename), tags, stats=self.stats))
+                    suite.addTest(PureDoctestTestCase(
+                        module, os.path.join(path, filename), tags, 
stats=self.stats, shard_num=self.shard_num))
 
         return suite
 
@@ -781,6 +784,7 @@
                           cleanup_failures=self.cleanup_failures,
                           cython_only=self.cython_only,
                           doctest_selector=self.doctest_selector,
+                          shard_num=self.shard_num,
                           fork=self.fork,
                           language_level=self.language_level,
                           warning_errors=warning_errors,
@@ -823,7 +827,7 @@
                  expect_errors=False, expect_warnings=False, annotate=False, 
cleanup_workdir=True,
                  cleanup_sharedlibs=True, cleanup_failures=True, 
cython_only=False, doctest_selector=None,
                  fork=True, language_level=2, warning_errors=False,
-                 test_determinism=False,
+                 test_determinism=False, shard_num=0,
                  common_utility_dir=None, pythran_dir=None, stats=None):
         self.test_directory = test_directory
         self.tags = tags
@@ -840,6 +844,7 @@
         self.cleanup_failures = cleanup_failures
         self.cython_only = cython_only
         self.doctest_selector = doctest_selector
+        self.shard_num = shard_num
         self.fork = fork
         self.language_level = language_level
         self.warning_errors = warning_errors
@@ -850,7 +855,8 @@
         unittest.TestCase.__init__(self)
 
     def shortDescription(self):
-        return "compiling (%s%s) %s" % (self.language, "/pythran" if 
self.pythran_dir is not None else "", self.name)
+        return "[%d] compiling (%s%s) %s" % (
+            self.shard_num, self.language, "/pythran" if self.pythran_dir is 
not None else "", self.name)
 
     def setUp(self):
         from Cython.Compiler import Options
@@ -1246,7 +1252,8 @@
         if self.cython_only:
             return CythonCompileTestCase.shortDescription(self)
         else:
-            return "compiling (%s%s) and running %s" % (self.language, 
"/pythran" if self.pythran_dir is not None else "", self.name)
+            return "[%d] compiling (%s%s) and running %s" % (
+                self.shard_num, self.language, "/pythran" if self.pythran_dir 
is not None else "", self.name)
 
     def run(self, result=None):
         if result is None:
@@ -1371,15 +1378,17 @@
 
 
 class PureDoctestTestCase(unittest.TestCase):
-    def __init__(self, module_name, module_path, tags, stats=None):
+    def __init__(self, module_name, module_path, tags, stats=None, 
shard_num=0):
         self.tags = tags
         self.module_name = self.name = module_name
         self.module_path = module_path
         self.stats = stats
+        self.shard_num = shard_num
         unittest.TestCase.__init__(self, 'run')
 
     def shortDescription(self):
-        return "running pure doctests in %s" % self.module_name
+        return "[%d] running pure doctests in %s" % (
+            self.shard_num, self.module_name)
 
     def run(self, result=None):
         if result is None:
@@ -1484,7 +1493,8 @@
 
 class CythonUnitTestCase(CythonRunTestCase):
     def shortDescription(self):
-        return "compiling (%s) tests in %s" % (self.language, self.name)
+        return "[%d] compiling (%s) tests in %s" % (
+            self.shard_num, self.language, self.name)
 
     def run_tests(self, result, ext_so_path):
         with self.stats.time(self.name, self.language, 'import'):
@@ -1680,12 +1690,13 @@
     """
     cython_root = os.path.dirname(os.path.abspath(__file__))
 
-    def __init__(self, treefile, workdir, cleanup_workdir=True, stats=None):
+    def __init__(self, treefile, workdir, cleanup_workdir=True, stats=None, 
shard_num=0):
         self.name = os.path.splitext(os.path.basename(treefile))[0]
         self.treefile = treefile
         self.workdir = os.path.join(workdir, self.name)
         self.cleanup_workdir = cleanup_workdir
         self.stats = stats
+        self.shard_num = shard_num
         cython_syspath = [self.cython_root]
         for path in sys.path:
             if path.startswith(self.cython_root) and path not in 
cython_syspath:
@@ -1697,7 +1708,8 @@
         unittest.TestCase.__init__(self)
 
     def shortDescription(self):
-        return "End-to-end %s" % self.name
+        return "[%d] End-to-end %s" % (
+            self.shard_num, self.name)
 
     def setUp(self):
         from Cython.TestUtils import unpack_source_tree
@@ -1755,8 +1767,8 @@
                 res = -1
             if res != 0:
                 for c, o, e in zip(cmd, out, err):
-                    sys.stderr.write("%s\n%s\n%s\n\n" % (
-                        c, self._try_decode(o), self._try_decode(e)))
+                    sys.stderr.write("[%d] %s\n%s\n%s\n\n" % (
+                        self.shard_num, c, self._try_decode(o), 
self._try_decode(e)))
             self.assertEqual(0, res, "non-zero exit status")
         self.success = True
 
@@ -2501,7 +2513,31 @@
     except AttributeError:
         pass  # not available on PyPy
 
-    result = test_runner.run(test_suite)
+    enable_faulthandler = False
+    try:
+        import faulthandler
+    except ImportError:
+        pass
+    else:
+        enable_faulthandler = not faulthandler.is_enabled()
+        if enable_faulthandler:
+            faulthandler.enable()
+
+    # Run the collected tests.
+    try:
+        if options.shard_num > -1:
+            sys.stderr.write("Tests in shard %d/%d starting\n" % 
(options.shard_num, options.shard_count))
+        result = test_runner.run(test_suite)
+    except Exception as exc:
+        # Make sure we print exceptions also from shards.
+        if options.shard_num > -1:
+            sys.stderr.write("Tests in shard %d/%d crashed: %s\n" % 
(options.shard_num, options.shard_count, exc))
+        import traceback
+        traceback.print_exc()
+        raise
+    finally:
+        if enable_faulthandler:
+            faulthandler.disable()
 
     if common_utility_dir and options.shard_num < 0 and 
options.cleanup_workdir:
         shutil.rmtree(common_utility_dir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/tests/build/depfile.srctree 
new/Cython-0.29.28/tests/build/depfile.srctree
--- old/Cython-0.29.27/tests/build/depfile.srctree      2022-01-28 
18:21:38.064794500 +0100
+++ new/Cython-0.29.28/tests/build/depfile.srctree      2022-02-17 
00:58:31.543433400 +0100
@@ -1,5 +1,7 @@
+"""
 PYTHON -m Cython.Build.Cythonize -M foo.pyx
 PYTHON check.py
+"""
 
 ######## foo.pyx ########
 
@@ -25,9 +27,7 @@
 
 ######## check.py ########
 
-import os
-
 with open("foo.c.dep", "r") as f:
-    contents = f.read().replace("\n", " ").replace("\\", "")
+    contents = f.read().replace("\\\n", " ").replace("\n", " ")
 
 assert sorted(contents.split()) == ['bar.pxd', 'baz.pxi', 'foo.c:', 
'foo.pyx'], contents
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/tests/build/depfile_numpy.srctree 
new/Cython-0.29.28/tests/build/depfile_numpy.srctree
--- old/Cython-0.29.27/tests/build/depfile_numpy.srctree        2022-01-28 
18:21:38.064794500 +0100
+++ new/Cython-0.29.28/tests/build/depfile_numpy.srctree        2022-02-17 
00:58:31.543433400 +0100
@@ -1,7 +1,9 @@
 # tag: numpy
 
+"""
 PYTHON -m Cython.Build.Cythonize -M dep_np.pyx
 PYTHON check_np.py
+"""
 
 ######## dep_np.pyx ########
 
@@ -12,14 +14,13 @@
 
 ######## check_np.py ########
 
-import os
-import re
+import os.path
 
 import numpy as np
 import Cython
 
 with open("dep_np.c.dep", "r") as f:
-    contents = f.read().replace("\n", " ").replace("\\", "")
+    contents = f.read().replace('\\\n', ' ').replace('\n', ' ')
 
 contents = contents.split()
 
@@ -29,7 +30,11 @@
 np_prefix, _ = os.path.split(np.__file__)
 contents = [fname.replace(np_prefix, "np_prefix") for fname in contents]
 
-expected = ['cy_prefix/Includes/cpython/buffer.pxd',
+contents = [path.split(os.sep) for path in contents]
+contents.sort()
+
+expected = [path.split('/') for path in [
+    'cy_prefix/Includes/cpython/buffer.pxd',
     'cy_prefix/Includes/cpython/mem.pxd',
     'cy_prefix/Includes/cpython/object.pxd',
     'cy_prefix/Includes/cpython/ref.pxd',
@@ -37,13 +42,15 @@
     'cy_prefix/Includes/libc/stdio.pxd',
     'cy_prefix/Includes/libc/string.pxd',
     'dep_np.c:',
-    'dep_np.pyx',]
+    'dep_np.pyx',
+]]
 
 # Also account for legacy numpy versions, which do not ship
 # `__init__.pxd` hence the fallback is used:
-if 'cy_prefix/Includes/numpy/__init__.pxd' in contents:
-    expected.append('cy_prefix/Includes/numpy/__init__.pxd')
+if ['cy_prefix', 'Includes', 'numpy', '__init__.pxd'] in contents:
+    expected.append(['cy_prefix', 'Includes', 'numpy', '__init__.pxd'])
 else:
-    expected.append('np_prefix/__init__.pxd')
+    expected.append(['np_prefix', '__init__.pxd'])
 
-assert sorted(contents) == sorted(expected), sorted(contents)
+expected.sort()
+assert contents == expected, contents
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/Cython-0.29.27/tests/build/depfile_package.srctree 
new/Cython-0.29.28/tests/build/depfile_package.srctree
--- old/Cython-0.29.27/tests/build/depfile_package.srctree      2022-01-28 
18:21:38.064794500 +0100
+++ new/Cython-0.29.28/tests/build/depfile_package.srctree      2022-02-17 
00:58:31.543433400 +0100
@@ -1,24 +1,24 @@
-'''
+"""
 PYTHON -m Cython.Build.Cythonize -i pkg --depfile
 PYTHON package_test.py
-'''
+"""
 
 ######## package_test.py ########
 
-import os
+import os.path
 
 with open("pkg/test.c.dep", "r") as f:
-    contents = f.read().replace("\n", " ").replace("\\", "")
+    contents = f.read().replace("\\\n", " ").replace("\n", " ")
 
-assert sorted(contents.split()) == sorted(['test.c:', 'sub/incl.pxi', 
'test.pxd', 'test.pyx']), contents
+assert sorted(contents.split()) == sorted(['test.c:', os.path.join('sub', 
'incl.pxi'), 'test.pxd', 'test.pyx']), contents
 
 
 with open("pkg/sub/test.c.dep", "r") as f:
-    contents = f.read().replace("\n", " ").replace("\\", "")
+    contents = f.read().replace("\\\n", " ").replace("\n", " ")
 
 contents = [os.path.relpath(entry, '.')
             if os.path.isabs(entry) else entry for entry in contents.split()]
-assert sorted(contents) == sorted(['test.c:', 'incl.pxi', 'test.pyx', 
'../test.pxd']), contents
+assert sorted(contents) == sorted(['test.c:', 'incl.pxi', 'test.pyx', 
os.path.join('..', 'test.pxd')]), contents
 
 
 ######## pkg/__init__.py ########
@@ -55,4 +55,3 @@
 ######## pkg/sub/incl.pxi ########
 
 pass
-

Reply via email to