Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-os-service-types for 
openSUSE:Factory checked in at 2026-09-02 17:00:50
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-os-service-types (Old)
 and      /work/SRC/openSUSE:Factory/.python-os-service-types.new.1265 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-os-service-types"

Wed Sep  2 17:00:50 2026 rev:14 rq:1375231 version:1.9.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-os-service-types/python-os-service-types.changes
  2025-12-28 19:21:03.123466137 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-os-service-types.new.1265/python-os-service-types.changes
        2026-09-02 17:01:01.327747272 +0200
@@ -1,0 +2,16 @@
+Tue Sep  1 21:02:08 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 1.9.0:
+  * pre-commit: Bump versions
+  * Deprecate version attribute
+  * Drop Python 3.10 support
+  * zuul: Use openstack-python3-next-jobs template
+  * pre-commit: Bump versions
+  * Update packaging configuration
+  * typing: Update for typed testtools
+  * ruff: Configure hacking as external linter
+  * Run mypy from tox
+  * Add typing classifier
+  * ruff: Enable E5 check
+
+-------------------------------------------------------------------

Old:
----
  os_service_types-1.8.2.tar.gz

New:
----
  os_service_types-1.9.0.tar.gz

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

Other differences:
------------------
++++++ python-os-service-types.spec ++++++
--- /var/tmp/diff_new_pack.2Btcu0/_old  2026-09-02 17:01:02.119774480 +0200
+++ /var/tmp/diff_new_pack.2Btcu0/_new  2026-09-02 17:01:02.121774548 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-os-service-types
 #
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           python-os-service-types
-Version:        1.8.2
+Version:        1.9.0
 Release:        0
 Summary:        Python library for consuming OpenStack sevice-types-authority 
data
 License:        Apache-2.0
@@ -25,7 +25,7 @@
 URL:            https://docs.openstack.org/os-service-types/latest/
 Source0:        
https://files.pythonhosted.org/packages/source/o/os_service_types/os_service_types-%{version}.tar.gz
 BuildRequires:  %{python_module oslotest}
-BuildRequires:  %{python_module pbr >= 2.0.0}
+BuildRequires:  %{python_module pbr >= 6.1.1}
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module python-subunit}
 BuildRequires:  %{python_module requests-mock}
@@ -35,7 +35,7 @@
 BuildRequires:  %{python_module wheel}
 BuildRequires:  openstack-macros
 BuildArch:      noarch
-Requires:       python-typing-extensions
+Requires:       python-typing-extensions >= 4.1.0
 %if "python%{python_nodots_ver}" == "%{primary_python}"
 Obsoletes:      python3-os-service-types < %{version}
 %else

++++++ os_service_types-1.8.2.tar.gz -> os_service_types-1.9.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/.pre-commit-config.yaml 
new/os_service_types-1.9.0/.pre-commit-config.yaml
--- old/os_service_types-1.8.2/.pre-commit-config.yaml  2025-11-21 
14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/.pre-commit-config.yaml  2026-08-04 
15:05:33.000000000 +0200
@@ -15,26 +15,14 @@
         files: .*\.(yaml|yml)$
         exclude: '^zuul.d/.*$'
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.14.1
+    rev: v0.16.1
     hooks:
       - id: ruff-check
         args: ['--fix', '--unsafe-fixes']
       - id: ruff-format
   - repo: https://opendev.org/openstack/hacking
-    rev: 7.0.0
+    rev: 8.1.0
     hooks:
       - id: hacking
         exclude: '^(doc|releasenotes|tools)/.*$'
         additional_dependencies: []
-  - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.18.2
-    hooks:
-      - id: mypy
-        # keep this in-sync with '[mypy] exclude' in 'pyproject.toml'
-        exclude: |
-          (?x)(
-            doc/.*
-            | releasenotes/.*
-          )
-        additional_dependencies:
-          - types-requests
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/.zuul.yaml 
new/os_service_types-1.9.0/.zuul.yaml
--- old/os_service_types-1.8.2/.zuul.yaml       2025-11-21 14:54:04.000000000 
+0100
+++ new/os_service_types-1.9.0/.zuul.yaml       2026-08-04 15:05:33.000000000 
+0200
@@ -1,6 +1,9 @@
+---
+
 - project:
     templates:
       - openstack-python3-jobs
+      - openstack-python3-next-jobs
       - publish-openstack-docs-pti
       - check-requirements
       - release-notes-jobs-python3
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/ChangeLog 
new/os_service_types-1.9.0/ChangeLog
--- old/os_service_types-1.8.2/ChangeLog        2025-11-21 14:54:54.000000000 
+0100
+++ new/os_service_types-1.9.0/ChangeLog        2026-08-04 15:06:50.000000000 
+0200
@@ -1,6 +1,21 @@
 CHANGES
 =======
 
+1.9.0
+-----
+
+* pre-commit: Bump versions
+* Deprecate version attribute
+* Drop Python 3.10 support
+* zuul: Use openstack-python3-next-jobs template
+* pre-commit: Bump versions
+* Update packaging configuration
+* typing: Update for typed testtools
+* ruff: Configure hacking as external linter
+* Run mypy from tox
+* Add typing classifier
+* ruff: Enable E5 check
+
 1.8.2
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/PKG-INFO 
new/os_service_types-1.9.0/PKG-INFO
--- old/os_service_types-1.8.2/PKG-INFO 2025-11-21 14:54:54.492975000 +0100
+++ new/os_service_types-1.9.0/PKG-INFO 2026-08-04 15:06:50.115780400 +0200
@@ -1,26 +1,28 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: os-service-types
-Version: 1.8.2
+Version: 1.9.0
 Summary: Python library for consuming OpenStack sevice-types-authority data
 Author-email: OpenStack <[email protected]>
-License: Apache-2.0
+License-Expression: Apache-2.0
 Project-URL: Homepage, https://docs.openstack.org/os-service-types/
 Project-URL: Repository, https://opendev.org/openstack/os-service-types/
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Apache Software License
 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
-Requires-Python: >=3.10
+Classifier: Programming Language :: Python :: 3.14
+Classifier: Typing :: Typed
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr!=2.1.0,>=2.0.0
 Requires-Dist: typing-extensions>=4.1.0
+Dynamic: license-file
+Dynamic: requires-dist
 
 ================
 os-service-types
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/os_service_types/__init__.py 
new/os_service_types-1.9.0/os_service_types/__init__.py
--- old/os_service_types-1.8.2/os_service_types/__init__.py     2025-11-21 
14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types/__init__.py     2026-08-04 
15:05:33.000000000 +0200
@@ -10,23 +10,41 @@
 # License for the specific language governing permissions and limitations
 # under the License.
 
-__all__ = ['__version__', 'ServiceTypes']
+__all__ = ['ServiceTypes']
 
-from typing import TYPE_CHECKING, Optional
+from typing import cast, TYPE_CHECKING
+import warnings
 
 import pbr.version
 
 from os_service_types.service_types import ServiceTypes
 
 if TYPE_CHECKING:
+    from keystoneauth1 import session as ksa_session
     from requests import sessions
 
-__version__ = pbr.version.VersionInfo('os-service-types').version_string()
+
+def __getattr__(name: str) -> str:
+    if name == '__version__':
+        warnings.warn(
+            "Accessing os_service_types.__version__ is deprecated and will be "
+            "removed in a future release. Use importlib.metadata instead: "
+            "importlib.metadata.version('os-service-types')",
+            DeprecationWarning,
+            stacklevel=2,
+        )
+        version = pbr.version.VersionInfo('os-service-types').version_string()
+        return cast(str, version)
+    raise AttributeError(
+        f"module 'os_service_types' has no attribute {name!r}"
+    )
+
+
 _service_type_manager = None
 
 
 def get_service_types(
-    session: Optional['sessions.Session'] = None,
+    session: 'sessions.Session | ksa_session.Session | None' = None,
     only_remote: bool = False,
     warn: bool = False,
 ) -> ServiceTypes:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types/service_types.py 
new/os_service_types-1.9.0/os_service_types/service_types.py
--- old/os_service_types-1.8.2/os_service_types/service_types.py        
2025-11-21 14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types/service_types.py        
2026-08-04 15:05:33.000000000 +0200
@@ -14,13 +14,14 @@
 # limitations under the License.
 
 import copy
-from typing import TYPE_CHECKING, Optional, overload
+from typing import TYPE_CHECKING, overload
 
 import os_service_types.data
 from os_service_types import exc
 from os_service_types import types
 
 if TYPE_CHECKING:
+    from keystoneauth1 import session as ksa_session
     from requests import sessions
 
 __all__ = ['ServiceTypes']
@@ -71,7 +72,7 @@
 
     def __init__(
         self,
-        session: Optional['sessions.Session'] = None,
+        session: 'sessions.Session | ksa_session.Session | None' = None,
         only_remote: bool = False,
         warn: bool = False,
     ) -> None:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types/tests/base.py 
new/os_service_types-1.9.0/os_service_types/tests/base.py
--- old/os_service_types-1.8.2/os_service_types/tests/base.py   2025-11-21 
14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types/tests/base.py   2026-08-04 
15:05:33.000000000 +0200
@@ -203,6 +203,20 @@
         ),
     ]
 
+    service_types: os_service_types.ServiceTypes
+    service_type: str
+    official: str | None
+    aliases: list[str]
+    all_services: list[str]
+    all_types: list[str]
+    api_reference: str | None
+    api_reference_project: str | None
+    is_known: bool
+    is_alias: bool
+    is_official: bool
+    is_secondary: bool
+    project: str | None
+
     def test_get_service_type(self):
         if self.official:
             self.assertEqual(
@@ -260,6 +274,7 @@
             self.assertIsNone(service_data)
         else:
             self.assertIsNotNone(service_data)
+            assert service_data is not None
             self.assertEqual(self.project, service_data['project'])
             self.assertEqual(self.official, service_data['service_type'])
             self.assertEqual(
@@ -281,6 +296,7 @@
             self.assertIsNone(service_data)
         else:
             self.assertIsNotNone(service_data)
+            assert service_data is not None
             self.assertEqual(self.project, service_data['project'])
             self.assertEqual(self.official, service_data['service_type'])
             self.assertEqual(
@@ -300,7 +316,8 @@
         if self.is_secondary:
             self.skipTest("Secondary services have no project mapping")
             return
-        elif not self.project:
+
+        if not self.project:
             self.skipTest("Empty project is invalid but tested elsewhere.")
             return
 
@@ -312,6 +329,7 @@
         api_url = 'https://docs.openstack.org/api-ref/{api_reference}/'
 
         self.assertIsNotNone(service_data)
+        assert service_data is not None
         if self.api_reference_project:
             self.assertEqual(
                 self.api_reference_project,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types/tests/test_match.py 
new/os_service_types-1.9.0/os_service_types/tests/test_match.py
--- old/os_service_types-1.8.2/os_service_types/tests/test_match.py     
2025-11-21 14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types/tests/test_match.py     
2026-08-04 15:05:33.000000000 +0200
@@ -62,6 +62,10 @@
         ),
     ]
 
+    requested: str
+    found: str
+    is_match: bool
+
     def setUp(self):
         super().setUp()
         # Make an object with no network access
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/os_service_types/types.py 
new/os_service_types-1.9.0/os_service_types/types.py
--- old/os_service_types-1.8.2/os_service_types/types.py        2025-11-21 
14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types/types.py        2026-08-04 
15:05:33.000000000 +0200
@@ -11,14 +11,13 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-from typing import TypedDict
-
-from typing_extensions import NotRequired, Required
+from typing import NotRequired, Required, TypedDict
 
 
 class Service(TypedDict, total=False):
     aliases: NotRequired[list[str]]
     api_reference: Required[str]
+    api_reference_project: NotRequired[str]
     project: Required[str]
     service_type: Required[str]
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types.egg-info/PKG-INFO 
new/os_service_types-1.9.0/os_service_types.egg-info/PKG-INFO
--- old/os_service_types-1.8.2/os_service_types.egg-info/PKG-INFO       
2025-11-21 14:54:54.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types.egg-info/PKG-INFO       
2026-08-04 15:06:50.000000000 +0200
@@ -1,26 +1,28 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: os-service-types
-Version: 1.8.2
+Version: 1.9.0
 Summary: Python library for consuming OpenStack sevice-types-authority data
 Author-email: OpenStack <[email protected]>
-License: Apache-2.0
+License-Expression: Apache-2.0
 Project-URL: Homepage, https://docs.openstack.org/os-service-types/
 Project-URL: Repository, https://opendev.org/openstack/os-service-types/
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: Apache Software License
 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
-Requires-Python: >=3.10
+Classifier: Programming Language :: Python :: 3.14
+Classifier: Typing :: Typed
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr!=2.1.0,>=2.0.0
 Requires-Dist: typing-extensions>=4.1.0
+Dynamic: license-file
+Dynamic: requires-dist
 
 ================
 os-service-types
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types.egg-info/SOURCES.txt 
new/os_service_types-1.9.0/os_service_types.egg-info/SOURCES.txt
--- old/os_service_types-1.8.2/os_service_types.egg-info/SOURCES.txt    
2025-11-21 14:54:54.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types.egg-info/SOURCES.txt    
2026-08-04 15:06:50.000000000 +0200
@@ -49,6 +49,7 @@
 os_service_types/tests/test_warn.py
 releasenotes/notes/.placeholder
 releasenotes/notes/add-service-types-class-574caf54f7461163.yaml
+releasenotes/notes/deprecate-version-attribute-0f252741365d404f.yaml
 releasenotes/notes/drop-python-2-7-73d3113c69d724d6.yaml
 releasenotes/notes/drop-python-3-9-7e17864332d1675f.yaml
 releasenotes/notes/get-service-types-f5e56799a55a6df4.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/os_service_types.egg-info/pbr.json 
new/os_service_types-1.9.0/os_service_types.egg-info/pbr.json
--- old/os_service_types-1.8.2/os_service_types.egg-info/pbr.json       
2025-11-21 14:54:54.000000000 +0100
+++ new/os_service_types-1.9.0/os_service_types.egg-info/pbr.json       
2026-08-04 15:06:50.000000000 +0200
@@ -1 +1 @@
-{"git_version": "d9f9218", "is_release": true}
\ No newline at end of file
+{"git_version": "43e0430", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/pyproject.toml 
new/os_service_types-1.9.0/pyproject.toml
--- old/os_service_types-1.8.2/pyproject.toml   2025-11-21 14:54:04.000000000 
+0100
+++ new/os_service_types-1.9.0/pyproject.toml   2026-08-04 15:05:33.000000000 
+0200
@@ -9,44 +9,36 @@
     {name = "OpenStack", email = "[email protected]"},
 ]
 readme = {file = "README.rst", content-type = "text/x-rst"}
-license = {text = "Apache-2.0"}
+license = "Apache-2.0"
 dynamic = ["version", "dependencies"]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 classifiers = [
     "Environment :: OpenStack",
     "Intended Audience :: Developers",
-    "License :: OSI Approved :: Apache Software License",
     "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",
+    "Typing :: Typed",
 ]
 
 [project.urls]
 Homepage = "https://docs.openstack.org/os-service-types/";
 Repository = "https://opendev.org/openstack/os-service-types/";
 
-[tool.setuptools]
-packages = [
-    "os_service_types"
-]
+[tool.setuptools.packages.find]
+include = ["os_service_types"]
 
 [tool.mypy]
-python_version = "3.10"
+python_version = "3.11"
 show_column_numbers = true
 show_error_context = true
 strict = true
-extra_checks = true
-# keep this in-sync with 'mypy.exclude' in '.pre-commit-config.yaml'
-exclude = '''
-(?x)(
-    doc
-    | releasenotes
-  )
-'''
+disable_error_code = ["import-untyped"]
+exclude = "(?x)(doc | releasenotes)"
 
 [[tool.mypy.overrides]]
 module = ["os_service_types.tests.*"]
@@ -62,7 +54,8 @@
 docstring-code-format = true
 
 [tool.ruff.lint]
-select = ["E4", "E7", "E9", "F", "S", "UP"]
+select = ["E4", "E5", "E7", "E9", "F", "S", "UP"]
+external = ["H"]
 ignore = [
     # we only use asserts for type narrowing
     "S101",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/os_service_types-1.8.2/releasenotes/notes/deprecate-version-attribute-0f252741365d404f.yaml
 
new/os_service_types-1.9.0/releasenotes/notes/deprecate-version-attribute-0f252741365d404f.yaml
--- 
old/os_service_types-1.8.2/releasenotes/notes/deprecate-version-attribute-0f252741365d404f.yaml
     1970-01-01 01:00:00.000000000 +0100
+++ 
new/os_service_types-1.9.0/releasenotes/notes/deprecate-version-attribute-0f252741365d404f.yaml
     2026-08-04 15:05:33.000000000 +0200
@@ -0,0 +1,6 @@
+---
+deprecations:
+  - |
+    The ``os_service_types.__version__`` attribute has been deprecated for
+    removal. Prefer use of ``importlib.metadata`` to inspect version
+    information for installed packages.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/os_service_types-1.8.2/tox.ini 
new/os_service_types-1.9.0/tox.ini
--- old/os_service_types-1.8.2/tox.ini  2025-11-21 14:54:04.000000000 +0100
+++ new/os_service_types-1.9.0/tox.ini  2026-08-04 15:05:33.000000000 +0200
@@ -15,11 +15,22 @@
 [testenv:pep8]
 description =
   Run style checks.
-skip_install = true
 deps =
   pre-commit
+  {[testenv:mypy]deps}
 commands =
-  pre-commit run --all-files --show-diff-on-failure
+  pre-commit run -a
+  {[testenv:mypy]commands}
+
+[testenv:mypy]
+description =
+  Run type checks.
+deps =
+  {[testenv]deps}
+  mypy
+  types-requests
+commands =
+  mypy --cache-dir="{envdir}/mypy_cache" {posargs:os_service_types}
 
 [testenv:venv]
 commands = {posargs}

Reply via email to