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)


Reply via email to