Hello community,

here is the log from the commit of package python-stevedore for 
openSUSE:Factory checked in at 2016-04-28 16:55:29
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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-03-16 10:35:30.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.python-stevedore.new/python-stevedore.changes   
2016-04-28 16:58:55.000000000 +0200
@@ -1,0 +2,25 @@
+Thu Apr 21 07:07:35 UTC 2016 - [email protected]
+
+- update to 1.12.0:
+  * Add a reference to entry_point_inspector
+  * Updated from global requirements
+  * Trival:Remove unused logging import
+  * Remove work around for NullHandler
+  * remove unnecessary dependency on argparse
+  * Use Stevedore exceptions for finding extensions
+  * Clean up Python 2.6 related stuff
+  * Updated from global requirements
+  * Remove Python 2.6 classifier
+  * cleanup tox.ini
+  * Updated from global requirements
+  * docs - Set pbr 'warnerrors' option for doc build
+  * Add clarifying language to description of scanning for plugins
+  * clean up default tox environment list
+  * Show how to add a plugin in a separate package
+  * replace the hard-coded history list with an auto-generated one
+  * Fix spelling typo for maunal
+  * Updated from global requirements
+  * Examples typo fix
+- Enable tests during build
+
+-------------------------------------------------------------------

Old:
----
  stevedore-1.8.0.tar.gz

New:
----
  stevedore-1.12.0.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-stevedore.spec ++++++
--- /var/tmp/diff_new_pack.ISkVdJ/_old  2016-04-28 16:58:58.000000000 +0200
+++ /var/tmp/diff_new_pack.ISkVdJ/_new  2016-04-28 16:58:58.000000000 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-stevedore
-Version:        1.8.0
+Version:        1.12.0
 Release:        0
 Summary:        Manage dynamic plugins for Python applications
 License:        Apache-2.0
@@ -32,8 +32,10 @@
 BuildRequires:  python-Sphinx
 BuildRequires:  python-oslosphinx
 # Test requirements:
-#BuildRequires:  python-mock
-#BuildRequires:  python-nose
+BuildRequires:  python-Pillow
+BuildRequires:  python-mock
+BuildRequires:  python-oslotest
+BuildRequires:  python-testrepository
 Requires:       python-argparse
 Requires:       python-six >= 1.9.0
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
@@ -60,8 +62,8 @@
 %install
 python setup.py install --prefix=%{_prefix} --root=%{buildroot}
 
-#%%check
-#nosetests
+%check
+python setup.py testr
 
 %files
 %defattr(-,root,root,-)

++++++ stevedore-1.8.0.tar.gz -> stevedore-1.12.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/.travis.yml 
new/stevedore-1.12.0/.travis.yml
--- old/stevedore-1.8.0/.travis.yml     2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/.travis.yml    2016-02-25 07:07:57.000000000 +0100
@@ -1,6 +1,5 @@
 language: python
 python:
-  - "2.6"
   - "2.7"
   - "3.2"
   - "3.3"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/AUTHORS new/stevedore-1.12.0/AUTHORS
--- old/stevedore-1.8.0/AUTHORS 2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/AUTHORS        2016-02-25 07:08:18.000000000 +0100
@@ -1,20 +1,27 @@
 Abhishek Chanda <[email protected]>
+ChangBo Guo(gcb) <[email protected]>
 Chris Yeoh <[email protected]>
+Cleber Rosa <[email protected]>
 Daniel Rocco <[email protected]>
 Davanum Srinivas <[email protected]>
 Dirk Mueller <[email protected]>
 Doug Hellmann <[email protected]>
 Doug Hellmann <[email protected]>
 Doug Hellmann <[email protected]>
+Jamie Lennox <[email protected]>
 Jeremy Stanley <[email protected]>
 Joshua Harlow <[email protected]>
 Joshua Harlow <[email protected]>
 Julien Danjou <[email protected]>
 Louis Taylor <[email protected]>
+Marc Koderer <[email protected]>
 Philip Tzou <[email protected]>
+Ricardo Kirkner <[email protected]>
 Ryan Petrello <[email protected]>
 Thomas Goirand <[email protected]>
 Wes Turner <[email protected]>
+Zhao Lei <[email protected]>
+caoyue <[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.8.0/ChangeLog 
new/stevedore-1.12.0/ChangeLog
--- old/stevedore-1.8.0/ChangeLog       2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/ChangeLog      2016-02-25 07:08:18.000000000 +0100
@@ -1,6 +1,41 @@
 CHANGES
 =======
 
+1.12.0
+------
+
+* Add a reference to entry_point_inspector
+
+1.11.0
+------
+
+* Updated from global requirements
+* Trival:Remove unused logging import
+* Remove work around for NullHandler
+* remove unnecessary dependency on argparse
+
+1.10.0
+------
+
+* Use Stevedore exceptions for finding extensions
+* Clean up Python 2.6 related stuff
+* Updated from global requirements
+* Remove Python 2.6 classifier
+* cleanup tox.ini
+
+1.9.0
+-----
+
+* Updated from global requirements
+* docs - Set pbr 'warnerrors' option for doc build
+* Add clarifying language to description of scanning for plugins
+* clean up default tox environment list
+* Show how to add a plugin in a separate package
+* replace the hard-coded history list with an auto-generated one
+* Fix spelling typo for maunal
+* Updated from global requirements
+* Examples typo fix
+
 1.8.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/PKG-INFO 
new/stevedore-1.12.0/PKG-INFO
--- old/stevedore-1.8.0/PKG-INFO        2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/PKG-INFO       2016-02-25 07:08:18.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: stevedore
-Version: 1.8.0
+Version: 1.12.0
 Summary: Manage dynamic plugins for Python applications
 Home-page: http://docs.openstack.org/developer/stevedore/
 Author: OpenStack
@@ -41,7 +41,6 @@
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/doc/source/history.rst 
new/stevedore-1.12.0/doc/source/history.rst
--- old/stevedore-1.8.0/doc/source/history.rst  2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/doc/source/history.rst 2016-02-25 07:07:57.000000000 
+0100
@@ -1,116 +1 @@
-=========
- History
-=========
-
-0.14
-
-- Provide an option to control requirements checking when loading
-  plugins, and disable it by default. This removes protection against
-  loading the wrong version of a plugin, or that plugin's
-  dependencies.
-
-0.13
-
-- Deprecate ``TestExtensionManager`` and replace with
-  ``make_test_instance()`` class method to provide test classes that
-  behave more like the production class, while still allowing the
-  extensions to be injected for testing. (contributed by drocco-007)
-- Include a work-around to avoid a cpython bug with atexit
-  (#15881). (contributed by philiptzou)
-- Update documentation to refer to setuptools instead of
-  distribute. (contributed by westurner)
-- Add pypy to the list of default test configurations.
-
-0.12
-
-- Fixes an exception when reporting on an error where multiple drivers
-  have the same name (:issue:`25`, solution provided by clayg).
-- Switch packaging to use pbr_.
-- Add ``map_method()`` API to controllers.
-
-.. _pbr: https://github.com/openstack-dev/pbr
-
-0.11
-
-- Fixes logging configuration under Python 2.6 with a NullHandler.
-  (:issue:`2`)
-
-0.10
-
-- Adds ``propagate_map_exceptions`` parameter to all of the extension
-  managers which specifies whether exceptions are propagated up 
-  through the map call or logged and then ignored. The default is to
-  preserve the current behavior of logging and ignoring exceptions.
-  Christopher Yeoh <[email protected]>
-
-0.9
-
-- Add ``name_order`` parameter to
-  :class:`~stevedore.named.NamedExtensionManager` to coerce
-  :func:`map` into processing the extensions in the order they are
-  named when the manager is created, instead of the random order
-  they may have been loaded. Contributed by Daniel Rocco.
-- Change the
-  :class:`~stevedore.dispatch.NamedDispatchExtensionManager` to ignore
-  missing extensions (:issue:`14`).
-- Add ``__getitem__`` to
-  :class:`~stevedore.extension.ExtensionManager` for looking up
-  individual plugins by name (:issue:`15`).
-- Start working on the tutorial, :doc:`tutorial/index`.
-- Remove dependency on distribute, now that it is merged back into
-  setuptools 0.7 (:issue:`19`).
-
-0.8
-
-  - Ignore AssertionError exceptions generated when plugins are
-    loaded.
-  - Update :class:`~stevedore.named.NamedExtensionManager` to check
-    the name of a plugin before loading its code to avoid importing
-    anything we are not going to use.
-
-0.7.2
-
-  - Fix logging support for Python 2.6.
-
-0.7.1
-
-  - Fix an issue with logging configuration.
-
-0.7
-
-  - Add memoization to the entrypoint scanning code in
-    :class:`~stevedore.extension.ExtensionManager` to avoid
-    performance issues in situations where lots of managers are
-    instantiated with the same namespace argument.
-
-0.6
-
-  - Change the :class:`~stevedore.enabled.EnabledExtensionManager` to
-    load the extension before calling the check function so the plugin
-    can be asked if it should be enabled.
-
-0.5
-
-  - Add :class:`~stevedore.tests.manager.TestExtensionManager` for
-    writing tests for classes that use extension managers.
-
-0.4
-
-  - Removed the ``name`` argument to plugin constructors.
-  - Added ``driver`` property to :class:`~stevedore.driver.DriverManager`.
-
-0.3
-
-  - Added dispatch managers for selecting among a set of plugins at
-    runtime instead of load time.
-  - Added ``__call__`` method to
-    :class:`~stevedore.driver.DriverManager` so it can be invoked in a
-    more natural fashion for a single plugin.
-
-0.2
-
-  - Added documentation
-
-0.1
-
-  - First public release
+.. include:: ../../ChangeLog
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/doc/source/index.rst 
new/stevedore-1.12.0/doc/source/index.rst
--- old/stevedore-1.8.0/doc/source/index.rst    2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/doc/source/index.rst   2016-02-25 07:07:57.000000000 
+0100
@@ -16,6 +16,7 @@
 
 .. toctree::
    :glob:
+   :maxdepth: 2
 
    patterns_loading
    patterns_enabling
@@ -24,6 +25,10 @@
    sphinxext
    install
    essays/*
+
+.. toctree::
+   :maxdepth: 1
+
    history
 
 .. _setuptools entry points: 
http://packages.python.org/setuptools/pkg_resources.html#convenience-api
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/doc/source/install.rst 
new/stevedore-1.12.0/doc/source/install.rst
--- old/stevedore-1.8.0/doc/source/install.rst  2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/doc/source/install.rst 2016-02-25 07:07:57.000000000 
+0100
@@ -5,7 +5,7 @@
 Python Versions
 ===============
 
-stevedore is tested under Python 2.6, 2.7 and 3.4.
+stevedore is tested under Python 2.7 and 3.4.
 
 .. _install-basic:
 
@@ -36,6 +36,12 @@
 
 The source is hosted on the OpenStack infrastructure: 
https://git.openstack.org/cgit/openstack/stevedore/
 
+Entry point inspector
+=====================
+
+To list entrypoints and registered plugins this tool can be also very useful:
+https://pypi.python.org/pypi/entry_point_inspector
+
 Reporting Bugs
 ==============
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/doc/source/patterns_loading.rst 
new/stevedore-1.12.0/doc/source/patterns_loading.rst
--- old/stevedore-1.8.0/doc/source/patterns_loading.rst 2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/patterns_loading.rst        2016-02-25 
07:07:57.000000000 +0100
@@ -53,7 +53,7 @@
 =======================================
 
 *Hooks*, *signals*, or *callbacks* are invoked based on an event
-occuring within an application. All of the hooks for an application
+occurring within an application. All of the hooks for an application
 may share a single namespace (e.g., ``my.application.hooks``) and use
 a different name for the triggered event (e.g., ``startup`` and
 ``precommit``). Multiple entry points can share the same name within
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/stevedore-1.8.0/doc/source/tutorial/creating_plugins.rst 
new/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst
--- old/stevedore-1.8.0/doc/source/tutorial/creating_plugins.rst        
2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/doc/source/tutorial/creating_plugins.rst       
2016-02-25 07:07:57.000000000 +0100
@@ -54,15 +54,9 @@
    :language: python
    :prepend: # stevedore/example/simple.py
 
-An alternate implementation produces a reStructuredText `field list`_.
-
-.. literalinclude:: ../../../stevedore/example/fields.py
-   :language: python
-   :prepend: # stevedore/example/fields.py
-
-There are plenty of other formatting options, but these two examples
-will give us enough to work with to demonstrate registering and using
-pluins.
+There are plenty of other formatting options, but this example will
+give us enough to work with to demonstrate registering and using
+plugins.
 
 Registering the Plugins
 =======================
@@ -70,7 +64,7 @@
 To use setuptools entry points, you must package your application or
 library using setuptools. The build and packaging process generates
 metadata which is available after installation to find the plugins
-provided by each python distribution. 
+provided by each python distribution.
 
 The entry points must be declared as belonging to a specific
 namespace, so we need to pick one before going any further. These
@@ -94,9 +88,9 @@
    :language: python
    :lines: 37-43
 
-In this case, there are three plugins registered. The "simple" and
-"field" plugins defined above, and a "plain" plugin, which is just an
-alias for the simple plugin.
+In this case, there are two plugins registered. The "simple" plugin
+defined above, and a "plain" plugin, which is just an alias for the
+simple plugin.
 
 setuptools Metadata
 ===================
@@ -123,3 +117,45 @@
 
 .. _abc module: http://docs.python.org/2/library/abc.html
 .. _field list: 
http://docutils.sourceforge.net/docs/ref/rst/restructuredtext.html#field-lists
+
+Adding Plugins in Other Packages
+================================
+
+Part of the appeal of using entry points for plugins is that they can
+be distributed independently of an application. The namespace
+setuptools uses to find the plugins is different from the Python
+source code namespace. It is common to use a plugin namespace prefixed
+with the name of the application or library that loads the plugins, to
+ensure it is unique, but that name has no bearing on what Python
+package the code for the plugin should live in.
+
+For example, we can add an alternate implementation of a formatter
+plugin that produces a reStructuredText `field list`_.
+
+.. literalinclude:: ../../../stevedore/example2/fields.py
+   :language: python
+   :prepend: # stevedore/example2/fields.py
+
+The new plugin can then be packaged using a ``setup.py`` containing
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+   :language: python
+   :prepend: # stevedore/example2/setup.py
+
+The new plugin is in a separate ``stevedore-examples2`` package.
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+   :language: python
+   :lines: 3-4
+
+However, the plugin is registered as part of the
+``stevedore.example.formatter`` namespace.
+
+.. literalinclude:: ../../../stevedore/example2/setup.py
+   :language: python
+   :lines: 36-40
+
+When the plugin namespace is scanned, all packages on the current
+``PYTHONPATH`` are examined and the entry point from the second
+package is found and can be loaded without the application having to
+know where the plugin is actually installed.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/requirements.txt 
new/stevedore-1.12.0/requirements.txt
--- old/stevedore-1.8.0/requirements.txt        2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/requirements.txt       2016-02-25 07:07:57.000000000 
+0100
@@ -2,6 +2,5 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-pbr<2.0,>=1.6
-argparse
-six>=1.9.0
+pbr>=1.6 # Apache-2.0
+six>=1.9.0 # MIT
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/setup.cfg 
new/stevedore-1.12.0/setup.cfg
--- old/stevedore-1.8.0/setup.cfg       2015-09-08 18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/setup.cfg      2016-02-25 07:08:18.000000000 +0100
@@ -10,7 +10,6 @@
        License :: OSI Approved :: Apache Software License
        Programming Language :: Python
        Programming Language :: Python :: 2
-       Programming Language :: Python :: 2.6
        Programming Language :: Python :: 2.7
        Programming Language :: Python :: 3
        Programming Language :: Python :: 3.4
@@ -41,11 +40,14 @@
 build-dir = doc/build
 source-dir = doc/source
 
+[pbr]
+warnerrors = True
+
 [wheel]
 universal = true
 
 [egg_info]
-tag_svn_revision = 0
-tag_date = 0
 tag_build = 
+tag_date = 0
+tag_svn_revision = 0
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/setup.py 
new/stevedore-1.12.0/setup.py
--- old/stevedore-1.8.0/setup.py        2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/setup.py       2016-02-25 07:07:57.000000000 +0100
@@ -25,5 +25,5 @@
     pass
 
 setuptools.setup(
-    setup_requires=['pbr>=1.3'],
+    setup_requires=['pbr>=1.8'],
     pbr=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/__init__.py 
new/stevedore-1.12.0/stevedore/__init__.py
--- old/stevedore-1.8.0/stevedore/__init__.py   2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/stevedore/__init__.py  2016-02-25 07:07:57.000000000 
+0100
@@ -20,17 +20,5 @@
 # the app we're used from does not set up logging.
 LOG = logging.getLogger('stevedore')
 
-if hasattr(logging, 'NullHandler'):
-    LOG.addHandler(logging.NullHandler())
-else:
-    class NullHandler(logging.Handler):
-        def handle(self, record):
-            pass
+LOG.addHandler(logging.NullHandler())
 
-        def emit(self, record):
-            pass
-
-        def createLock(self):
-            self.lock = None
-
-    LOG.addHandler(NullHandler())
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/dispatch.py 
new/stevedore-1.12.0/stevedore/dispatch.py
--- old/stevedore-1.8.0/stevedore/dispatch.py   2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/stevedore/dispatch.py  2016-02-25 07:07:57.000000000 
+0100
@@ -1,6 +1,7 @@
 import logging
 
 from .enabled import EnabledExtensionManager
+from .exception import NoMatches
 
 LOG = logging.getLogger(__name__)
 
@@ -66,7 +67,7 @@
         """
         if not self.extensions:
             # FIXME: Use a more specific exception class here.
-            raise RuntimeError('No %s extensions found' % self.namespace)
+            raise NoMatches('No %s extensions found' % self.namespace)
         response = []
         for e in self.extensions:
             if filter_func(e, *args, **kwds):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/driver.py 
new/stevedore-1.12.0/stevedore/driver.py
--- old/stevedore-1.8.0/stevedore/driver.py     2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/stevedore/driver.py    2016-02-25 07:07:57.000000000 
+0100
@@ -1,3 +1,4 @@
+from .exception import NoMatches, MultipleMatches
 from .named import NamedExtensionManager
 
 
@@ -93,14 +94,14 @@
 
         if not self.extensions:
             name = self._names[0]
-            raise RuntimeError('No %r driver found, looking for %r' %
-                               (self.namespace, name))
+            raise NoMatches('No %r driver found, looking for %r' %
+                            (self.namespace, name))
         if len(self.extensions) > 1:
             discovered_drivers = ','.join(e.entry_point_target
                                           for e in self.extensions)
 
-            raise RuntimeError('Multiple %r drivers found: %s' %
-                               (self.namespace, discovered_drivers))
+            raise MultipleMatches('Multiple %r drivers found: %s' %
+                                  (self.namespace, discovered_drivers))
 
     def __call__(self, func, *args, **kwds):
         """Invokes func() for the single loaded extension.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/base.py 
new/stevedore-1.12.0/stevedore/example/base.py
--- old/stevedore-1.8.0/stevedore/example/base.py       2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/base.py      2016-02-25 
07:07:57.000000000 +0100
@@ -5,7 +5,7 @@
 
 @six.add_metaclass(abc.ABCMeta)
 class FormatterBase(object):
-    """Base class for example plugin used in the tutoral.
+    """Base class for example plugin used in the tutorial.
     """
 
     def __init__(self, max_width=60):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/fields.py 
new/stevedore-1.12.0/stevedore/example/fields.py
--- old/stevedore-1.8.0/stevedore/example/fields.py     2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/fields.py    1970-01-01 
01:00:00.000000000 +0100
@@ -1,36 +0,0 @@
-import textwrap
-
-from stevedore.example import base
-
-
-class FieldList(base.FormatterBase):
-    """Format values as a reStructuredText field list.
-
-    For example::
-
-      : name1 : value
-      : name2 : value
-      : name3 : a long value
-          will be wrapped with
-          a hanging indent
-    """
-
-    def format(self, data):
-        """Format the data and return unicode text.
-
-        :param data: A dictionary with string keys and simple types as
-                     values.
-        :type data: dict(str:?)
-        """
-        for name, value in sorted(data.items()):
-            full_text = ': {name} : {value}'.format(
-                name=name,
-                value=value,
-            )
-            wrapped_text = textwrap.fill(
-                full_text,
-                initial_indent='',
-                subsequent_indent='    ',
-                width=self.max_width,
-            )
-            yield wrapped_text + '\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example/setup.py 
new/stevedore-1.12.0/stevedore/example/setup.py
--- old/stevedore-1.8.0/stevedore/example/setup.py      2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/example/setup.py     2016-02-25 
07:07:57.000000000 +0100
@@ -7,16 +7,14 @@
     description='Demonstration package for stevedore',
 
     author='Doug Hellmann',
-    author_email='[email protected]',
+    author_email='[email protected]',
 
-    url='https://github.com/dreamhost/stevedore',
-    download_url='https://github.com/dreamhost/stevedore/tarball/master',
+    url='http://git.openstack.org/cgit/openstack/stevedore',
 
     classifiers=['Development Status :: 3 - Alpha',
                  'License :: OSI Approved :: Apache Software License',
                  'Programming Language :: Python',
                  'Programming Language :: Python :: 2',
-                 'Programming Language :: Python :: 2.6',
                  'Programming Language :: Python :: 2.7',
                  'Programming Language :: Python :: 3',
                  'Programming Language :: Python :: 3.4',
@@ -37,7 +35,6 @@
     entry_points={
         'stevedore.example.formatter': [
             'simple = stevedore.example.simple:Simple',
-            'field = stevedore.example.fields:FieldList',
             'plain = stevedore.example.simple:Simple',
         ],
     },
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example2/fields.py 
new/stevedore-1.12.0/stevedore/example2/fields.py
--- old/stevedore-1.8.0/stevedore/example2/fields.py    1970-01-01 
01:00:00.000000000 +0100
+++ new/stevedore-1.12.0/stevedore/example2/fields.py   2016-02-25 
07:07:57.000000000 +0100
@@ -0,0 +1,36 @@
+import textwrap
+
+from stevedore.example import base
+
+
+class FieldList(base.FormatterBase):
+    """Format values as a reStructuredText field list.
+
+    For example::
+
+      : name1 : value
+      : name2 : value
+      : name3 : a long value
+          will be wrapped with
+          a hanging indent
+    """
+
+    def format(self, data):
+        """Format the data and return unicode text.
+
+        :param data: A dictionary with string keys and simple types as
+                     values.
+        :type data: dict(str:?)
+        """
+        for name, value in sorted(data.items()):
+            full_text = ': {name} : {value}'.format(
+                name=name,
+                value=value,
+            )
+            wrapped_text = textwrap.fill(
+                full_text,
+                initial_indent='',
+                subsequent_indent='    ',
+                width=self.max_width,
+            )
+            yield wrapped_text + '\n'
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/example2/setup.py 
new/stevedore-1.12.0/stevedore/example2/setup.py
--- old/stevedore-1.8.0/stevedore/example2/setup.py     1970-01-01 
01:00:00.000000000 +0100
+++ new/stevedore-1.12.0/stevedore/example2/setup.py    2016-02-25 
07:07:57.000000000 +0100
@@ -0,0 +1,42 @@
+from setuptools import setup, find_packages
+
+setup(
+    name='stevedore-examples2',
+    version='1.0',
+
+    description='Demonstration package for stevedore',
+
+    author='Doug Hellmann',
+    author_email='[email protected]',
+
+    url='http://git.openstack.org/cgit/openstack/stevedore',
+
+    classifiers=['Development Status :: 3 - Alpha',
+                 'License :: OSI Approved :: Apache Software License',
+                 'Programming Language :: Python',
+                 'Programming Language :: Python :: 2',
+                 'Programming Language :: Python :: 2.7',
+                 'Programming Language :: Python :: 3',
+                 'Programming Language :: Python :: 3.4',
+                 'Intended Audience :: Developers',
+                 'Environment :: Console',
+                 ],
+
+    platforms=['Any'],
+
+    scripts=[],
+
+    provides=['stevedore.examples2',
+              ],
+
+    packages=find_packages(),
+    include_package_data=True,
+
+    entry_points={
+        'stevedore.example.formatter': [
+            'field = stevedore.example2.fields:FieldList',
+        ],
+    },
+
+    zip_safe=False,
+)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/exception.py 
new/stevedore-1.12.0/stevedore/exception.py
--- old/stevedore-1.8.0/stevedore/exception.py  1970-01-01 01:00:00.000000000 
+0100
+++ new/stevedore-1.12.0/stevedore/exception.py 2016-02-25 07:07:57.000000000 
+0100
@@ -0,0 +1,10 @@
+class NoUniqueMatch(RuntimeError):
+    """There was more that one on no extensions matching the query."""
+
+
+class NoMatches(NoUniqueMatch):
+    """There were no extensions with the diver name found."""
+
+
+class MultipleMatches(NoUniqueMatch):
+    """There were multiple matches for the given name."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/extension.py 
new/stevedore-1.12.0/stevedore/extension.py
--- old/stevedore-1.8.0/stevedore/extension.py  2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/stevedore/extension.py 2016-02-25 07:07:57.000000000 
+0100
@@ -5,6 +5,7 @@
 
 import logging
 
+from .exception import NoMatches
 
 LOG = logging.getLogger(__name__)
 
@@ -218,7 +219,7 @@
         """
         if not self.extensions:
             # FIXME: Use a more specific exception class here.
-            raise RuntimeError('No %s extensions found' % self.namespace)
+            raise NoMatches('No %s extensions found' % self.namespace)
         response = []
         for e in self.extensions:
             self._invoke_one_plugin(response.append, func, e, args, kwds)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/manager.py 
new/stevedore-1.12.0/stevedore/tests/manager.py
--- old/stevedore-1.8.0/stevedore/tests/manager.py      2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/manager.py     2016-02-25 
07:07:57.000000000 +0100
@@ -3,15 +3,11 @@
 Extension manager used only for testing.
 """
 
-import logging
 import warnings
 
 from stevedore import extension
 
 
-LOG = logging.getLogger(__name__)
-
-
 class TestExtensionManager(extension.ExtensionManager):
     """ExtensionManager that is explicitly initialized for tests.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_driver.py 
new/stevedore-1.12.0/stevedore/tests/test_driver.py
--- old/stevedore-1.8.0/stevedore/tests/test_driver.py  2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_driver.py 2016-02-25 
07:07:57.000000000 +0100
@@ -4,6 +4,7 @@
 import pkg_resources
 
 from stevedore import driver
+from stevedore import exception
 from stevedore import extension
 from stevedore.tests import test_extension
 from stevedore.tests import utils
@@ -37,7 +38,7 @@
     def test_no_drivers(self):
         try:
             driver.DriverManager('stevedore.test.extension.none', 't1')
-        except RuntimeError as err:
+        except exception.NoMatches as err:
             self.assertIn("No 'stevedore.test.extension.none' driver found",
                           str(err))
 
@@ -70,7 +71,7 @@
             dm = driver.DriverManager.make_test_instance(extensions[0])
             # Call the initialization code that verifies the extension
             dm._init_plugins(extensions)
-        except RuntimeError as err:
+        except exception.MultipleMatches as err:
             self.assertIn("Multiple", str(err))
         else:
             self.fail('Should have had an error')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/stevedore-1.8.0/stevedore/tests/test_example_fields.py 
new/stevedore-1.12.0/stevedore/tests/test_example_fields.py
--- old/stevedore-1.8.0/stevedore/tests/test_example_fields.py  2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_example_fields.py 2016-02-25 
07:07:57.000000000 +0100
@@ -1,7 +1,7 @@
-"""Tests for stevedore.exmaple.fields
+"""Tests for stevedore.example2.fields
 """
 
-from stevedore.example import fields
+from stevedore.example2 import fields
 from stevedore.tests import utils
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/stevedore-1.8.0/stevedore/tests/test_example_simple.py 
new/stevedore-1.12.0/stevedore/tests/test_example_simple.py
--- old/stevedore-1.8.0/stevedore/tests/test_example_simple.py  2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_example_simple.py 2016-02-25 
07:07:57.000000000 +0100
@@ -1,4 +1,4 @@
-"""Tests for stevedore.exmaple.simple
+"""Tests for stevedore.example.simple
 """
 
 from stevedore.example import simple
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore/tests/test_extension.py 
new/stevedore-1.12.0/stevedore/tests/test_extension.py
--- old/stevedore-1.8.0/stevedore/tests/test_extension.py       2015-09-08 
18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/stevedore/tests/test_extension.py      2016-02-25 
07:07:57.000000000 +0100
@@ -3,6 +3,7 @@
 
 import mock
 
+from stevedore import exception
 from stevedore import extension
 from stevedore.tests import utils
 
@@ -159,7 +160,7 @@
                                         )
         try:
             em.map(mapped, 1, 2, a='A', b='B')
-        except RuntimeError as err:
+        except exception.NoMatches as err:
             self.assertEqual(expected_str, str(err))
 
     def test_map_method(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/PKG-INFO 
new/stevedore-1.12.0/stevedore.egg-info/PKG-INFO
--- old/stevedore-1.8.0/stevedore.egg-info/PKG-INFO     2015-09-08 
18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/PKG-INFO    2016-02-25 
07:08:18.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: stevedore
-Version: 1.8.0
+Version: 1.12.0
 Summary: Manage dynamic plugins for Python applications
 Home-page: http://docs.openstack.org/developer/stevedore/
 Author: OpenStack
@@ -41,7 +41,6 @@
 Classifier: License :: OSI Approved :: Apache Software License
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 2
-Classifier: Programming Language :: Python :: 2.6
 Classifier: Programming Language :: Python :: 2.7
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3.4
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/SOURCES.txt 
new/stevedore-1.12.0/stevedore.egg-info/SOURCES.txt
--- old/stevedore-1.8.0/stevedore.egg-info/SOURCES.txt  2015-09-08 
18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/SOURCES.txt 2016-02-25 
07:08:18.000000000 +0100
@@ -42,6 +42,7 @@
 stevedore/dispatch.py
 stevedore/driver.py
 stevedore/enabled.py
+stevedore/exception.py
 stevedore/extension.py
 stevedore/hook.py
 stevedore/named.py
@@ -56,11 +57,13 @@
 stevedore.egg-info/top_level.txt
 stevedore/example/__init__.py
 stevedore/example/base.py
-stevedore/example/fields.py
 stevedore/example/load_as_driver.py
 stevedore/example/load_as_extension.py
 stevedore/example/setup.py
 stevedore/example/simple.py
+stevedore/example2/__init__.py
+stevedore/example2/fields.py
+stevedore/example2/setup.py
 stevedore/tests/__init__.py
 stevedore/tests/extension_unimportable.py
 stevedore/tests/manager.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/pbr.json 
new/stevedore-1.12.0/stevedore.egg-info/pbr.json
--- old/stevedore-1.8.0/stevedore.egg-info/pbr.json     2015-09-08 
18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/pbr.json    2016-02-25 
07:08:18.000000000 +0100
@@ -1 +1 @@
-{"git_version": "d229c84", "is_release": true}
\ No newline at end of file
+{"git_version": "8a19d5f", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/stevedore.egg-info/requires.txt 
new/stevedore-1.12.0/stevedore.egg-info/requires.txt
--- old/stevedore-1.8.0/stevedore.egg-info/requires.txt 2015-09-08 
18:03:12.000000000 +0200
+++ new/stevedore-1.12.0/stevedore.egg-info/requires.txt        2016-02-25 
07:08:18.000000000 +0100
@@ -1,3 +1,2 @@
-pbr<2.0,>=1.6
-argparse
+pbr>=1.6
 six>=1.9.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-1.8.0/test-requirements.txt 
new/stevedore-1.12.0/test-requirements.txt
--- old/stevedore-1.8.0/test-requirements.txt   2015-09-08 18:02:37.000000000 
+0200
+++ new/stevedore-1.12.0/test-requirements.txt  2016-02-25 07:07:57.000000000 
+0100
@@ -2,11 +2,11 @@
 # of appearance. Changing the order has an impact on the overall integration
 # process, which may cause wedges in the gate later.
 
-Pillow>=2.4.0 # MIT
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
-mock>=1.2
-coverage>=3.6
-testrepository>=0.0.18
-discover
+Pillow>=2.4.0 # PIL License
+sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2 # BSD
+mock>=1.2 # 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>=2.5.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.8.0/tox.ini new/stevedore-1.12.0/tox.ini
--- old/stevedore-1.8.0/tox.ini 2015-09-08 18:02:37.000000000 +0200
+++ new/stevedore-1.12.0/tox.ini        2016-02-25 07:07:57.000000000 +0100
@@ -1,12 +1,9 @@
 [tox]
-envlist = py34,py26,py27,pypy,pep8,docs
+envlist = py34,py27,pep8,docs
 
 [testenv]
 deps =
-  -r{toxinidir}/requirements.txt
   -r{toxinidir}/test-requirements.txt
-# tox passes --pre to pip by default, but we don't want that
-install_command = pip install {opts} {packages}
 distribute = False
 commands = python setup.py testr --testr-args='{posargs}'
 


Reply via email to