Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-keystoneauth1 for 
openSUSE:Factory checked in at 2026-07-07 21:00:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keystoneauth1 (Old)
 and      /work/SRC/openSUSE:Factory/.python-keystoneauth1.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-keystoneauth1"

Tue Jul  7 21:00:58 2026 rev:24 rq:1364043 version:5.15.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-keystoneauth1/python-keystoneauth1.changes    
    2026-05-18 17:47:05.922026461 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-keystoneauth1.new.1982/python-keystoneauth1.changes
      2026-07-07 21:02:37.101071406 +0200
@@ -1,0 +2,13 @@
+Mon Jul  6 11:28:30 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 5.15.0:
+  * Drop Python 3.10 support
+  * trivial: Declare attributes on _BaseAdapter
+  * zuul: Use openstack-python3-next-jobs template
+  * pre-commit: Bump versions
+  * Remove get_oslo_config helper
+  * Drop unnecessary type: ignore
+  * tox: switch to recommended constraints parameter
+  * remove pbr as runtime dependency
+
+-------------------------------------------------------------------

Old:
----
  keystoneauth1-5.14.0.tar.gz

New:
----
  keystoneauth1-5.15.0.tar.gz

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

Other differences:
------------------
++++++ python-keystoneauth1.spec ++++++
--- /var/tmp/diff_new_pack.TX5c5e/_old  2026-07-07 21:02:37.737093165 +0200
+++ /var/tmp/diff_new_pack.TX5c5e/_new  2026-07-07 21:02:37.737093165 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-keystoneauth1
-Version:        5.14.0
+Version:        5.15.0
 Release:        0
 Summary:        OpenStack authenticating tools
 License:        Apache-2.0

++++++ keystoneauth1-5.14.0.tar.gz -> keystoneauth1-5.15.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/.pre-commit-config.yaml 
new/keystoneauth1-5.15.0/.pre-commit-config.yaml
--- old/keystoneauth1-5.14.0/.pre-commit-config.yaml    2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/.pre-commit-config.yaml    2026-07-03 
18:19:46.000000000 +0200
@@ -15,13 +15,13 @@
         files: .*\.(yaml|yml)$
         exclude: '^zuul.d/.*$'
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.15.5
+    rev: v0.15.18
     hooks:
       - id: ruff-check
         args: ['--fix', '--unsafe-fixes']
       - id: ruff-format
   - repo: https://opendev.org/openstack/hacking
-    rev: 8.0.0
+    rev: 8.1.0
     hooks:
       - id: hacking
         additional_dependencies:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/.zuul.yaml 
new/keystoneauth1-5.15.0/.zuul.yaml
--- old/keystoneauth1-5.14.0/.zuul.yaml 2026-05-13 11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/.zuul.yaml 2026-07-03 18:19:46.000000000 +0200
@@ -1,8 +1,11 @@
+---
+
 - project:
     templates:
       - check-requirements
       - lib-forward-testing-python3
       - openstack-python3-jobs
+      - openstack-python3-next-jobs
       - openstacksdk-functional-tips
       - openstacksdk-tox-tips
       - osc-tox-unit-tips
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/AUTHORS 
new/keystoneauth1-5.15.0/AUTHORS
--- old/keystoneauth1-5.14.0/AUTHORS    2026-05-13 11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/AUTHORS    2026-07-03 18:20:34.000000000 +0200
@@ -53,6 +53,7 @@
 Dmitry Tantsur <[email protected]>
 Dolph Mathews <[email protected]>
 Doug Fish <[email protected]>
+Doug Goldstein <[email protected]>
 Doug Hellmann <[email protected]>
 Doug Hellmann <[email protected]>
 Dr. Jens Harbott <[email protected]>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/ChangeLog 
new/keystoneauth1-5.15.0/ChangeLog
--- old/keystoneauth1-5.14.0/ChangeLog  2026-05-13 11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/ChangeLog  2026-07-03 18:20:34.000000000 +0200
@@ -1,6 +1,18 @@
 CHANGES
 =======
 
+5.15.0
+------
+
+* Drop Python 3.10 support
+* trivial: Declare attributes on \_BaseAdapter
+* zuul: Use openstack-python3-next-jobs template
+* pre-commit: Bump versions
+* Remove get\_oslo\_config helper
+* Drop unnecessary type: ignore
+* tox: switch to recommended constraints parameter
+* remove pbr as runtime dependency
+
 5.14.0
 ------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/PKG-INFO 
new/keystoneauth1-5.15.0/PKG-INFO
--- old/keystoneauth1-5.14.0/PKG-INFO   2026-05-13 11:08:18.059789200 +0200
+++ new/keystoneauth1-5.15.0/PKG-INFO   2026-07-03 18:20:34.464014500 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: keystoneauth1
-Version: 5.14.0
+Version: 5.15.0
 Summary: Authentication Library for OpenStack Identity
 Author-email: OpenStack <[email protected]>
 License-Expression: Apache-2.0
@@ -14,16 +14,15 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
-Requires-Dist: pbr>=2.0.0
 Requires-Dist: iso8601>=2.0.0
 Requires-Dist: requests>=2.14.2
 Requires-Dist: stevedore>=1.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/__init__.py 
new/keystoneauth1-5.15.0/keystoneauth1/__init__.py
--- old/keystoneauth1-5.14.0/keystoneauth1/__init__.py  2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/__init__.py  2026-07-03 
18:19:46.000000000 +0200
@@ -10,7 +10,7 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
-import pbr.version
+import importlib.metadata
 
 
-__version__ = pbr.version.VersionInfo('keystoneauth1').version_string()
+__version__ = importlib.metadata.version('keystoneauth1')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/_utils.py 
new/keystoneauth1-5.15.0/keystoneauth1/_utils.py
--- old/keystoneauth1-5.14.0/keystoneauth1/_utils.py    2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/_utils.py    2026-07-03 
18:19:46.000000000 +0200
@@ -66,7 +66,7 @@
     :rtype:
         datetime.datetime
     """
-    now = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
+    now = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
     delta = datetime.timedelta(
         days, seconds, microseconds, milliseconds, minutes, hours, weeks
     )
@@ -97,7 +97,7 @@
     :rtype:
         datetime.datetime
     """
-    now = datetime.datetime.now(datetime.timezone.utc).replace(tzinfo=None)
+    now = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
     delta = datetime.timedelta(
         days, seconds, microseconds, milliseconds, minutes, hours, weeks
     )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/adapter.py 
new/keystoneauth1-5.15.0/keystoneauth1/adapter.py
--- old/keystoneauth1-5.14.0/keystoneauth1/adapter.py   2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/adapter.py   2026-07-03 
18:19:46.000000000 +0200
@@ -21,7 +21,7 @@
 
 from keystoneauth1 import _fair_semaphore
 from keystoneauth1 import discover
-from keystoneauth1 import session
+from keystoneauth1 import session as _session
 
 if ty.TYPE_CHECKING:
     from keystoneauth1 import plugin
@@ -123,19 +123,42 @@
         a maximum of 60 seconds is used.
     """
 
+    session: _session.Session
+    service_type: str | None
+    service_name: str | None
+    interface: str | list[str] | None
+    region_name: str | None
+    endpoint_override: str | None
+    version: str | None
+    auth: 'plugin.BaseAuthPlugin | None'
+    user_agent: str | None
+    connect_retries: int | None
+    logger: logging.Logger | None
+    allow: dict[str, ty.Any]
+    additional_headers: collections.abc.MutableMapping[str, str]
     client_name: str | None = None
     client_version: str | None = None
+    allow_version_hack: bool | None
+    global_request_id: str | None
+    min_version: str | None
+    max_version: str | None
+    default_microversion: str | None
+    status_code_retries: int | None
+    retriable_status_codes: list[int] | None
+    raise_exc: bool | None
+    connect_retry_delay: float | None
+    status_code_retry_delay: float | None
 
     def __init__(
         self,
-        session: session.Session,
+        session: _session.Session,
         service_type: str | None = None,
         service_name: str | None = None,
         interface: str | list[str] | None = None,
         region_name: str | None = None,
         endpoint_override: str | None = None,
         version: str | None = None,
-        auth: ty.Optional['plugin.BaseAuthPlugin'] = None,
+        auth: 'plugin.BaseAuthPlugin | None' = None,
         user_agent: str | None = None,
         connect_retries: int | None = None,
         logger: logging.Logger | None = None,
@@ -174,23 +197,22 @@
         self.region_name = region_name
         self.endpoint_override = endpoint_override
         self.version = version
-        self.user_agent = user_agent
         self.auth = auth
+        self.user_agent = user_agent
         self.connect_retries = connect_retries
         self.logger = logger
         self.allow = allow or {}
         self.additional_headers = additional_headers or {}
         self.allow_version_hack = allow_version_hack
+        self.global_request_id = global_request_id
         self.min_version = min_version
         self.max_version = max_version
         self.default_microversion = default_microversion
         self.status_code_retries = status_code_retries
         self.retriable_status_codes = retriable_status_codes
+        self.raise_exc = raise_exc
         self.connect_retry_delay = connect_retry_delay
         self.status_code_retry_delay = status_code_retry_delay
-        self.raise_exc = raise_exc
-
-        self.global_request_id = global_request_id
 
         if client_name:
             self.client_name = client_name
@@ -262,7 +284,7 @@
         if self.default_microversion is not None:
             kwargs.setdefault('microversion', self.default_microversion)
 
-        if isinstance(self.session, session.Session | Adapter):
+        if isinstance(self.session, _session.Session | Adapter):
             # these things are unsupported by keystoneclient's session so be
             # careful with them until everyone has transitioned to ksa.
             # Allowing adapter allows adapter nesting that auth_token does.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystoneauth1-5.14.0/keystoneauth1/extras/_saml2/v3/adfs.py 
new/keystoneauth1-5.15.0/keystoneauth1/extras/_saml2/v3/adfs.py
--- old/keystoneauth1-5.14.0/keystoneauth1/extras/_saml2/v3/adfs.py     
2026-05-13 11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/extras/_saml2/v3/adfs.py     
2026-07-03 18:19:46.000000000 +0200
@@ -158,9 +158,7 @@
         :type fmt: string
 
         """
-        date_created = datetime.datetime.now(datetime.timezone.utc).replace(
-            tzinfo=None
-        )
+        date_created = datetime.datetime.now(datetime.UTC).replace(tzinfo=None)
         date_expires = date_created + datetime.timedelta(
             seconds=self.DEFAULT_ADFS_TOKEN_EXPIRATION
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/loading/_utils.py 
new/keystoneauth1-5.15.0/keystoneauth1/loading/_utils.py
--- old/keystoneauth1-5.14.0/keystoneauth1/loading/_utils.py    2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/loading/_utils.py    1970-01-01 
01:00:00.000000000 +0100
@@ -1,47 +0,0 @@
-# Licensed under the Apache License, Version 2.0 (the "License"); you may
-# not use this file except in compliance with the License. You may obtain
-# a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
-# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
-# License for the specific language governing permissions and limitations
-# under the License.
-
-import typing as ty
-
-if ty.TYPE_CHECKING:
-    from oslo_config import cfg as _cfg
-
-cfg = None
-_NOT_FOUND = object()
-
-
-def get_oslo_config() -> '_cfg':
-    """Runtime load the oslo.config object.
-
-    In performance optimization of openstackclient it was determined that even
-    optimistically loading oslo.config if available had a performance cost.
-    Given that we used to only raise the ImportError when the function was
-    called also attempt to do the import to do everything at runtime.
-    """
-    global cfg
-
-    # First Call
-    if not cfg:
-        try:
-            from oslo_config import cfg
-        except ImportError:
-            cfg = _NOT_FOUND
-
-    if cfg is _NOT_FOUND:
-        raise ImportError(
-            "oslo.config is not an automatic dependency of "
-            "keystoneauth. If you wish to use oslo.config "
-            "you need to import it into your application's "
-            "requirements file. "
-        )
-
-    return cfg
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystoneauth1-5.14.0/keystoneauth1/loading/adapter.py 
new/keystoneauth1-5.15.0/keystoneauth1/loading/adapter.py
--- old/keystoneauth1-5.14.0/keystoneauth1/loading/adapter.py   2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/loading/adapter.py   2026-07-03 
18:19:46.000000000 +0200
@@ -14,7 +14,6 @@
 import typing as ty
 
 from keystoneauth1 import adapter
-from keystoneauth1.loading import _utils
 from keystoneauth1.loading import base
 
 if ty.TYPE_CHECKING:
@@ -92,7 +91,8 @@
 
         :returns: A list of oslo_config options.
         """
-        cfg = _utils.get_oslo_config()
+        from oslo_config import cfg
+        from oslo_config import types
 
         if deprecated_opts is None:
             deprecated_opts = {}
@@ -194,7 +194,7 @@
             cfg.ListOpt(
                 'retriable-status-codes',
                 deprecated_opts=deprecated_opts.get('retriable-status-codes'),
-                item_type=cfg.types.Integer(),
+                item_type=types.Integer(),
                 help='List of retriable HTTP status codes that '
                 'should be retried. If not set default to '
                 ' [503]',
@@ -271,11 +271,13 @@
 
         :returns: The list of options that was registered.
         """
+        from oslo_config import cfg
+
         opts = self.get_conf_options(
             include_deprecated=include_deprecated,
             deprecated_opts=deprecated_opts,
         )
-        conf.register_group(_utils.get_oslo_config().OptGroup(group))
+        conf.register_group(cfg.OptGroup(group))
         conf.register_opts(opts, group=group)
         return opts
 
@@ -300,7 +302,7 @@
 
 
 def process_conf_options(
-    confgrp: 'cfg.OptGroup', kwargs: dict[str, ty.Any]
+    confgrp: 'cfg.ConfigOpts.GroupAttr', kwargs: dict[str, ty.Any]
 ) -> None:
     """Set Adapter constructor kwargs based on conf options.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/loading/opts.py 
new/keystoneauth1-5.15.0/keystoneauth1/loading/opts.py
--- old/keystoneauth1-5.14.0/keystoneauth1/loading/opts.py      2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/loading/opts.py      2026-07-03 
18:19:46.000000000 +0200
@@ -14,8 +14,6 @@
 import os
 import typing as ty
 
-from keystoneauth1.loading import _utils
-
 if ty.TYPE_CHECKING:
     from oslo_config import cfg
 
@@ -103,12 +101,13 @@
         return f'<Opt: {self.name}>'
 
     def _to_oslo_opt(self) -> 'cfg.Opt':
-        cfg = _utils.get_oslo_config()
+        from oslo_config import cfg
+
         deprecated_opts = [cfg.DeprecatedOpt(o.name) for o in self.deprecated]
 
         return cfg.Opt(
             name=self.name,
-            type=self.type,
+            type=self.type,  # type: ignore[arg-type]
             help=self.help,
             secret=self.secret,
             required=self.required,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystoneauth1-5.14.0/keystoneauth1/loading/session.py 
new/keystoneauth1-5.15.0/keystoneauth1/loading/session.py
--- old/keystoneauth1-5.14.0/keystoneauth1/loading/session.py   2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/loading/session.py   2026-07-03 
18:19:46.000000000 +0200
@@ -14,7 +14,6 @@
 import os
 import typing as ty
 
-from keystoneauth1.loading import _utils
 from keystoneauth1.loading import base
 from keystoneauth1 import session
 
@@ -188,7 +187,7 @@
 
         :returns: A list of oslo_config options.
         """
-        cfg = _utils.get_oslo_config()
+        from oslo_config import cfg
 
         if deprecated_opts is None:
             deprecated_opts = {}
@@ -267,8 +266,10 @@
 
         :returns: The list of options that was registered.
         """
+        from oslo_config import cfg
+
         opts = self.get_conf_options(deprecated_opts=deprecated_opts)
-        conf.register_group(_utils.get_oslo_config().OptGroup(group))
+        conf.register_group(cfg.OptGroup(group))
         conf.register_opts(opts, group=group)
         return opts
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1/session.py 
new/keystoneauth1-5.15.0/keystoneauth1/session.py
--- old/keystoneauth1-5.14.0/keystoneauth1/session.py   2026-05-13 
11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1/session.py   2026-07-03 
18:19:46.000000000 +0200
@@ -1670,4 +1670,4 @@
             # hands for no longer than 2 minutes before a ConnectionError is
             # raised.
             kwargs['socket_options'] = socket_options
-        super().init_poolmanager(*args, **kwargs)  # type: 
ignore[no-untyped-call]
+        super().init_poolmanager(*args, **kwargs)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1.egg-info/PKG-INFO 
new/keystoneauth1-5.15.0/keystoneauth1.egg-info/PKG-INFO
--- old/keystoneauth1-5.14.0/keystoneauth1.egg-info/PKG-INFO    2026-05-13 
11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1.egg-info/PKG-INFO    2026-07-03 
18:20:34.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: keystoneauth1
-Version: 5.14.0
+Version: 5.15.0
 Summary: Authentication Library for OpenStack Identity
 Author-email: OpenStack <[email protected]>
 License-Expression: Apache-2.0
@@ -14,16 +14,15 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
 Classifier: Programming Language :: Python :: 3.13
+Classifier: Programming Language :: Python :: 3.14
 Classifier: Programming Language :: Python :: Implementation :: CPython
 Classifier: Programming Language :: Python :: 3 :: Only
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
-Requires-Dist: pbr>=2.0.0
 Requires-Dist: iso8601>=2.0.0
 Requires-Dist: requests>=2.14.2
 Requires-Dist: stevedore>=1.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystoneauth1-5.14.0/keystoneauth1.egg-info/SOURCES.txt 
new/keystoneauth1-5.15.0/keystoneauth1.egg-info/SOURCES.txt
--- old/keystoneauth1-5.14.0/keystoneauth1.egg-info/SOURCES.txt 2026-05-13 
11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1.egg-info/SOURCES.txt 2026-07-03 
18:20:34.000000000 +0200
@@ -111,7 +111,6 @@
 keystoneauth1/identity/v3/tokenless_auth.py
 keystoneauth1/identity/v3/totp.py
 keystoneauth1/loading/__init__.py
-keystoneauth1/loading/_utils.py
 keystoneauth1/loading/adapter.py
 keystoneauth1/loading/base.py
 keystoneauth1/loading/cli.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/keystoneauth1.egg-info/pbr.json 
new/keystoneauth1-5.15.0/keystoneauth1.egg-info/pbr.json
--- old/keystoneauth1-5.14.0/keystoneauth1.egg-info/pbr.json    2026-05-13 
11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1.egg-info/pbr.json    2026-07-03 
18:20:34.000000000 +0200
@@ -1 +1 @@
-{"git_version": "69b8e21", "is_release": true}
\ No newline at end of file
+{"git_version": "9c28aa6", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/keystoneauth1-5.14.0/keystoneauth1.egg-info/requires.txt 
new/keystoneauth1-5.15.0/keystoneauth1.egg-info/requires.txt
--- old/keystoneauth1-5.14.0/keystoneauth1.egg-info/requires.txt        
2026-05-13 11:08:17.000000000 +0200
+++ new/keystoneauth1-5.15.0/keystoneauth1.egg-info/requires.txt        
2026-07-03 18:20:34.000000000 +0200
@@ -1,4 +1,3 @@
-pbr>=2.0.0
 iso8601>=2.0.0
 requests>=2.14.2
 stevedore>=1.20.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/pyproject.toml 
new/keystoneauth1-5.15.0/pyproject.toml
--- old/keystoneauth1-5.14.0/pyproject.toml     2026-05-13 11:07:01.000000000 
+0200
+++ new/keystoneauth1-5.15.0/pyproject.toml     2026-07-03 18:19:46.000000000 
+0200
@@ -11,7 +11,7 @@
 readme = {file = "README.rst", content-type = "text/x-rst"}
 license = "Apache-2.0"
 dynamic = ["version", "dependencies"]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 classifiers = [
     "Environment :: OpenStack",
     "Intended Audience :: Information Technology",
@@ -19,10 +19,10 @@
     "Operating System :: POSIX :: Linux",
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
     "Programming Language :: Python :: 3.13",
+    "Programming Language :: Python :: 3.14",
     "Programming Language :: Python :: Implementation :: CPython",
     "Programming Language :: Python :: 3 :: Only",
 ]
@@ -80,7 +80,7 @@
 include = ["keystoneauth1"]
 
 [tool.mypy]
-python_version = "3.10"
+python_version = "3.11"
 show_column_numbers = true
 show_error_context = true
 strict = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/requirements.txt 
new/keystoneauth1-5.15.0/requirements.txt
--- old/keystoneauth1-5.14.0/requirements.txt   2026-05-13 11:07:01.000000000 
+0200
+++ new/keystoneauth1-5.15.0/requirements.txt   2026-07-03 18:19:46.000000000 
+0200
@@ -11,7 +11,6 @@
 # of openstack-specific projects (allowing interaction with openstack APIs)
 # where oslo and associated transient dependencies are not desired.
 
-pbr>=2.0.0 # Apache-2.0
 iso8601>=2.0.0 # MIT
 requests>=2.14.2 # Apache-2.0
 stevedore>=1.20.0 # Apache-2.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keystoneauth1-5.14.0/tox.ini 
new/keystoneauth1-5.15.0/tox.ini
--- old/keystoneauth1-5.14.0/tox.ini    2026-05-13 11:07:01.000000000 +0200
+++ new/keystoneauth1-5.15.0/tox.ini    2026-07-03 18:19:46.000000000 +0200
@@ -1,5 +1,5 @@
 [tox]
-minversion = 4.3.0
+minversion = 4.28.0
 envlist = py3,pep8,releasenotes
 
 [testenv]
@@ -7,8 +7,9 @@
 setenv =
     OS_STDOUT_NOCAPTURE=False
     OS_STDERR_NOCAPTURE=False
+constraints =
+    
{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
 deps =
-    
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
     -r{toxinidir}/test-requirements.txt
     -r{toxinidir}/requirements.txt
 allowlist_externals =
@@ -61,7 +62,6 @@
     {[testenv]setenv}
     SPHINX_APIDOC_OPTIONS=noindex,members,undoc-members,show-inheritance
 deps =
-    
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
     -r{toxinidir}/doc/requirements.txt
 commands =
     bash -c "rm -rf doc/build"
@@ -84,7 +84,6 @@
 
 [testenv:releasenotes]
 deps =
-    
-c{env:TOX_CONSTRAINTS_FILE:https://releases.openstack.org/constraints/upper/master}
     -r{toxinidir}/doc/requirements.txt
 commands =
     sphinx-build -a -E -W -d releasenotes/build/doctrees -b html 
releasenotes/source releasenotes/build/html

Reply via email to