Hello community, here is the log from the commit of package python-billiard for openSUSE:Leap:15.2 checked in at 2020-04-25 19:04:35 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Leap:15.2/python-billiard (Old) and /work/SRC/openSUSE:Leap:15.2/.python-billiard.new.2738 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-billiard" Sat Apr 25 19:04:35 2020 rev:14 rq:796781 version:3.6.3.0 Changes: -------- --- /work/SRC/openSUSE:Leap:15.2/python-billiard/python-billiard.changes 2020-03-09 18:03:00.092747102 +0100 +++ /work/SRC/openSUSE:Leap:15.2/.python-billiard.new.2738/python-billiard.changes 2020-04-25 19:04:37.431536309 +0200 @@ -1,0 +2,14 @@ +Mon Apr 6 12:24:22 UTC 2020 - Matej Cepl <mc...@suse.com> + +- Stop building Python 2 packages (we avoid also weird constructs + with alternative noarch package). + +------------------------------------------------------------------- +Mon Mar 30 14:04:42 UTC 2020 - Marketa Calabkova <mcalabk...@suse.com> + +- Update to 3.6.3.0 + * Close the inqueue and outqueue when terminating to avoid file descriptor leakage. + * upgrade to pytest<6 + * Test against the latest Python 3.8 and PyPy3 release + +------------------------------------------------------------------- Old: ---- billiard-3.6.1.0.tar.gz New: ---- billiard-3.6.3.0.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-billiard.spec ++++++ --- /var/tmp/diff_new_pack.25YNRY/_old 2020-04-25 19:04:38.127537805 +0200 +++ /var/tmp/diff_new_pack.25YNRY/_new 2020-04-25 19:04:38.131537813 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-billiard # -# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. +# Copyright (c) 2020 SUSE LLC # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,8 +17,9 @@ %{?!python_module:%define python_module() python-%{**} python3-%{**}} +%define skip_python2 1 Name: python-billiard -Version: 3.6.1.0 +Version: 3.6.3.0 Release: 0 Summary: Python multiprocessing fork License: BSD-3-Clause @@ -27,17 +28,14 @@ Source: https://files.pythonhosted.org/packages/source/b/billiard/billiard-%{version}.tar.gz BuildRequires: %{python_module case >= 1.3.1} BuildRequires: %{python_module psutil} -BuildRequires: %{python_module pytest < 5} +BuildRequires: %{python_module pytest} BuildRequires: %{python_module setuptools} BuildRequires: fdupes BuildRequires: python-rpm-macros -BuildRequires: python2-devel # Documentation requirements BuildRequires: python3-Sphinx >= 0.5 Suggests: %{name}-doc = %{version} -%ifpython3 BuildArch: noarch -%endif %package -n %{name}-doc Summary: Documentation for %{name} @@ -72,13 +70,12 @@ %python_expand %fdupes %{buildroot}%{$python_sitearch} %check -%python_exec setup.py test +%pytest %files %{python_files} %doc CHANGES.txt README.rst %license LICENSE.txt -%python3_only %{python_sitelib}/* -%python2_only %{python_sitearch}/* +%{python_sitelib}/* %files -n %{name}-doc %doc Doc/html ++++++ billiard-3.6.1.0.tar.gz -> billiard-3.6.3.0.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/Makefile new/billiard-3.6.3.0/Makefile --- old/billiard-3.6.1.0/Makefile 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/Makefile 2020-02-27 08:57:44.000000000 +0100 @@ -115,7 +115,7 @@ $(TOX) test: - $(PYTHON) setup.py test + tox -e py cov: $(NOSETESTS) -xv --with-coverage --cover-html --cover-branch diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/PKG-INFO new/billiard-3.6.3.0/PKG-INFO --- old/billiard-3.6.1.0/PKG-INFO 2019-08-14 18:09:00.000000000 +0200 +++ new/billiard-3.6.3.0/PKG-INFO 2020-02-27 14:28:47.078489800 +0100 @@ -1,17 +1,17 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: billiard -Version: 3.6.1.0 +Version: 3.6.3.0 Summary: Python multiprocessing fork with improvements and bugfixes Home-page: https://github.com/celery/billiard Author: R Oudkerk / Python Software Foundation Author-email: python-...@python.org -Maintainer: Ask Solem -Maintainer-email: a...@celeryproject.org +Maintainer: Asif Saif Uddin +Maintainer-email: auv...@gmail.com License: BSD Description: ======== billiard ======== - :version: 3.6.0.0 + :version: 3.6.3.0 |build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp| @@ -75,6 +75,11 @@ `Python bug tracker <https://bugs.python.org/>`_. Issues related to billiard should be reported at https://github.com/celery/billiard/issues. + billiard as part of the Tidelift Subscription + ------------- + + The maintainers of billiard and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/pypi-billiard?utm_source=pypi-billiard&utm_medium=referral&utm_campaign=readme&utm_term=repo) + Keywords: multiprocessing pool process Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable @@ -87,11 +92,12 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: Jython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: POSIX Classifier: License :: OSI Approved :: BSD License Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Distributed Computing +Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/README.rst new/billiard-3.6.3.0/README.rst --- old/billiard-3.6.1.0/README.rst 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/README.rst 2020-02-27 10:34:44.000000000 +0100 @@ -1,7 +1,7 @@ ======== billiard ======== -:version: 3.6.0.0 +:version: 3.6.3.0 |build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp| @@ -64,3 +64,8 @@ Please report bugs related to multiprocessing at the `Python bug tracker <https://bugs.python.org/>`_. Issues related to billiard should be reported at https://github.com/celery/billiard/issues. + +billiard as part of the Tidelift Subscription +------------- + +The maintainers of billiard and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/pypi-billiard?utm_source=pypi-billiard&utm_medium=referral&utm_campaign=readme&utm_term=repo) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/billiard/__init__.py new/billiard-3.6.3.0/billiard/__init__.py --- old/billiard-3.6.1.0/billiard/__init__.py 2019-08-14 18:07:35.000000000 +0200 +++ new/billiard-3.6.3.0/billiard/__init__.py 2020-02-27 10:33:55.000000000 +0100 @@ -22,12 +22,12 @@ import sys from . import context -VERSION = (3, 6, 1, 0) +VERSION = (3, 6, 3, 0) __version__ = '.'.join(map(str, VERSION[0:4])) + "".join(VERSION[4:]) __author__ = 'R Oudkerk / Python Software Foundation' __author_email__ = 'python-...@python.org' -__maintainer__ = 'Ask Solem' -__contact__ = "a...@celeryproject.org" +__maintainer__ = 'Asif Saif Uddin' +__contact__ = "auv...@gmail.com" __homepage__ = "https://github.com/celery/billiard" __docformat__ = "restructuredtext" diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/billiard/pool.py new/billiard-3.6.3.0/billiard/pool.py --- old/billiard-3.6.1.0/billiard/pool.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/billiard/pool.py 2020-02-27 08:57:44.000000000 +0100 @@ -1694,6 +1694,11 @@ p.join() debug('pool workers joined') + if inqueue: + inqueue.close() + if outqueue: + outqueue.close() + @property def process_sentinels(self): return [w._popen.sentinel for w in self._pool] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/billiard/process.py new/billiard-3.6.3.0/billiard/process.py --- old/billiard-3.6.1.0/billiard/process.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/billiard/process.py 2020-02-02 01:14:19.000000000 +0100 @@ -296,7 +296,7 @@ try: sys.stdin.close() sys.stdin = open(os.devnull) - except (OSError, ValueError): + except (EnvironmentError, OSError, ValueError): pass old_process = _current_process _set_current_process(self) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/billiard/queues.py new/billiard-3.6.3.0/billiard/queues.py --- old/billiard-3.6.1.0/billiard/queues.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/billiard/queues.py 2020-02-02 01:14:19.000000000 +0100 @@ -365,6 +365,19 @@ # serialize the data before acquiring the lock self.send_payload(ForkingPickler.dumps(obj)) + def close(self): + if self._reader is not None: + try: + self._reader.close() + finally: + self._reader = None + + if self._writer is not None: + try: + self._writer.close() + finally: + self._writer = None + class SimpleQueue(_SimpleQueue): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/billiard.egg-info/PKG-INFO new/billiard-3.6.3.0/billiard.egg-info/PKG-INFO --- old/billiard-3.6.1.0/billiard.egg-info/PKG-INFO 2019-08-14 18:08:59.000000000 +0200 +++ new/billiard-3.6.3.0/billiard.egg-info/PKG-INFO 2020-02-27 14:28:46.000000000 +0100 @@ -1,17 +1,17 @@ -Metadata-Version: 1.2 +Metadata-Version: 2.1 Name: billiard -Version: 3.6.1.0 +Version: 3.6.3.0 Summary: Python multiprocessing fork with improvements and bugfixes Home-page: https://github.com/celery/billiard Author: R Oudkerk / Python Software Foundation Author-email: python-...@python.org -Maintainer: Ask Solem -Maintainer-email: a...@celeryproject.org +Maintainer: Asif Saif Uddin +Maintainer-email: auv...@gmail.com License: BSD Description: ======== billiard ======== - :version: 3.6.0.0 + :version: 3.6.3.0 |build-status-lin| |build-status-win| |license| |wheel| |pyversion| |pyimp| @@ -75,6 +75,11 @@ `Python bug tracker <https://bugs.python.org/>`_. Issues related to billiard should be reported at https://github.com/celery/billiard/issues. + billiard as part of the Tidelift Subscription + ------------- + + The maintainers of billiard and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source dependencies you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact dependencies you use. [Learn more.](https://tidelift.com/subscription/pkg/pypi-billiard?utm_source=pypi-billiard&utm_medium=referral&utm_campaign=readme&utm_term=repo) + Keywords: multiprocessing pool process Platform: UNKNOWN Classifier: Development Status :: 5 - Production/Stable @@ -87,11 +92,12 @@ Classifier: Programming Language :: Python :: 3.5 Classifier: Programming Language :: Python :: 3.6 Classifier: Programming Language :: Python :: 3.7 +Classifier: Programming Language :: Python :: 3.8 Classifier: Programming Language :: Python :: Implementation :: CPython -Classifier: Programming Language :: Python :: Implementation :: Jython Classifier: Programming Language :: Python :: Implementation :: PyPy Classifier: Operating System :: Microsoft :: Windows Classifier: Operating System :: POSIX Classifier: License :: OSI Approved :: BSD License Classifier: Topic :: Software Development :: Libraries :: Python Modules Classifier: Topic :: System :: Distributed Computing +Description-Content-Type: text/markdown diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/requirements/pkgutils.txt new/billiard-3.6.3.0/requirements/pkgutils.txt --- old/billiard-3.6.1.0/requirements/pkgutils.txt 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/requirements/pkgutils.txt 2020-02-02 01:17:28.000000000 +0100 @@ -1,4 +1,4 @@ -setuptools>=20.6.7 +setuptools>=40.0.0 wheel>=0.29.0 flake8>=2.5.4 flakeplus>=1.1 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/requirements/test.txt new/billiard-3.6.3.0/requirements/test.txt --- old/billiard-3.6.1.0/requirements/test.txt 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/requirements/test.txt 2020-02-02 01:14:19.000000000 +0100 @@ -1,3 +1,3 @@ case>=1.3.1 -pytest<5 +pytest<6 psutil diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/setup.py new/billiard-3.6.3.0/setup.py --- old/billiard-3.6.1.0/setup.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/setup.py 2020-02-27 08:57:44.000000000 +0100 @@ -5,7 +5,6 @@ import glob import setuptools -import setuptools.command.test from distutils import sysconfig from distutils.errors import ( @@ -165,33 +164,12 @@ is_pypy = hasattr(sys, 'pypy_version_info') -def strip_comments(l): - return l.split('#', 1)[0].strip() - - -def reqs(f): - return list(filter(None, [strip_comments(l) for l in open( - os.path.join(os.getcwd(), 'requirements', f)).readlines()])) - - def _is_build_command(argv=sys.argv, cmds=('install', 'build', 'bdist')): for arg in argv: if arg.startswith(cmds): return arg -class pytest(setuptools.command.test.test): - user_options = [('pytest-args=', 'a', 'Arguments to pass to py.test')] - - def initialize_options(self): - setuptools.command.test.test.initialize_options(self) - self.pytest_args = [] - - def run_tests(self): - import pytest - sys.exit(pytest.main(self.pytest_args)) - - def run_setup(with_extensions=True): extensions = [] if with_extensions: @@ -222,6 +200,7 @@ version=meta['VERSION'], description=meta['doc'], long_description=long_description, + long_description_content_type='text/markdown', packages=packages, ext_modules=extensions, author=meta['author'], @@ -232,8 +211,6 @@ url=meta['homepage'], zip_safe=False, license='BSD', - tests_require=reqs('test.txt'), - cmdclass={'test': pytest}, classifiers=[ 'Development Status :: 5 - Production/Stable', 'Intended Audience :: Developers', @@ -245,8 +222,8 @@ 'Programming Language :: Python :: 3.5', 'Programming Language :: Python :: 3.6', 'Programming Language :: Python :: 3.7', + 'Programming Language :: Python :: 3.8', 'Programming Language :: Python :: Implementation :: CPython', - 'Programming Language :: Python :: Implementation :: Jython', 'Programming Language :: Python :: Implementation :: PyPy', 'Operating System :: Microsoft :: Windows', 'Operating System :: POSIX', diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/t/integration/setup.py new/billiard-3.6.3.0/t/integration/setup.py --- old/billiard-3.6.1.0/t/integration/setup.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/t/integration/setup.py 2020-02-27 08:57:44.000000000 +0100 @@ -23,7 +23,7 @@ But you can execute the tests by running the command: - $ python setup.py test + $ tox -e py """) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.6.1.0/t/unit/test_spawn.py new/billiard-3.6.3.0/t/unit/test_spawn.py --- old/billiard-3.6.1.0/t/unit/test_spawn.py 2019-08-14 17:53:16.000000000 +0200 +++ new/billiard-3.6.3.0/t/unit/test_spawn.py 2020-02-02 01:14:19.000000000 +0100 @@ -1,7 +1,8 @@ from __future__ import absolute_import +import os import sys -from billiard import get_context, Value, Process, Event +from billiard import get_context, Process, Queue from billiard.util import set_pdeathsig, get_pdeathsig import pytest import psutil @@ -20,14 +21,16 @@ @pytest.mark.skipif(not sys.platform.startswith('linux'), reason='set_pdeathsig() is supported only in Linux') def test_set_pdeathsig(self): - return_pid = Value('i') - p = Process(target=parent_task, args=(return_pid,)) + success = "done" + q = Queue() + p = Process(target=parent_task, args=(q, success)) p.start() - sleep(3) # wait for setting pdeathsig - p.terminate() - sleep(3) # wait for process termination - with pytest.raises(psutil.NoSuchProcess): - proc = psutil.Process(return_pid.value) + child_proc = psutil.Process(q.get(timeout=3)) + try: + p.terminate() + assert q.get(timeout=3) == success + finally: + child_proc.terminate() @pytest.mark.skipif(not sys.platform.startswith('linux'), reason='get_pdeathsig() is supported only in Linux') @@ -38,16 +41,28 @@ sig = get_pdeathsig() assert sig == signal.SIGTERM -def child_process(): - set_pdeathsig(signal.SIGTERM) - while True: - sleep(1) +def child_process(q, success): + sig = signal.SIGUSR1 + class ParentDeathError(Exception): + pass + + def handler(*args): + raise ParentDeathError() + + signal.signal(sig, handler) + set_pdeathsig(sig) + q.put(os.getpid()) + try: + while True: + sleep(1) + except ParentDeathError: + q.put(success) + sys.exit(0) -def parent_task(return_pid): - p = Process(target=child_process) +def parent_task(q, success): + p = Process(target=child_process, args=(q, success)) p.start() - sleep(1) # Wait for starting process - return_pid.value = p.pid + p.join() def task_from_process(name): print('proc:', name)