Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-oslo.versionedobjects for 
openSUSE:Factory checked in at 2026-03-12 22:21:40
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.versionedobjects (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.versionedobjects.new.8177 
(New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.versionedobjects"

Thu Mar 12 22:21:40 2026 rev:21 rq:1338421 version:3.9.0

Changes:
--------
--- 
/work/SRC/openSUSE:Factory/python-oslo.versionedobjects/python-oslo.versionedobjects.changes
        2025-11-10 19:18:01.446065303 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.versionedobjects.new.8177/python-oslo.versionedobjects.changes
      2026-03-12 22:26:10.043851300 +0100
@@ -1,0 +2,14 @@
+Sun Mar  8 21:01:28 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 3.9.0:
+  * Delay string interpolations at logging calls
+  * Remove reference to tag framework
+  * reno: Update master for unmaintained/2024.1
+  * Bump pyupgrade target to 3.10+
+  * Migrate bandit options to pyproject.toml
+  * pre-commit: Bump dependencies
+  * Migrate setup configuration to pyproject.toml
+  * Drop Python 3.9 support
+  * Update master for stable/2025.2
+
+-------------------------------------------------------------------

Old:
----
  oslo_versionedobjects-3.8.0.tar.gz

New:
----
  oslo_versionedobjects-3.9.0.tar.gz

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

Other differences:
------------------
++++++ python-oslo.versionedobjects.spec ++++++
--- /var/tmp/diff_new_pack.AuKJR3/_old  2026-03-12 22:26:10.583873938 +0100
+++ /var/tmp/diff_new_pack.AuKJR3/_new  2026-03-12 22:26:10.583873938 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.versionedobjects
 #
-# 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-oslo.versionedobjects
-Version:        3.8.0
+Version:        3.9.0
 Release:        0
 Summary:        Oslo Versioned Objects library
 License:        Apache-2.0

++++++ oslo_versionedobjects-3.8.0.tar.gz -> oslo_versionedobjects-3.9.0.tar.gz 
++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/.pre-commit-config.yaml 
new/oslo_versionedobjects-3.9.0/.pre-commit-config.yaml
--- old/oslo_versionedobjects-3.8.0/.pre-commit-config.yaml     2025-08-25 
14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/.pre-commit-config.yaml     2026-01-15 
14:33:03.000000000 +0100
@@ -1,20 +1,14 @@
 repos:
   - repo: https://github.com/pre-commit/pre-commit-hooks
-    rev: v5.0.0
+    rev: v6.0.0
     hooks:
       - id: trailing-whitespace
-      # Replaces or checks mixed line ending
       - id: mixed-line-ending
         args: ['--fix', 'lf']
         exclude: '.*\.(svg)$'
-      # Forbid files which have a UTF-8 byte-order marker
-      - id: check-byte-order-marker
-      # Checks that non-binary executables have a proper shebang
+      - id: fix-byte-order-marker
       - id: check-executables-have-shebangs
-      # Check for files that contain merge conflict strings.
       - id: check-merge-conflict
-      # Check for debugger imports and py37+ breakpoint()
-      # calls in python source
       - id: debug-statements
       - id: check-yaml
         files: .*\.(yaml|yml)$
@@ -24,12 +18,12 @@
       - id: hacking
         additional_dependencies: []
   - repo: https://github.com/PyCQA/bandit
-    rev: 1.7.10
+    rev: 1.8.6
     hooks:
       - id: bandit
-        args: ['-x', 'tests', '--skip', 'B303']
+        args: ['-c', 'pyproject.toml']
   - repo: https://github.com/asottile/pyupgrade
-    rev: v3.18.0
+    rev: v3.20.0
     hooks:
       - id: pyupgrade
-        args: [--py3-only]
+        args: [--py310-plus]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/ChangeLog 
new/oslo_versionedobjects-3.9.0/ChangeLog
--- old/oslo_versionedobjects-3.8.0/ChangeLog   2025-08-25 14:48:08.000000000 
+0200
+++ new/oslo_versionedobjects-3.9.0/ChangeLog   2026-01-15 14:33:52.000000000 
+0100
@@ -1,6 +1,19 @@
 CHANGES
 =======
 
+3.9.0
+-----
+
+* Delay string interpolations at logging calls
+* Remove reference to tag framework
+* reno: Update master for unmaintained/2024.1
+* Bump pyupgrade target to 3.10+
+* Migrate bandit options to pyproject.toml
+* pre-commit: Bump dependencies
+* Migrate setup configuration to pyproject.toml
+* Drop Python 3.9 support
+* Update master for stable/2025.2
+
 3.8.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/PKG-INFO 
new/oslo_versionedobjects-3.9.0/PKG-INFO
--- old/oslo_versionedobjects-3.8.0/PKG-INFO    2025-08-25 14:48:08.228206400 
+0200
+++ new/oslo_versionedobjects-3.9.0/PKG-INFO    2026-01-15 14:33:52.447821600 
+0100
@@ -1,10 +1,11 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: oslo.versionedobjects
-Version: 3.8.0
+Version: 3.9.0
 Summary: Oslo Versioned Objects library
-Home-page: https://docs.openstack.org/oslo.versionedobjects/latest/
-Author: OpenStack
-Author-email: [email protected]
+Author-email: OpenStack <[email protected]>
+License: Apache-2.0
+Project-URL: Homepage, https://docs.openstack.org/oslo.versionedobjects
+Project-URL: Repository, https://opendev.org/openstack/oslo.versionedobjects
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Information Technology
 Classifier: Intended Audience :: System Administrators
@@ -12,13 +13,12 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.9
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: oslo.concurrency>=3.26.0
 Requires-Dist: oslo.config>=5.2.0
@@ -30,20 +30,17 @@
 Requires-Dist: oslo.i18n>=3.15.3
 Requires-Dist: WebOb>=1.7.1
 Requires-Dist: netaddr>=0.7.18
+Dynamic: license-file
+Dynamic: requires-dist
 
-========================
-Team and repository tags
-========================
+=====================
+oslo.versionedobjects
+=====================
 
 .. image:: https://governance.openstack.org/tc/badges/oslo.versionedobjects.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
-=====================
-oslo.versionedobjects
-=====================
-
 .. image:: https://img.shields.io/pypi/v/oslo.versionedobjects.svg
     :target: https://pypi.org/project/oslo.versionedobjects/
     :alt: Latest Version
@@ -63,4 +60,3 @@
 * Source: http://opendev.org/openstack/oslo.versionedobjects
 * Bugs: http://bugs.launchpad.net/oslo.versionedobjects
 * Release notes: https://docs.openstack.org/releasenotes/oslo.versionedobjects/
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/README.rst 
new/oslo_versionedobjects-3.9.0/README.rst
--- old/oslo_versionedobjects-3.8.0/README.rst  2025-08-25 14:47:34.000000000 
+0200
+++ new/oslo_versionedobjects-3.9.0/README.rst  2026-01-15 14:33:03.000000000 
+0100
@@ -1,16 +1,11 @@
-========================
-Team and repository tags
-========================
+=====================
+oslo.versionedobjects
+=====================
 
 .. image:: https://governance.openstack.org/tc/badges/oslo.versionedobjects.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
-=====================
-oslo.versionedobjects
-=====================
-
 .. image:: https://img.shields.io/pypi/v/oslo.versionedobjects.svg
     :target: https://pypi.org/project/oslo.versionedobjects/
     :alt: Latest Version
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/PKG-INFO 
new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/PKG-INFO
--- old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/PKG-INFO     
2025-08-25 14:48:08.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/PKG-INFO     
2026-01-15 14:33:52.000000000 +0100
@@ -1,10 +1,11 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: oslo.versionedobjects
-Version: 3.8.0
+Version: 3.9.0
 Summary: Oslo Versioned Objects library
-Home-page: https://docs.openstack.org/oslo.versionedobjects/latest/
-Author: OpenStack
-Author-email: [email protected]
+Author-email: OpenStack <[email protected]>
+License: Apache-2.0
+Project-URL: Homepage, https://docs.openstack.org/oslo.versionedobjects
+Project-URL: Repository, https://opendev.org/openstack/oslo.versionedobjects
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Information Technology
 Classifier: Intended Audience :: System Administrators
@@ -12,13 +13,12 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
-Classifier: Programming Language :: Python :: 3 :: Only
-Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.9
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: oslo.concurrency>=3.26.0
 Requires-Dist: oslo.config>=5.2.0
@@ -30,20 +30,17 @@
 Requires-Dist: oslo.i18n>=3.15.3
 Requires-Dist: WebOb>=1.7.1
 Requires-Dist: netaddr>=0.7.18
+Dynamic: license-file
+Dynamic: requires-dist
 
-========================
-Team and repository tags
-========================
+=====================
+oslo.versionedobjects
+=====================
 
 .. image:: https://governance.openstack.org/tc/badges/oslo.versionedobjects.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
 
 .. Change things from this point on
 
-=====================
-oslo.versionedobjects
-=====================
-
 .. image:: https://img.shields.io/pypi/v/oslo.versionedobjects.svg
     :target: https://pypi.org/project/oslo.versionedobjects/
     :alt: Latest Version
@@ -63,4 +60,3 @@
 * Source: http://opendev.org/openstack/oslo.versionedobjects
 * Bugs: http://bugs.launchpad.net/oslo.versionedobjects
 * Release notes: https://docs.openstack.org/releasenotes/oslo.versionedobjects/
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/SOURCES.txt 
new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/SOURCES.txt
--- old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/SOURCES.txt  
2025-08-25 14:48:08.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/SOURCES.txt  
2026-01-15 14:33:52.000000000 +0100
@@ -60,12 +60,14 @@
 releasenotes/notes/add-reno-996dd44974d53238.yaml
 releasenotes/notes/drop-python27-support-b3e377b0dcfa4f5c.yaml
 releasenotes/notes/remove-py38-f4e8c7ce18a5914b.yaml
+releasenotes/notes/remove-py39-a35bc15c07073b80.yaml
 releasenotes/notes/update_md5_for_fips-e5a8f8f438ac81fb.yaml
 releasenotes/source/2023.1.rst
 releasenotes/source/2023.2.rst
 releasenotes/source/2024.1.rst
 releasenotes/source/2024.2.rst
 releasenotes/source/2025.1.rst
+releasenotes/source/2025.2.rst
 releasenotes/source/conf.py
 releasenotes/source/index.rst
 releasenotes/source/ocata.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/pbr.json 
new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/pbr.json
--- old/oslo_versionedobjects-3.8.0/oslo.versionedobjects.egg-info/pbr.json     
2025-08-25 14:48:08.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo.versionedobjects.egg-info/pbr.json     
2026-01-15 14:33:52.000000000 +0100
@@ -1 +1 @@
-{"git_version": "5c2d02e", "is_release": true}
\ No newline at end of file
+{"git_version": "cb6e312", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/base.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/base.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/base.py       
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/base.py       
2026-01-15 14:33:03.000000000 +0100
@@ -83,7 +83,7 @@
                 return setattr(self, attrname, field_value)
             except Exception:
                 with excutils.save_and_reraise_exception():
-                    attr = "{}.{}".format(self.obj_name(), name)
+                    attr = f"{self.obj_name()}.{name}"
                     LOG.exception('Error setting %(attr)s',
                                   {'attr': attr})
 
@@ -343,7 +343,7 @@
 
     @classmethod
     def _obj_primitive_key(cls, field):
-        return '{}.{}'.format(cls.OBJ_SERIAL_NAMESPACE, field)
+        return f'{cls.OBJ_SERIAL_NAMESPACE}.{field}'
 
     @classmethod
     def _obj_primitive_field(cls, primitive, field,
@@ -408,7 +408,7 @@
             # NOTE(danms): We don't do anything with this now, but it's
             # there for "the future"
             raise exception.UnsupportedObjectError(
-                objtype='{}.{}'.format(objns, objname))
+                objtype=f'{objns}.{objname}')
         objclass = cls.obj_class_from_name(objname, objver)
         return objclass._obj_from_primitive(context, objver, primitive)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/exception.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/exception.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/exception.py  
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/exception.py  
2026-01-15 14:33:03.000000000 +0100
@@ -122,7 +122,7 @@
                 # log the issue and the kwargs
                 LOG.exception('Exception in string format operation')
                 for name, value in kwargs.items():
-                    LOG.error("{}: {}".format(name, value))    # noqa
+                    LOG.error(f"{name}: {value}")    # noqa
 
                 if CONF.oslo_versionedobjects.fatal_exception_format_errors:
                     raise
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/fields.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/fields.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/fields.py     
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/fields.py     
2026-01-15 14:33:03.000000000 +0100
@@ -687,19 +687,19 @@
         primitive = {}
         for key, element in value.items():
             primitive[key] = self._element_type.to_primitive(
-                obj, '{}["{}"]'.format(attr, key), element)
+                obj, f'{attr}["{key}"]', element)
         return primitive
 
     def from_primitive(self, obj, attr, value):
         concrete = {}
         for key, element in value.items():
             concrete[key] = self._element_type.from_primitive(
-                obj, '{}["{}"]'.format(attr, key), element)
+                obj, f'{attr}["{key}"]', element)
         return concrete
 
     def stringify(self, value):
         return '{%s}' % (
-            ','.join(['{}={}'.format(key, self._element_type.stringify(val))
+            ','.join([f'{key}={self._element_type.stringify(val)}'
                       for key, val in sorted(value.items())]))
 
     def get_schema(self):
@@ -838,7 +838,7 @@
         else:
             ident = ''
 
-        return '{}{}'.format(value.obj_name(), ident)
+        return f'{value.obj_name()}{ident}'
 
     def get_schema(self):
         from oslo_versionedobjects import base as obj_base
@@ -937,7 +937,7 @@
             }
         args.update({'valid_values': valid_values})
         return '{}({})'.format(self._type.__class__.__name__,
-                               ','.join(['{}={}'.format(k, v)
+                               ','.join([f'{k}={v}'
                                          for k, v in sorted(args.items())]))
 
     @property
@@ -1152,7 +1152,7 @@
             }
         args.update({'valid_values': valid_values})
         return '{}({})'.format(self._type.__class__.__name__,
-                               ','.join(['{}={}'.format(k, v)
+                               ','.join([f'{k}={v}'
                                          for k, v in sorted(args.items())]))
 
 
@@ -1293,7 +1293,7 @@
         if not isinstance(key, str):
             raise KeyTypeError(str, key)
         if hasattr(self, "_element_type") and self._element_type is not None:
-            att_name = "{}[{}]".format(self._field, key)
+            att_name = f"{self._field}[{key}]"
             return self._element_type.coerce(self._obj, att_name, item)
         else:
             return item
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/fixture.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/fixture.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/fixture.py    
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/fixture.py    
2026-01-15 14:33:03.000000000 +0100
@@ -364,8 +364,8 @@
         for n in range(version[1] + 1):
             test_version = '%d.%d' % (version[0], n)
             # Run the test with OS_DEBUG=True to see this.
-            LOG.debug('testing obj: %s version: %s' %
-                      (obj_class.obj_name(), test_version))
+            LOG.debug('testing obj: %s version: %s',
+                      obj_class.obj_name(), test_version)
             kwargs['target_version'] = test_version
             obj_class(*init_args, **init_kwargs).obj_to_primitive(**kwargs)
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/tests/test_fields.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/tests/test_fields.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/tests/test_fields.py  
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/tests/test_fields.py  
2026-01-15 14:33:03.000000000 +0100
@@ -866,7 +866,7 @@
         self.from_primitive_values = [([self.uuid1], [self.uuid1])]
 
     def test_stringify(self):
-        self.assertEqual('[{},{}]'.format(self.uuid1, self.uuid2),
+        self.assertEqual(f'[{self.uuid1},{self.uuid2}]',
                          self.field.stringify([self.uuid1, self.uuid2]))
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/tests/test_fixture.py 
new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/tests/test_fixture.py
--- old/oslo_versionedobjects-3.8.0/oslo_versionedobjects/tests/test_fixture.py 
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/oslo_versionedobjects/tests/test_fixture.py 
2026-01-15 14:33:03.000000000 +0100
@@ -542,7 +542,7 @@
         # bandit rule while py38 is in our supported runtimes.
         expected_hash = hashlib.md5(bytes(repr(
             expected_relevant_data).encode())).hexdigest()  # nosec
-        expected_fp = '{}-{}'.format(MyObject.VERSION, expected_hash)
+        expected_fp = f'{MyObject.VERSION}-{expected_hash}'
 
         self.assertEqual(expected_fp, fp, "_get_fingerprint() did not "
                                           "generate a correct fingerprint.")
@@ -574,7 +574,7 @@
         # bandit rule while py38 is in our supported runtimes.
         expected_hash = hashlib.md5(bytes(repr(
             exp_relevant_data).encode())).hexdigest()  # nosec
-        expected_fp = '{}-{}'.format(MyObject.VERSION, expected_hash)
+        expected_fp = f'{MyObject.VERSION}-{expected_hash}'
 
         self.assertEqual(expected_fp, fp, "_get_fingerprint() did not "
                                           "generate a correct fingerprint.")
@@ -609,7 +609,7 @@
         # bandit rule while py38 is in our supported runtimes.
         expected_hash = hashlib.md5(bytes(repr(
             exp_relevant_data).encode())).hexdigest()  # nosec
-        expected_fp = '{}-{}'.format(ExtraDataObj.VERSION, expected_hash)
+        expected_fp = f'{ExtraDataObj.VERSION}-{expected_hash}'
 
         self.assertEqual(expected_fp, fp, "_get_fingerprint() did not "
                                           "generate a correct fingerprint.")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/pyproject.toml 
new/oslo_versionedobjects-3.9.0/pyproject.toml
--- old/oslo_versionedobjects-3.8.0/pyproject.toml      2025-08-25 
14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/pyproject.toml      2026-01-15 
14:33:03.000000000 +0100
@@ -1,3 +1,43 @@
 [build-system]
 requires = ["pbr>=6.1.1"]
 build-backend = "pbr.build"
+
+[project]
+name = "oslo.versionedobjects"
+description = "Oslo Versioned Objects library"
+authors = [
+    {name = "OpenStack", email = "[email protected]"},
+]
+readme = {file = "README.rst", content-type = "text/x-rst"}
+license = {text = "Apache-2.0"}
+dynamic = ["version", "dependencies"]
+requires-python = ">=3.10"
+classifiers = [
+    "Environment :: OpenStack",
+    "Intended Audience :: Information Technology",
+    "Intended Audience :: System Administrators",
+    "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",
+]
+
+[project.urls]
+Homepage = "https://docs.openstack.org/oslo.versionedobjects";
+Repository = "https://opendev.org/openstack/oslo.versionedobjects";
+
+[project.entry-points."oslo.config.opts"]
+"oslo.versionedobjects" = "oslo_versionedobjects._options:list_opts"
+
+[tool.setuptools]
+packages = [
+    "oslo_versionedobjects"
+]
+
+[tool.bandit]
+exclude_dirs = ["tests"]
+skips = ['B303']
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/releasenotes/notes/remove-py39-a35bc15c07073b80.yaml
 
new/oslo_versionedobjects-3.9.0/releasenotes/notes/remove-py39-a35bc15c07073b80.yaml
--- 
old/oslo_versionedobjects-3.8.0/releasenotes/notes/remove-py39-a35bc15c07073b80.yaml
        1970-01-01 01:00:00.000000000 +0100
+++ 
new/oslo_versionedobjects-3.9.0/releasenotes/notes/remove-py39-a35bc15c07073b80.yaml
        2026-01-15 14:33:03.000000000 +0100
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    Support for Python 3.9 has been removed. Now the minimum python version
+    supported is 3.10.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/releasenotes/source/2024.1.rst 
new/oslo_versionedobjects-3.9.0/releasenotes/source/2024.1.rst
--- old/oslo_versionedobjects-3.8.0/releasenotes/source/2024.1.rst      
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/releasenotes/source/2024.1.rst      
2026-01-15 14:33:03.000000000 +0100
@@ -3,4 +3,4 @@
 ===========================
 
 .. release-notes::
-   :branch: stable/2024.1
+   :branch: unmaintained/2024.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/releasenotes/source/2025.2.rst 
new/oslo_versionedobjects-3.9.0/releasenotes/source/2025.2.rst
--- old/oslo_versionedobjects-3.8.0/releasenotes/source/2025.2.rst      
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo_versionedobjects-3.9.0/releasenotes/source/2025.2.rst      
2026-01-15 14:33:03.000000000 +0100
@@ -0,0 +1,6 @@
+===========================
+2025.2 Series Release Notes
+===========================
+
+.. release-notes::
+   :branch: stable/2025.2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_versionedobjects-3.8.0/releasenotes/source/index.rst 
new/oslo_versionedobjects-3.9.0/releasenotes/source/index.rst
--- old/oslo_versionedobjects-3.8.0/releasenotes/source/index.rst       
2025-08-25 14:47:34.000000000 +0200
+++ new/oslo_versionedobjects-3.9.0/releasenotes/source/index.rst       
2026-01-15 14:33:03.000000000 +0100
@@ -6,6 +6,7 @@
    :maxdepth: 1
 
    unreleased
+   2025.2
    2025.1
    2024.2
    2024.1
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/setup.cfg 
new/oslo_versionedobjects-3.9.0/setup.cfg
--- old/oslo_versionedobjects-3.8.0/setup.cfg   2025-08-25 14:48:08.228206400 
+0200
+++ new/oslo_versionedobjects-3.9.0/setup.cfg   2026-01-15 14:33:52.448821500 
+0100
@@ -1,34 +1,5 @@
 [metadata]
 name = oslo.versionedobjects
-summary = Oslo Versioned Objects library
-description_file = 
-       README.rst
-author = OpenStack
-author_email = [email protected]
-home_page = https://docs.openstack.org/oslo.versionedobjects/latest/
-python_requires = >=3.9
-classifier = 
-       Environment :: OpenStack
-       Intended Audience :: Information Technology
-       Intended Audience :: System Administrators
-       License :: OSI Approved :: Apache Software License
-       Operating System :: POSIX :: Linux
-       Programming Language :: Python
-       Programming Language :: Python :: 3
-       Programming Language :: Python :: 3.9
-       Programming Language :: Python :: 3.10
-       Programming Language :: Python :: 3.11
-       Programming Language :: Python :: 3.12
-       Programming Language :: Python :: 3 :: Only
-       Programming Language :: Python :: Implementation :: CPython
-
-[files]
-packages = 
-       oslo_versionedobjects
-
-[entry_points]
-oslo.config.opts = 
-       oslo.versionedobjects = oslo_versionedobjects._options:list_opts
 
 [egg_info]
 tag_build = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_versionedobjects-3.8.0/tox.ini 
new/oslo_versionedobjects-3.9.0/tox.ini
--- old/oslo_versionedobjects-3.8.0/tox.ini     2025-08-25 14:47:34.000000000 
+0200
+++ new/oslo_versionedobjects-3.9.0/tox.ini     2026-01-15 14:33:03.000000000 
+0100
@@ -38,9 +38,11 @@
   sphinx-build -a -E -W -d releasenotes/build/doctrees --keep-going -b html 
releasenotes/source releasenotes/build/html
 
 [flake8]
+show-source = True
+# H904: Delay string interpolations at logging calls
+enable-extensions = H904
 # E123, E125 skipped as they are invalid PEP-8.
 # W504 skipped as you must choose this or W503
-show-source = True
 ignore = E123,E125,W504
 builtins = _
 exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build

Reply via email to