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 -
