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 <[email protected]>
+
+- Stop building Python 2 packages (we avoid also weird constructs
+ with alternative noarch package).
+
+-------------------------------------------------------------------
+Mon Mar 30 14:04:42 UTC 2020 - Marketa Calabkova <[email protected]>
+
+- 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: [email protected]
-Maintainer: Ask Solem
-Maintainer-email: [email protected]
+Maintainer: Asif Saif Uddin
+Maintainer-email: [email protected]
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__ = '[email protected]'
-__maintainer__ = 'Ask Solem'
-__contact__ = "[email protected]"
+__maintainer__ = 'Asif Saif Uddin'
+__contact__ = "[email protected]"
__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: [email protected]
-Maintainer: Ask Solem
-Maintainer-email: [email protected]
+Maintainer: Asif Saif Uddin
+Maintainer-email: [email protected]
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)