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}