Hello community, here is the log from the commit of package python-stevedore for openSUSE:Factory checked in at 2016-09-16 11:01:38 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-stevedore (Old) and /work/SRC/openSUSE:Factory/.python-stevedore.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-stevedore" Changes: -------- --- /work/SRC/openSUSE:Factory/python-stevedore/python-stevedore.changes 2016-04-28 16:58:55.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.python-stevedore.new/python-stevedore.changes 2016-09-16 11:01:39.000000000 +0200 @@ -1,0 +2,23 @@ +Tue Aug 30 19:26:08 UTC 2016 - [email protected] + +- update to 1.17.1: + * do not emit warnings for missing hooks + * Remove discover from test-requirements + * make error reporting for extension loading quieter + * Add Python 3.5 classifier and venv + * Replace assertEquals() with assertEqual() + +------------------------------------------------------------------- +Wed Jul 20 10:14:11 UTC 2016 - [email protected] + +- update to 1.16.0: + * Fix NamedExtensionManager fails when loading failing extension in order + * Remove irrelated output item + * Fix broken link about setuptools entry points + * NamedExtensionManager: call a callback when some names cannot be found + * Updated from global requirements + * Trivial: ignore openstack/common in flake8 exclude list + * dont claim copyright for future years +- Use pypi.io for Source url + +------------------------------------------------------------------- Old: ---- stevedore-1.12.0.tar.gz New: ---- stevedore-1.17.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-stevedore.spec ++++++ --- /var/tmp/diff_new_pack.sBzeYM/_old 2016-09-16 11:01:40.000000000 +0200 +++ /var/tmp/diff_new_pack.sBzeYM/_new 2016-09-16 11:01:40.000000000 +0200 @@ -17,13 +17,13 @@ Name: python-stevedore -Version: 1.12.0 +Version: 1.17.1 Release: 0 Summary: Manage dynamic plugins for Python applications License: Apache-2.0 Group: Development/Languages/Python Url: https://github.com/dreamhost/stevedore -Source: http://pypi.python.org/packages/source/s/stevedore/stevedore-%{version}.tar.gz +Source: https://pypi.io/packages/source/s/stevedore/stevedore-%{version}.tar.gz Source1: %{name}.changes BuildRequires: python-devel BuildRequires: python-pbr ++++++ stevedore-1.12.0.tar.gz -> stevedore-1.17.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/AUTHORS new/stevedore-1.17.1/AUTHORS --- old/stevedore-1.12.0/AUTHORS 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/AUTHORS 2016-08-18 19:40:14.000000000 +0200 @@ -1,7 +1,9 @@ Abhishek Chanda <[email protected]> +Bernhard M. Wiedemann <[email protected]> ChangBo Guo(gcb) <[email protected]> Chris Yeoh <[email protected]> Cleber Rosa <[email protected]> +Cyril Roelandt <[email protected]> Daniel Rocco <[email protected]> Davanum Srinivas <[email protected]> Dirk Mueller <[email protected]> @@ -18,10 +20,12 @@ Philip Tzou <[email protected]> Ricardo Kirkner <[email protected]> Ryan Petrello <[email protected]> +Swapnil Kulkarni (coolsvap) <[email protected]> Thomas Goirand <[email protected]> Wes Turner <[email protected]> Zhao Lei <[email protected]> caoyue <[email protected]> +liangjingtao <[email protected]> markmcclain <[email protected]> shuangtai <[email protected]> Łukasz Jernaś <[email protected]> diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/ChangeLog new/stevedore-1.17.1/ChangeLog --- old/stevedore-1.12.0/ChangeLog 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/ChangeLog 2016-08-18 19:40:14.000000000 +0200 @@ -1,6 +1,43 @@ CHANGES ======= +1.17.1 +------ + +* do not emit warnings for missing hooks + +1.17.0 +------ + +* Remove discover from test-requirements +* make error reporting for extension loading quieter +* Add Python 3.5 classifier and venv +* Replace assertEquals() with assertEqual() + +1.16.0 +------ + +* Fix NamedExtensionManager fails when loading failing extension in order +* Remove irrelated output item +* Fix broken link about setuptools entry points +* NamedExtensionManager: call a callback when some names cannot be found +* Updated from global requirements + +1.15.0 +------ + +* Updated from global requirements + +1.14.0 +------ + +* Trivial: ignore openstack/common in flake8 exclude list + +1.13.0 +------ + +* dont claim copyright for future years + 1.12.0 ------ @@ -91,7 +128,7 @@ 1.2.0 ----- -* Use pkg_resources resolve( +* Use pkg_resources resolve() and require() instead of load() * Fix the README.rst file format for pypi * Workflow documentation is now in infra-manual * Implement a __contains__ override for extension manager diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/PKG-INFO new/stevedore-1.17.1/PKG-INFO --- old/stevedore-1.12.0/PKG-INFO 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/PKG-INFO 2016-08-18 19:40:14.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: stevedore -Version: 1.12.0 +Version: 1.17.1 Summary: Manage dynamic plugins for Python applications Home-page: http://docs.openstack.org/developer/stevedore/ Author: OpenStack @@ -28,7 +28,7 @@ provides manager classes for implementing common patterns for using dynamically loaded extensions. - .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api + .. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html?#entry-points * Free software: Apache license * Documentation: http://docs.openstack.org/developer/stevedore @@ -44,5 +44,6 @@ Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Intended Audience :: Developers Classifier: Environment :: Console diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/README.rst new/stevedore-1.17.1/README.rst --- old/stevedore-1.12.0/README.rst 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/README.rst 2016-08-18 19:38:10.000000000 +0200 @@ -20,7 +20,7 @@ provides manager classes for implementing common patterns for using dynamically loaded extensions. -.. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api +.. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html?#entry-points * Free software: Apache license * Documentation: http://docs.openstack.org/developer/stevedore diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/doc/source/conf.py new/stevedore-1.17.1/doc/source/conf.py --- old/stevedore-1.12.0/doc/source/conf.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/doc/source/conf.py 2016-08-18 19:38:10.000000000 +0200 @@ -49,7 +49,7 @@ # General information about the project. project = u'stevedore' -copyright = u'%s, DreamHost' % datetime.date.today().year +copyright = u'2016, DreamHost' # The version info for the project you're documenting, acts as replacement for # |version| and |release|, also used in various other places throughout the diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst new/stevedore-1.17.1/doc/source/tutorial/creating_plugins.rst --- old/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/doc/source/tutorial/creating_plugins.rst 2016-08-18 19:38:10.000000000 +0200 @@ -103,7 +103,6 @@ [stevedore.example.formatter] simple = stevedore.example.simple:Simple - field = stevedore.example.fields:FieldList plain = stevedore.example.simple:Simple [stevedore.test.extension] diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/setup.cfg new/stevedore-1.17.1/setup.cfg --- old/stevedore-1.12.0/setup.cfg 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/setup.cfg 2016-08-18 19:40:14.000000000 +0200 @@ -13,6 +13,7 @@ Programming Language :: Python :: 2.7 Programming Language :: Python :: 3 Programming Language :: Python :: 3.4 + Programming Language :: Python :: 3.5 Intended Audience :: Developers Environment :: Console diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/extension.py new/stevedore-1.17.1/stevedore/extension.py --- old/stevedore-1.12.0/stevedore/extension.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/extension.py 2016-08-18 19:38:10.000000000 +0200 @@ -170,8 +170,15 @@ if self._on_load_failure_callback is not None: self._on_load_failure_callback(self, ep, err) else: - LOG.error('Could not load %r: %s', ep.name, err) - LOG.exception(err) + # Log the reason we couldn't import the module, + # usually without a traceback. The most common + # reason is an ImportError due to a missing + # dependency, and the error message should be + # enough to debug that. If debug logging is + # enabled for our logger, provide the full + # traceback. + LOG.error('Could not load %r: %s', ep.name, err, + exc_info=LOG.isEnabledFor(logging.DEBUG)) return extensions def _load_one_plugin(self, ep, invoke_on_load, invoke_args, invoke_kwds, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/hook.py new/stevedore-1.17.1/stevedore/hook.py --- old/stevedore-1.12.0/stevedore/hook.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/hook.py 2016-08-18 19:38:10.000000000 +0200 @@ -27,12 +27,25 @@ :param verify_requirements: Use setuptools to enforce the dependencies of the plugin(s) being loaded. Defaults to False. :type verify_requirements: bool + :type on_missing_entrypoints_callback: function + :param verify_requirements: Use setuptools to enforce the + dependencies of the plugin(s) being loaded. Defaults to False. + :param warn_on_missing_entrypoint: Flag to control whether failing + to load a plugin is reported via a log mess. Only applies if + on_missing_entrypoints_callback is None. + :type warn_on_missing_entrypoint: bool + """ def __init__(self, namespace, name, invoke_on_load=False, invoke_args=(), invoke_kwds={}, on_load_failure_callback=None, - verify_requirements=False): + verify_requirements=False, + on_missing_entrypoints_callback=None, + # NOTE(dhellmann): This default is different from the + # base class because for hooks it is less likely to + # be an error to have no entry points present. + warn_on_missing_entrypoint=False): super(HookManager, self).__init__( namespace, [name], @@ -40,7 +53,9 @@ invoke_args=invoke_args, invoke_kwds=invoke_kwds, on_load_failure_callback=on_load_failure_callback, + on_missing_entrypoints_callback=on_missing_entrypoints_callback, verify_requirements=verify_requirements, + warn_on_missing_entrypoint=warn_on_missing_entrypoint, ) def _init_attributes(self, namespace, names, name_order=False, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/named.py new/stevedore-1.17.1/stevedore/named.py --- old/stevedore-1.12.0/stevedore/named.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/named.py 2016-08-18 19:38:10.000000000 +0200 @@ -1,5 +1,9 @@ +import logging + from .extension import ExtensionManager +LOG = logging.getLogger(__name__) + class NamedExtensionManager(ExtensionManager): """Loads only the named extensions. @@ -34,9 +38,17 @@ when this is called (when an entrypoint fails to load) are (manager, entrypoint, exception) :type on_load_failure_callback: function + :param on_missing_entrypoints_callback: Callback function that will be + called when one or more names cannot be found. The provided argument + will be a subset of the 'names' parameter. + :type on_missing_entrypoints_callback: function :param verify_requirements: Use setuptools to enforce the dependencies of the plugin(s) being loaded. Defaults to False. :type verify_requirements: bool + :param warn_on_missing_entrypoint: Flag to control whether failing + to load a plugin is reported via a log mess. Only applies if + on_missing_entrypoints_callback is None. + :type warn_on_missing_entrypoint: bool """ @@ -44,7 +56,9 @@ invoke_on_load=False, invoke_args=(), invoke_kwds={}, name_order=False, propagate_map_exceptions=False, on_load_failure_callback=None, - verify_requirements=False): + on_missing_entrypoints_callback=None, + verify_requirements=False, + warn_on_missing_entrypoint=True): self._init_attributes( namespace, names, name_order=name_order, propagate_map_exceptions=propagate_map_exceptions, @@ -53,6 +67,13 @@ invoke_args, invoke_kwds, verify_requirements) + self._missing_names = set(names) - set([e.name for e in extensions]) + if self._missing_names: + if on_missing_entrypoints_callback: + on_missing_entrypoints_callback(self._missing_names) + elif warn_on_missing_entrypoint: + LOG.warning('Could not load %s' % + ', '.join(self._missing_names)) self._init_plugins(extensions) @classmethod @@ -103,13 +124,15 @@ on_load_failure_callback=on_load_failure_callback) self._names = names + self._missing_names = set() self._name_order = name_order def _init_plugins(self, extensions): super(NamedExtensionManager, self)._init_plugins(extensions) if self._name_order: - self.extensions = [self[n] for n in self._names] + self.extensions = [self[n] for n in self._names + if n not in self._missing_names] def _load_one_plugin(self, ep, invoke_on_load, invoke_args, invoke_kwds, verify_requirements): diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/tests/test_callback.py new/stevedore-1.17.1/stevedore/tests/test_callback.py --- old/stevedore-1.12.0/stevedore/tests/test_callback.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/tests/test_callback.py 2016-08-18 19:38:10.000000000 +0200 @@ -1,8 +1,10 @@ """Tests for failure loading callback """ from testtools.matchers import GreaterThan +import mock from stevedore import extension +from stevedore import named from stevedore.tests import utils @@ -23,3 +25,19 @@ for manager, entrypoint, error in errors: self.assertIs(manager, em) self.assertIsInstance(error, (IOError, ImportError)) + + @mock.patch('stevedore.named.NamedExtensionManager._load_plugins') + def test_missing_entrypoints_callback(self, load_fn): + errors = set() + + def callback(names): + errors.update(names) + + load_fn.return_value = [ + extension.Extension('foo', None, None, None) + ] + named.NamedExtensionManager('stevedore.test.extension', + names=['foo', 'bar'], + invoke_on_load=True, + on_missing_entrypoints_callback=callback) + self.assertEqual(errors, {'bar'}) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/tests/test_driver.py new/stevedore-1.17.1/stevedore/tests/test_driver.py --- old/stevedore-1.12.0/stevedore/tests/test_driver.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/tests/test_driver.py 2016-08-18 19:38:10.000000000 +0200 @@ -48,7 +48,7 @@ except ImportError: pass else: - self.assertEquals(False, "No error raised") + self.assertEqual(False, "No error raised") def test_multiple_drivers(self): # The idea for this test was contributed by clayg: diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore/tests/test_named.py new/stevedore-1.17.1/stevedore/tests/test_named.py --- old/stevedore-1.12.0/stevedore/tests/test_named.py 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/stevedore/tests/test_named.py 2016-08-18 19:38:10.000000000 +0200 @@ -56,3 +56,26 @@ ) actual = em.names() self.assertEqual(actual, ['t2', 't1']) + + def test_load_fail_ignored_when_sorted(self): + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['e1', 't2', 'e2', 't1'], + name_order=True, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(['t2', 't1'], actual) + + em = named.NamedExtensionManager( + 'stevedore.test.extension', + names=['e1', 't1'], + name_order=False, + invoke_on_load=True, + invoke_args=('a',), + invoke_kwds={'b': 'B'}, + ) + actual = em.names() + self.assertEqual(['t1'], actual) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore.egg-info/PKG-INFO new/stevedore-1.17.1/stevedore.egg-info/PKG-INFO --- old/stevedore-1.12.0/stevedore.egg-info/PKG-INFO 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/stevedore.egg-info/PKG-INFO 2016-08-18 19:40:14.000000000 +0200 @@ -1,6 +1,6 @@ Metadata-Version: 1.1 Name: stevedore -Version: 1.12.0 +Version: 1.17.1 Summary: Manage dynamic plugins for Python applications Home-page: http://docs.openstack.org/developer/stevedore/ Author: OpenStack @@ -28,7 +28,7 @@ provides manager classes for implementing common patterns for using dynamically loaded extensions. - .. _setuptools entry points: http://packages.python.org/setuptools/pkg_resources.html#convenience-api + .. _setuptools entry points: http://setuptools.readthedocs.io/en/latest/pkg_resources.html?#entry-points * Free software: Apache license * Documentation: http://docs.openstack.org/developer/stevedore @@ -44,5 +44,6 @@ Classifier: Programming Language :: Python :: 2.7 Classifier: Programming Language :: Python :: 3 Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 Classifier: Intended Audience :: Developers Classifier: Environment :: Console diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/stevedore.egg-info/pbr.json new/stevedore-1.17.1/stevedore.egg-info/pbr.json --- old/stevedore-1.12.0/stevedore.egg-info/pbr.json 2016-02-25 07:08:18.000000000 +0100 +++ new/stevedore-1.17.1/stevedore.egg-info/pbr.json 2016-08-18 19:40:14.000000000 +0200 @@ -1 +1 @@ -{"git_version": "8a19d5f", "is_release": true} \ No newline at end of file +{"is_release": true, "git_version": "62398ed"} \ No newline at end of file diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/test-requirements.txt new/stevedore-1.17.1/test-requirements.txt --- old/stevedore-1.12.0/test-requirements.txt 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/test-requirements.txt 2016-08-18 19:38:10.000000000 +0200 @@ -3,10 +3,9 @@ # process, which may cause wedges in the gate later. Pillow>=2.4.0 # PIL License -sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD -mock>=1.2 # BSD +sphinx!=1.3b1,<1.3,>=1.2.1 # BSD +mock>=2.0 # BSD coverage>=3.6 # Apache-2.0 testrepository>=0.0.18 # Apache-2.0/BSD -discover # BSD oslotest>=1.10.0 # Apache-2.0 oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/stevedore-1.12.0/tox.ini new/stevedore-1.17.1/tox.ini --- old/stevedore-1.12.0/tox.ini 2016-02-25 07:07:57.000000000 +0100 +++ new/stevedore-1.17.1/tox.ini 2016-08-18 19:38:10.000000000 +0200 @@ -1,5 +1,5 @@ [tox] -envlist = py34,py27,pep8,docs +envlist = py35,py34,py27,pep8,docs [testenv] deps = @@ -21,4 +21,4 @@ [flake8] ignore = E251 show-source = True -exclude=.venv,.git,.tox,dist,*openstack/common*,*lib/python*,*egg,build +exclude=.venv,.git,.tox,dist,*lib/python*,*egg,build
