Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-stevedore for 
openSUSE:Factory checked in at 2026-08-22 21:36:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-stevedore (Old)
 and      /work/SRC/openSUSE:Factory/.python-stevedore.new.1258 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-stevedore"

Sat Aug 22 21:36:40 2026 rev:53 rq:1373081 version:5.9.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-stevedore/python-stevedore.changes        
2026-07-06 12:34:40.052260236 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-stevedore.new.1258/python-stevedore.changes  
    2026-08-22 21:38:47.487903240 +0200
@@ -1,0 +2,8 @@
+Sat Aug 22 14:06:55 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 5.9.1:
+  * docs: Add guide on conflict resolution
+  * Fix conflict_resolver with DriverManager
+  * ruff: Use more explicit name for "UP" checks
+
+-------------------------------------------------------------------

Old:
----
  stevedore-5.9.0.tar.gz

New:
----
  stevedore-5.9.1.tar.gz

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

Other differences:
------------------
++++++ python-stevedore.spec ++++++
--- /var/tmp/diff_new_pack.BEedm0/_old  2026-08-22 21:38:48.743948229 +0200
+++ /var/tmp/diff_new_pack.BEedm0/_new  2026-08-22 21:38:48.748948408 +0200
@@ -18,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-stevedore
-Version:        5.9.0
+Version:        5.9.1
 Release:        0
 Summary:        Manage dynamic plugins for Python applications
 License:        Apache-2.0

++++++ stevedore-5.9.0.tar.gz -> stevedore-5.9.1.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/ChangeLog 
new/stevedore-5.9.1/ChangeLog
--- old/stevedore-5.9.0/ChangeLog       2026-07-02 13:37:18.000000000 +0200
+++ new/stevedore-5.9.1/ChangeLog       2026-08-20 17:24:26.036980000 +0200
@@ -1,6 +1,13 @@
 CHANGES
 =======
 
+5.9.1
+-----
+
+* docs: Add guide on conflict resolution
+* Fix conflict\_resolver with DriverManager
+* ruff: Use more explicit name for "UP" checks
+
 5.9.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/PKG-INFO new/stevedore-5.9.1/PKG-INFO
--- old/stevedore-5.9.0/PKG-INFO        2026-07-02 13:37:18.662969600 +0200
+++ new/stevedore-5.9.1/PKG-INFO        2026-08-20 17:24:26.183980200 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: stevedore
-Version: 5.9.0
+Version: 5.9.1
 Summary: Manage dynamic plugins for Python applications
 Author-email: OpenStack <[email protected]>
 License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/doc/source/reference/index.rst 
new/stevedore-5.9.1/doc/source/reference/index.rst
--- old/stevedore-5.9.0/doc/source/reference/index.rst  2026-07-02 
13:36:32.000000000 +0200
+++ new/stevedore-5.9.1/doc/source/reference/index.rst  2026-08-20 
17:23:34.702652700 +0200
@@ -1,51 +1,70 @@
-===========================
- Extension Manager Classes
-===========================
+===============
+ API Reference
+===============
+
+Extension Manager Classes
+=========================
 
 DriverManager
-=============
+-------------
 
 .. autoclass:: stevedore.driver.DriverManager
 
 HookManager
-===========
+-----------
 
 .. autoclass:: stevedore.hook.HookManager
 
 NamedExtensionManager
-=====================
+---------------------
 
 .. autoclass:: stevedore.named.NamedExtensionManager
 
 EnabledExtensionManager
-=======================
+-----------------------
 
 .. autoclass:: stevedore.enabled.EnabledExtensionManager
 
 DispatchExtensionManager
-========================
+------------------------
 
 .. autoclass:: stevedore.dispatch.DispatchExtensionManager
 
 NameDispatchExtensionManager
-============================
+----------------------------
 
 .. autoclass:: stevedore.dispatch.NameDispatchExtensionManager
 
 ExtensionManager
-================
+----------------
 
 .. autoclass:: stevedore.extension.ExtensionManager
 
 Extension
-=========
+---------
 
 .. autoclass:: stevedore.extension.Extension
    :members:
    :show-inheritance:
    :no-special-members:
 
-TestExtensionManager
-====================
+Conflict Resolution
+===================
+
+See :doc:`../user/conflict_resolution` for an overview of how conflicting
+entry point names are resolved.
+
+.. autodata:: stevedore.extension.ConflictResolverT
+
+.. autofunction:: stevedore.extension.ignore_conflicts
+
+.. autofunction:: stevedore.extension.error_on_conflict
+
+Exceptions
+==========
+
+.. autoexception:: stevedore.exception.NoUniqueMatch
+
+.. autoexception:: stevedore.exception.NoMatches
 
-.. autoclass:: stevedore.tests.manager.TestExtensionManager
+.. autoexception:: stevedore.exception.MultipleMatches
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/stevedore-5.9.0/doc/source/user/conflict_resolution.rst 
new/stevedore-5.9.1/doc/source/user/conflict_resolution.rst
--- old/stevedore-5.9.0/doc/source/user/conflict_resolution.rst 1970-01-01 
01:00:00.000000000 +0100
+++ new/stevedore-5.9.1/doc/source/user/conflict_resolution.rst 2026-08-20 
17:23:34.702652700 +0200
@@ -0,0 +1,138 @@
+=====================
+ Resolving Conflicts
+=====================
+
+.. versionadded:: 5.6.0
+
+Entry point names do not have to be unique within a namespace. This is
+intentional and is what makes the *hooks* pattern (:doc:`patterns_loading`)
+possible, where several entry points share a name so that they can all be
+invoked for a single event. For the *drivers* pattern, however, a name is
+expected to identify exactly one implementation, and for the *extensions*
+pattern each name is used to look up a single extension. When more than one
+entry point in a namespace registers under the same name, stevedore has to
+decide which one to use. This is a *conflict*, and the mechanism that decides
+what to do about it is the *conflict resolver*.
+
+Conflicts most commonly arise when two packages are installed that both
+provide a plugin under the same name in the same namespace. For example, two
+libraries that each register a ``sqlite`` driver in the ``myapp.database``
+namespace.
+
+The ``conflict_resolver`` parameter
+===================================
+
+The following managers accept a ``conflict_resolver`` keyword argument:
+
+* :class:`~stevedore.extension.ExtensionManager`
+* :class:`~stevedore.named.NamedExtensionManager`
+* :class:`~stevedore.driver.DriverManager`
+
+A conflict resolver is any callable matching
+:data:`~stevedore.extension.ConflictResolverT`. It is called with three
+arguments - the namespace, the conflicting name, and the list of
+:class:`~stevedore.extension.Extension` objects that share that name - and must
+return the single :class:`~stevedore.extension.Extension` to use (or raise an
+exception to abort):
+
+.. code-block:: python
+
+    def resolver(namespace, name, entrypoints):
+        # return one of the entries in ``entrypoints``
+        ...
+
+The resolver is only consulted for name-based lookups. For the
+:class:`~stevedore.extension.ExtensionManager` and
+:class:`~stevedore.named.NamedExtensionManager` this happens lazily, the first
+time an extension is retrieved by name. For the
+:class:`~stevedore.driver.DriverManager`, which always loads a single named
+driver, it is consulted when the manager is constructed.
+
+Built-in resolvers
+==================
+
+stevedore ships with two resolvers, both in the :mod:`stevedore.extension`
+module.
+
+:func:`~stevedore.extension.ignore_conflicts`
+    Logs a warning listing the conflicting implementations and returns the last
+    entry point found, so a single plugin is selected and no error is raised.
+    This is the default for :class:`~stevedore.extension.ExtensionManager` and
+    :class:`~stevedore.named.NamedExtensionManager`.
+
+:func:`~stevedore.extension.error_on_conflict`
+    Raises :class:`~stevedore.exception.MultipleMatches`, refusing to resolve
+    the conflict silently. This is the default for
+    :class:`~stevedore.driver.DriverManager`.
+
+.. versionchanged:: 5.9.1
+
+   Prior to 5.9.1, :class:`~stevedore.driver.DriverManager` unconditionally
+   raised :class:`~stevedore.exception.MultipleMatches` and ignored any
+   ``conflict_resolver`` that was passed. Since 5.9.1 this parameter is
+   honoured and defaults to :func:`~stevedore.extension.error_on_conflict` to
+   preserve the historical "raise on duplicate" behavior.
+
+Usage
+=====
+
+To have a :class:`~stevedore.driver.DriverManager` pick a driver instead of
+raising when duplicates are present, pass
+:func:`~stevedore.extension.ignore_conflicts`:
+
+.. code-block:: python
+
+    from stevedore import driver
+    from stevedore import extension
+
+    mgr = driver.DriverManager(
+        namespace='myapp.database',
+        name='sqlite',
+        invoke_on_load=True,
+        conflict_resolver=extension.ignore_conflicts,
+    )
+
+Alternatively, to make an :class:`~stevedore.extension.ExtensionManager` or
+:class:`~stevedore.named.NamedExtensionManager` raise on duplicates rather than
+silently choosing one, pass :func:`~stevedore.extension.error_on_conflict`:
+
+.. code-block:: python
+
+    from stevedore import extension
+
+    mgr = extension.ExtensionManager(
+        namespace='myapp.formatters',
+        conflict_resolver=extension.error_on_conflict,
+    )
+
+Writing a custom resolver
+=========================
+
+When neither built-in resolver expresses the policy you need, you can provide
+your own callable. This can be useful if you want to prefer an implementation
+from a particular package, for example. The example below prefers the first
+entry point discovered:
+
+.. code-block:: python
+
+    from stevedore import driver
+
+    def prefer_first(namespace, name, entrypoints):
+        return entrypoints[0]
+
+    mgr = driver.DriverManager(
+        namespace='myapp.database',
+        name='sqlite',
+        invoke_on_load=True,
+        conflict_resolver=prefer_first,
+    )
+
+A custom resolver may also raise an exception to reject the conflict, just as
+:func:`~stevedore.extension.error_on_conflict` does.
+
+.. seealso::
+
+   * :doc:`patterns_loading`
+   * :class:`stevedore.driver.DriverManager`
+   * :class:`stevedore.extension.ExtensionManager`
+   * :class:`stevedore.named.NamedExtensionManager`
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/doc/source/user/index.rst 
new/stevedore-5.9.1/doc/source/user/index.rst
--- old/stevedore-5.9.0/doc/source/user/index.rst       2026-07-02 
13:36:32.000000000 +0200
+++ new/stevedore-5.9.1/doc/source/user/index.rst       2026-08-20 
17:23:34.708648200 +0200
@@ -8,6 +8,7 @@
 
    patterns_loading
    patterns_enabling
+   conflict_resolution
    tutorial/index
    sphinxext
    essays/*
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/doc/source/user/tutorial/loading.rst 
new/stevedore-5.9.1/doc/source/user/tutorial/loading.rst
--- old/stevedore-5.9.0/doc/source/user/tutorial/loading.rst    2026-07-02 
13:36:32.000000000 +0200
+++ new/stevedore-5.9.1/doc/source/user/tutorial/loading.rst    2026-08-20 
17:23:34.709647400 +0200
@@ -39,6 +39,11 @@
 :attr:`driver` property of the manager, and then its methods can be
 called directly.
 
+Because a :class:`DriverManager` expects a name to identify exactly one
+driver, it will raise an error if more than one entry point in the
+namespace shares the requested name. See :doc:`../conflict_resolution`
+for how to control this behavior.
+
 .. literalinclude:: ../../../../stevedore/example/load_as_driver.py
    :language: python
    :lines: 43-44
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/pyproject.toml 
new/stevedore-5.9.1/pyproject.toml
--- old/stevedore-5.9.0/pyproject.toml  2026-07-02 13:36:32.000000000 +0200
+++ new/stevedore-5.9.1/pyproject.toml  2026-08-20 17:23:34.710646900 +0200
@@ -68,7 +68,7 @@
 skip-magic-trailing-comma = true
 
 [tool.ruff.lint]
-select = ["C4", "E4", "E5", "E7", "E9", "F", "G", "LOG", "S", "U"]
+select = ["C4", "E4", "E5", "E7", "E9", "F", "G", "LOG", "S", "UP"]
 external = ["H"]
 ignore = [
     # we only use asserts for type narrowing
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/stevedore-5.9.0/releasenotes/notes/driver-manager-conflict-resolver-0d1f7c2a4b6e8f10.yaml
 
new/stevedore-5.9.1/releasenotes/notes/driver-manager-conflict-resolver-0d1f7c2a4b6e8f10.yaml
--- 
old/stevedore-5.9.0/releasenotes/notes/driver-manager-conflict-resolver-0d1f7c2a4b6e8f10.yaml
       1970-01-01 01:00:00.000000000 +0100
+++ 
new/stevedore-5.9.1/releasenotes/notes/driver-manager-conflict-resolver-0d1f7c2a4b6e8f10.yaml
       2026-08-20 17:23:34.711646000 +0200
@@ -0,0 +1,24 @@
+---
+fixes:
+  - |
+    :class:`~stevedore.driver.DriverManager` now honors its
+    ``conflict_resolver`` parameter. Previously the parameter was accepted but
+    ignored: whenever multiple entry points in the namespace shared the
+    requested name, ``DriverManager`` unconditionally raised
+    :class:`~stevedore.exception.MultipleMatches`. The configured resolver is
+    now consulted, allowing callers to select a single driver (for example
+    with :func:`~stevedore.extension.ignore_conflicts`) or to apply custom
+    logic.
+upgrade:
+  - |
+    The default ``conflict_resolver`` for
+    :class:`~stevedore.driver.DriverManager` is now
+    :func:`~stevedore.extension.error_on_conflict` rather than
+    :func:`~stevedore.extension.ignore_conflicts`. This preserves the
+    historical behavior of raising
+    :class:`~stevedore.exception.MultipleMatches` when duplicate names are
+    found, so a duplicate is never resolved silently by default. Callers that
+    want a duplicate name to resolve to a single driver must now pass
+    ``conflict_resolver=stevedore.extension.ignore_conflicts`` (or a custom
+    resolver) explicitly. Note that the exception message raised on a conflict
+    has changed slightly, though the exception type is unchanged.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/stevedore/driver.py 
new/stevedore-5.9.1/stevedore/driver.py
--- old/stevedore-5.9.0/stevedore/driver.py     2026-07-02 13:36:32.000000000 
+0200
+++ new/stevedore-5.9.1/stevedore/driver.py     2026-08-20 17:23:34.719640000 
+0200
@@ -14,12 +14,11 @@
 import importlib.metadata
 from typing import Any, Concatenate, ParamSpec, Self, TypeVar
 
-from .exception import MultipleMatches
 from .exception import NoMatches
 from .extension import ConflictResolverT
+from .extension import error_on_conflict
 from .extension import Extension
 from .extension import ExtensionManager
-from .extension import ignore_conflicts
 from .extension import OnLoadFailureCallbackT
 from .named import NamedExtensionManager
 from .named import OnMissingEntrypointsCallbackT
@@ -60,7 +59,10 @@
         logging.
     :param conflict_resolver: A callable that determines what to do in the
         event that there are multiple entrypoints in the same group with the
-        same name. This is only used if retrieving entrypoint by name.
+        same name. Defaults to :func:`~stevedore.extension.error_on_conflict`,
+        which raises :class:`~stevedore.exception.MultipleMatches`. Pass
+        :func:`~stevedore.extension.ignore_conflicts` (or a custom callable)
+        to select a single driver instead of raising.
     """
 
     def __init__(
@@ -77,7 +79,7 @@
         verify_requirements: bool | None = None,
         warn_on_missing_entrypoint: bool | None = None,
         *,
-        conflict_resolver: 'ConflictResolverT[T]' = ignore_conflicts,
+        conflict_resolver: 'ConflictResolverT[T]' = error_on_conflict,
     ) -> None:
         invoke_args = () if invoke_args is None else invoke_args
         invoke_kwds = {} if invoke_kwds is None else invoke_kwds
@@ -114,7 +116,7 @@
         on_load_failure_callback: 'OnLoadFailureCallbackT[T] | None' = None,
         verify_requirements: bool | None = None,
         *,
-        conflict_resolver: 'ConflictResolverT[T]' = ignore_conflicts,
+        conflict_resolver: 'ConflictResolverT[T]' = error_on_conflict,
     ) -> Self:
         """Construct a test DriverManager
 
@@ -136,7 +138,8 @@
             removed in a future version.
         :param conflict_resolver: A callable that determines what to do in the
             event that there are multiple entrypoints in the same group with
-            the same name. This is only used if retrieving entrypoint by name.
+            the same name. Defaults to
+            :func:`~stevedore.extension.error_on_conflict`.
         :return: The manager instance, initialized for testing
         """
         o = super().make_test_instance(
@@ -152,20 +155,20 @@
     def _init_plugins(self, extensions: list[Extension[T]]) -> None:
         super()._init_plugins(extensions)
 
+        name = self._names[0]
         if not self.extensions:
-            name = self._names[0]
             raise NoMatches(
                 f'No {self.namespace!r} driver found, looking for {name!r}'
             )
         if len(self.extensions) > 1:
-            discovered_drivers = ','.join(
-                e.entry_point_target for e in self.extensions
-            )
-
-            raise MultipleMatches(
-                f'Multiple {self.namespace!r} drivers found: '
-                f'{discovered_drivers}'
-            )
+            # More than one entrypoint was found for the requested name. Since
+            # a DriverManager only ever loads a single name, this can only
+            # happen when multiple entrypoints in the namespace share that
+            # name. Defer to the configured conflict resolver to decide which
+            # one to use (or whether to raise).
+            self.extensions = [
+                self._conflict_resolver(self.namespace, name, self.extensions)
+            ]
 
     def __call__(
         self,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/stevedore/tests/test_driver.py 
new/stevedore-5.9.1/stevedore/tests/test_driver.py
--- old/stevedore-5.9.0/stevedore/tests/test_driver.py  2026-07-02 
13:36:32.000000000 +0200
+++ new/stevedore-5.9.1/stevedore/tests/test_driver.py  2026-08-20 
17:23:34.723637000 +0200
@@ -31,6 +31,23 @@
 class Bar(Base): ...
 
 
+def _conflicting_extensions():
+    return [
+        extension.Extension(
+            'backend',
+            importlib.metadata.EntryPoint('backend', 'pkg1:driver', 'backend'),
+            Foo,
+            None,
+        ),
+        extension.Extension(
+            'backend',
+            importlib.metadata.EntryPoint('backend', 'pkg2:driver', 'backend'),
+            Bar,
+            None,
+        ),
+    ]
+
+
 class TestCallback(utils.TestCase):
     def test_detect_plugins(self):
         em: driver.DriverManager[Any]
@@ -82,29 +99,42 @@
     def test_multiple_drivers(self):
         # The idea for this test was contributed by clayg:
         # https://gist.github.com/clayg/6311348
-        extensions: list[extension.Extension[Any]] = [
-            extension.Extension(
-                'backend',
-                importlib.metadata.EntryPoint(
-                    'backend', 'pkg1:driver', 'backend'
-                ),
-                Foo,
-                None,
-            ),
-            extension.Extension(
-                'backend',
-                importlib.metadata.EntryPoint(
-                    'backend', 'pkg2:driver', 'backend'
-                ),
-                Bar,
-                None,
-            ),
-        ]
+        extensions: list[extension.Extension[Any]] = _conflicting_extensions()
         try:
+            # By default a DriverManager raises when multiple entrypoints in
+            # the namespace share the requested name.
             dm = driver.DriverManager.make_test_instance(extensions[0])
             # Call the initialization code that verifies the extension
             dm._init_plugins(extensions)
         except exception.MultipleMatches as err:
-            self.assertIn("Multiple", str(err))
+            self.assertIn("multiple implementations", str(err))
+            self.assertIn("backend", str(err))
         else:
             self.fail('Should have had an error')
+
+    def test_multiple_drivers_ignore_conflicts(self):
+        # A conflict resolver can be used to select a single driver rather
+        # than raising when there are duplicate names.
+        extensions: list[extension.Extension[Any]] = _conflicting_extensions()
+        dm = driver.DriverManager.make_test_instance(
+            extensions[0], conflict_resolver=extension.ignore_conflicts
+        )
+        dm._init_plugins(extensions)
+        # ignore_conflicts keeps the last entrypoint found
+        self.assertEqual(1, len(dm.extensions))
+        self.assertIs(Bar, dm.driver)
+
+    def test_multiple_drivers_custom_resolver(self):
+        # A custom conflict resolver receives the namespace, name and the
+        # list of conflicting extensions, and returns the one to use.
+        extensions: list[extension.Extension[Any]] = _conflicting_extensions()
+
+        def prefer_first(namespace, name, conflicting):
+            return conflicting[0]
+
+        dm = driver.DriverManager.make_test_instance(
+            extensions[0], conflict_resolver=prefer_first
+        )
+        dm._init_plugins(extensions)
+        self.assertEqual(1, len(dm.extensions))
+        self.assertIs(Foo, dm.driver)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/stevedore.egg-info/PKG-INFO 
new/stevedore-5.9.1/stevedore.egg-info/PKG-INFO
--- old/stevedore-5.9.0/stevedore.egg-info/PKG-INFO     2026-07-02 
13:37:18.000000000 +0200
+++ new/stevedore-5.9.1/stevedore.egg-info/PKG-INFO     2026-08-20 
17:24:26.094980000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: stevedore
-Version: 5.9.0
+Version: 5.9.1
 Summary: Manage dynamic plugins for Python applications
 Author-email: OpenStack <[email protected]>
 License-Expression: Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/stevedore.egg-info/SOURCES.txt 
new/stevedore-5.9.1/stevedore.egg-info/SOURCES.txt
--- old/stevedore-5.9.0/stevedore.egg-info/SOURCES.txt  2026-07-02 
13:37:18.000000000 +0200
+++ new/stevedore-5.9.1/stevedore.egg-info/SOURCES.txt  2026-08-20 
17:24:26.139980000 +0200
@@ -18,6 +18,7 @@
 doc/source/index.rst
 doc/source/install/index.rst
 doc/source/reference/index.rst
+doc/source/user/conflict_resolution.rst
 doc/source/user/history.rst
 doc/source/user/index.rst
 doc/source/user/patterns_enabling.rst
@@ -43,6 +44,7 @@
 releasenotes/notes/conflict-resolution-12cd58160d48481a.yaml
 releasenotes/notes/deprecate-verify_requirements-33fe21fad9df33a1.yaml
 releasenotes/notes/deprecate-warn_on_missing_entrypoint-d7e3bf2d4421f4cc.yaml
+releasenotes/notes/driver-manager-conflict-resolver-0d1f7c2a4b6e8f10.yaml
 releasenotes/notes/drop-python-310-a175ee1330887985.yaml
 releasenotes/notes/drop-python2-support-3f0f717570cad8cb.yaml
 releasenotes/notes/entry-point-type-change-06ca3b301ba7aad1.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/stevedore-5.9.0/stevedore.egg-info/pbr.json 
new/stevedore-5.9.1/stevedore.egg-info/pbr.json
--- old/stevedore-5.9.0/stevedore.egg-info/pbr.json     2026-07-02 
13:37:18.000000000 +0200
+++ new/stevedore-5.9.1/stevedore.egg-info/pbr.json     2026-08-20 
17:24:26.093980000 +0200
@@ -1 +1 @@
-{"git_version": "8550c66", "is_release": true}
\ No newline at end of file
+{"git_version": "44e1028", "is_release": true}
\ No newline at end of file

Reply via email to