Hello community, here is the log from the commit of package python-billiard for openSUSE:Factory checked in at 2015-04-27 13:05:31 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-billiard (Old) and /work/SRC/openSUSE:Factory/.python-billiard.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-billiard" Changes: -------- --- /work/SRC/openSUSE:Factory/python-billiard/python-billiard.changes 2014-08-16 15:38:09.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-billiard.new/python-billiard.changes 2015-04-27 13:05:32.000000000 +0200 @@ -1,0 +2,21 @@ +Sat Apr 25 19:37:13 UTC 2015 - [email protected] + +- update to version 3.3.0.20: + * Pool: Timeouts will attempt to send SIGKILL, but this signal + does not exist on Windows. Replaced with SIGTERM. +- additional changes from version 3.3.0.19: + * Pool: Exceptions in user timeout callbacks are now logged + instead of crashing the pool. Contributed by Pierre Fersing. + * Pool: Exit codes in errors were improperly being represented + as signals. + * Pool: ``.map``. and ``.imap`` now working again. + * Now builds on FreeBSD 10. Contributed by Michael Fladischer. +- update project URL +- add fdupes as BuildRequires and call it after install +- remove BuildRequires python-nose-cover3, not needed by the tests + anymore +- set a minimum version for python-nose +- remove unwanted shebang of funtests/setup.py +- add -fno-strict-aliasing to CFLAGS to avoid potential breakage + +------------------------------------------------------------------- Old: ---- billiard-3.3.0.18.tar.gz New: ---- billiard-3.3.0.20.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-billiard.spec ++++++ --- /var/tmp/diff_new_pack.RxgJRn/_old 2015-04-27 13:05:34.000000000 +0200 +++ /var/tmp/diff_new_pack.RxgJRn/_new 2015-04-27 13:05:34.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package python-billiard # -# Copyright (c) 2014 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2015 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,22 +17,22 @@ Name: python-billiard -Version: 3.3.0.18 +Version: 3.3.0.20 Release: 0 -Url: http://github.com/ask/billiard +Url: https://github.com/celery/billiard Summary: Python multiprocessing fork License: BSD-3-Clause Group: Development/Languages/Python Source: http://pypi.python.org/packages/source/b/billiard/billiard-%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-build +BuildRequires: fdupes BuildRequires: python-devel BuildRequires: python-setuptools # Documentation requirements: BuildRequires: python-sphinx # Test requirements: BuildRequires: python-mock -BuildRequires: python-nose -BuildRequires: python-nose-cover3 +BuildRequires: python-nose >= 1.3.4 BuildRequires: python-unittest2 >= 0.4.0 %if 0%{?suse_version} && 0%{?suse_version} <= 1110 %{!?python_sitearch: %global python_sitearch %(python -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} @@ -46,9 +46,11 @@ %prep %setup -q -n billiard-%{version} +# remove unwanted shebang +sed -i '/^#!/ d' funtests/setup.py %build -CFLAGS="%{optflags}" python setup.py build +CFLAGS="%{optflags} -fno-strict-aliasing" python setup.py build cd Doc && sphinx-build -b html . html %install @@ -56,6 +58,7 @@ # Remove hidden files from generated documentation directory rm -r Doc/html/.doctrees rm -r Doc/html/.buildinfo +%fdupes %buildroot/%_prefix %check python setup.py test ++++++ billiard-3.3.0.18.tar.gz -> billiard-3.3.0.20.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/CHANGES.txt new/billiard-3.3.0.20/CHANGES.txt --- old/billiard-3.3.0.18/CHANGES.txt 2014-06-20 15:33:22.000000000 +0200 +++ new/billiard-3.3.0.20/CHANGES.txt 2015-04-17 14:57:02.000000000 +0200 @@ -1,3 +1,25 @@ +3.3.0.20 - 2015-04-17 +--------------------- + +- Pool: Timeouts will attempt to send SIGKILL, but this signal + does not exist on Windows. Replaced with SIGTERM. + +3.3.0.19 - 2014-10-13 +--------------------- + +- Pool: Exceptions in user timeout callbacks are now logged instead + of crashing the pool. + + Contributed by Pierre Fersing. + +- Pool: Exit codes in errors were improperly being represented as signals. + +- Pool: ``.map``. and ``.imap`` now working again. + +- Now builds on FreeBSD 10. + + Contributed by Michael Fladischer. + 3.3.0.18 - 2014-06-20 --------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/PKG-INFO new/billiard-3.3.0.20/PKG-INFO --- old/billiard-3.3.0.18/PKG-INFO 2014-06-20 15:37:44.000000000 +0200 +++ new/billiard-3.3.0.20/PKG-INFO 2015-04-17 15:03:13.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: billiard -Version: 3.3.0.18 +Version: 3.3.0.20 Summary: Python multiprocessing fork with improvements and bugfixes Home-page: http://github.com/celery/billiard Author: Ask Solem', @@ -9,7 +9,7 @@ Description: ======== billiard ======== - :version: 3.3.0.18 + :version: 3.3.0.19 About ----- @@ -50,6 +50,28 @@ Changes =========== + 3.3.0.20 - 2015-04-17 + --------------------- + + - Pool: Timeouts will attempt to send SIGKILL, but this signal + does not exist on Windows. Replaced with SIGTERM. + + 3.3.0.19 - 2014-10-13 + --------------------- + + - Pool: Exceptions in user timeout callbacks are now logged instead + of crashing the pool. + + Contributed by Pierre Fersing. + + - Pool: Exit codes in errors were improperly being represented as signals. + + - Pool: ``.map``. and ``.imap`` now working again. + + - Now builds on FreeBSD 10. + + Contributed by Michael Fladischer. + 3.3.0.18 - 2014-06-20 --------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/README.rst new/billiard-3.3.0.20/README.rst --- old/billiard-3.3.0.18/README.rst 2014-06-20 15:33:47.000000000 +0200 +++ new/billiard-3.3.0.20/README.rst 2015-04-17 14:52:50.000000000 +0200 @@ -1,7 +1,7 @@ ======== billiard ======== -:version: 3.3.0.18 +:version: 3.3.0.19 About ----- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/billiard/__init__.py new/billiard-3.3.0.20/billiard/__init__.py --- old/billiard-3.3.0.18/billiard/__init__.py 2014-06-20 15:33:30.000000000 +0200 +++ new/billiard-3.3.0.20/billiard/__init__.py 2015-04-17 14:57:19.000000000 +0200 @@ -19,7 +19,7 @@ from __future__ import absolute_import -VERSION = (3, 3, 0, 18) +VERSION = (3, 3, 0, 20) __version__ = '.'.join(map(str, VERSION[0:4])) + "".join(VERSION[4:]) __author__ = 'R Oudkerk / Python Software Foundation' __author_email__ = '[email protected]' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/billiard/pool.py new/billiard-3.3.0.20/billiard/pool.py --- old/billiard-3.3.0.18/billiard/pool.py 2014-06-20 15:13:41.000000000 +0200 +++ new/billiard-3.3.0.20/billiard/pool.py 2015-04-17 14:52:50.000000000 +0200 @@ -51,8 +51,10 @@ # handled by # any process, so this is needed to terminate the task # *and its children* (if any). from ._win import kill_processtree as _kill # noqa + SIGKILL = signal.SIGTERM else: from os import kill as _kill # noqa + SIGKILL = signal.SIGKILL try: @@ -123,7 +125,7 @@ def human_status(status): - if status or 0 < 0: + if (status or 0) < 0: try: return 'signal {0} ({1})'.format(-status, SIGMAP[-status]) except KeyError: @@ -622,8 +624,7 @@ return # Run timeout callback - if job._timeout_callback is not None: - job._timeout_callback(soft=True, timeout=job._soft_timeout) + job.handle_timeout(soft=True) try: _kill(job._worker_pid, SIG_SOFT_TIMEOUT) @@ -647,8 +648,8 @@ process, _index = self._process_by_pid(job._worker_pid) # Run timeout callback - if job._timeout_callback is not None: - job._timeout_callback(soft=False, timeout=job._timeout) + job.handle_timeout(soft=False) + if process: self._trywaitkill(process) @@ -663,7 +664,7 @@ return debug('timeout: TERM timed-out, now sending KILL to %s', worker._name) try: - _kill(worker.pid, signal.SIGKILL) + _kill(worker.pid, SIGKILL) except OSError: pass @@ -1629,7 +1630,6 @@ self._error_callback = error_callback self._timeout_callback = timeout_callback self._timeout = timeout - self._terminated = None self._soft_timeout = soft_timeout self._lost_worker_timeout = lost_worker_timeout self._on_timeout_set = on_timeout_set @@ -1641,6 +1641,7 @@ self._cancelled = False self._worker_pid = None self._time_accepted = None + self._terminated = None cache[self._job] = self def __repr__(self): @@ -1689,16 +1690,23 @@ else: raise self._value.exception - def safe_apply_callback(self, fun, *args): + def safe_apply_callback(self, fun, *args, **kwargs): if fun: try: - fun(*args) + fun(*args, **kwargs) except self._callbacks_propagate: raise except Exception as exc: error('Pool callback raised exception: %r', exc, exc_info=1) + def handle_timeout(self, soft=False): + if self._timeout_callback is not None: + self.safe_apply_callback( + self._timeout_callback, soft=soft, + timeout=self._soft_timeout if soft else self._timeout, + ) + def _set(self, i, obj): with self._mutex: if self._on_timeout_cancel: @@ -1798,9 +1806,9 @@ self._cache.pop(self._job, None) self._event.set() - def _ack(self, i, time_accepted, pid): + def _ack(self, i, time_accepted, pid, *args): start = i * self._chunksize - stop = (i + 1) * self._chunksize + stop = min((i + 1) * self._chunksize, self._length) for j in range(start, stop): self._accepted[j] = True self._worker_pid[j] = pid @@ -1887,7 +1895,7 @@ self._cond.notify() del self._cache[self._job] - def _ack(self, i, time_accepted, pid): + def _ack(self, i, time_accepted, pid, *args): self._worker_pids.append(pid) def ready(self): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/billiard/tests/test_common.py new/billiard-3.3.0.20/billiard/tests/test_common.py --- old/billiard-3.3.0.18/billiard/tests/test_common.py 2014-04-16 15:10:55.000000000 +0200 +++ new/billiard-3.3.0.20/billiard/tests/test_common.py 2015-04-17 15:01:26.000000000 +0200 @@ -4,7 +4,6 @@ import signal from contextlib import contextmanager -from mock import call, patch, Mock from time import time from billiard.common import ( @@ -15,6 +14,11 @@ from .utils import Case +try: + from unittest.mock import Mock, call, patch +except ImportError: + from mock import Mock, call, patch # noqa + def signo(name): return getattr(signal, name) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/billiard.egg-info/PKG-INFO new/billiard-3.3.0.20/billiard.egg-info/PKG-INFO --- old/billiard-3.3.0.18/billiard.egg-info/PKG-INFO 2014-06-20 15:37:36.000000000 +0200 +++ new/billiard-3.3.0.20/billiard.egg-info/PKG-INFO 2015-04-17 15:03:07.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: billiard -Version: 3.3.0.18 +Version: 3.3.0.20 Summary: Python multiprocessing fork with improvements and bugfixes Home-page: http://github.com/celery/billiard Author: Ask Solem', @@ -9,7 +9,7 @@ Description: ======== billiard ======== - :version: 3.3.0.18 + :version: 3.3.0.19 About ----- @@ -50,6 +50,28 @@ Changes =========== + 3.3.0.20 - 2015-04-17 + --------------------- + + - Pool: Timeouts will attempt to send SIGKILL, but this signal + does not exist on Windows. Replaced with SIGTERM. + + 3.3.0.19 - 2014-10-13 + --------------------- + + - Pool: Exceptions in user timeout callbacks are now logged instead + of crashing the pool. + + Contributed by Pierre Fersing. + + - Pool: Exit codes in errors were improperly being represented as signals. + + - Pool: ``.map``. and ``.imap`` now working again. + + - Now builds on FreeBSD 10. + + Contributed by Michael Fladischer. + 3.3.0.18 - 2014-06-20 --------------------- diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/funtests/setup.py new/billiard-3.3.0.20/funtests/setup.py --- old/billiard-3.3.0.18/funtests/setup.py 2014-01-22 21:04:31.000000000 +0100 +++ new/billiard-3.3.0.20/funtests/setup.py 2015-04-17 14:59:25.000000000 +0200 @@ -44,7 +44,6 @@ test_suite='nose.collector', build_requires=[ 'nose', - 'nose-cover3', 'unittest2', 'coverage>=3.0', ], diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/requirements/test.txt new/billiard-3.3.0.20/requirements/test.txt --- old/billiard-3.3.0.18/requirements/test.txt 2014-01-22 21:04:31.000000000 +0100 +++ new/billiard-3.3.0.20/requirements/test.txt 2014-12-09 22:50:09.000000000 +0100 @@ -1,4 +1,3 @@ unittest2>=0.4.0 -nose -nose-cover3 +nose>=1.3.4 mock diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/requirements/test3.txt new/billiard-3.3.0.20/requirements/test3.txt --- old/billiard-3.3.0.18/requirements/test3.txt 2014-01-22 21:04:31.000000000 +0100 +++ new/billiard-3.3.0.20/requirements/test3.txt 2015-04-17 14:52:50.000000000 +0200 @@ -1,3 +1 @@ -nose -nose-cover3 -mock +nose>=1.3.4 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/setup.cfg new/billiard-3.3.0.20/setup.cfg --- old/billiard-3.3.0.18/setup.cfg 2014-06-20 15:37:44.000000000 +0200 +++ new/billiard-3.3.0.20/setup.cfg 2015-04-17 15:03:13.000000000 +0200 @@ -1,9 +1,5 @@ [nosetests] where = billiard/tests -cover3-branch = 1 -cover3-html = 1 -cover3-package = billiard -cover3-exclude = billiard.tests [egg_info] tag_build = diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/billiard-3.3.0.18/setup.py new/billiard-3.3.0.20/setup.py --- old/billiard-3.3.0.18/setup.py 2014-06-20 15:13:37.000000000 +0200 +++ new/billiard-3.3.0.20/setup.py 2015-04-17 14:52:50.000000000 +0200 @@ -118,7 +118,7 @@ HAVE_FD_TRANSFER=1, ) libraries = [] -elif re.match('^(gnukfreebsd(8|9|10|11)|freebsd(7|8|9|0))', sys.platform): +elif re.match('^(gnukfreebsd(8|9|10|11)|freebsd(7|8|9|10))', sys.platform): macros = dict( # FreeBSD 7+ and GNU/kFreeBSD 8+ HAVE_SEM_OPEN=bool( sysconfig.get_config_var('HAVE_SEM_OPEN') and not
