Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-oslo.context for 
openSUSE:Factory checked in at 2026-04-20 16:11:21
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-oslo.context (Old)
 and      /work/SRC/openSUSE:Factory/.python-oslo.context.new.11940 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-oslo.context"

Mon Apr 20 16:11:21 2026 rev:25 rq:1348074 version:6.3.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-oslo.context/python-oslo.context.changes  
2025-11-10 19:17:47.409477270 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-oslo.context.new.11940/python-oslo.context.changes
       2026-04-20 16:11:34.753849393 +0200
@@ -1,0 +2,24 @@
+Mon Mar  9 15:15:12 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 6.3.0:
+  * Add interface to override is\_admin check
+  * Add link for governance badges
+  * Add typing badge
+  * Add typing classifier
+  * Enable logging related ruff checks
+  * ruff: Enable missing E5 check
+  * typing: Simplify return type of
+    RequestContext.to\_policy\_values
+  * Run mypy from tox
+  * Delay string interpolations at logging calls
+  * Remove reference to tag framework
+  * Add missing py.typed file
+  * ruff: Use more specific name to enable pyupgrade rule
+  * reno: Update master for unmaintained/2024.1
+  * Add repository URL
+  * pre-commit: Bump dependencies
+  * Migrate setup configuration to pyproject.toml
+  * Drop Python 3.9 support
+  * Update master for stable/2025.2
+
+-------------------------------------------------------------------

Old:
----
  oslo_context-6.1.0.tar.gz

New:
----
  oslo_context-6.3.0.tar.gz

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

Other differences:
------------------
++++++ python-oslo.context.spec ++++++
--- /var/tmp/diff_new_pack.sWyEWv/_old  2026-04-20 16:11:35.937898145 +0200
+++ /var/tmp/diff_new_pack.sWyEWv/_new  2026-04-20 16:11:35.953898804 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-oslo.context
 #
-# 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
@@ -18,26 +18,27 @@
 
 %bcond_without test
 Name:           python-oslo.context
-Version:        6.1.0
+Version:        6.3.0
 Release:        0
 Summary:        OpenStack Oslo context library
 License:        Apache-2.0
 Group:          Development/Languages/Python
 URL:            https://docs.openstack.org/oslo.context
 Source0:        
https://files.pythonhosted.org/packages/source/o/oslo_context/oslo_context-%{version}.tar.gz
-BuildRequires:  %{python_module pbr}
+BuildRequires:  %{python_module pbr >= 2.0.0}
 BuildRequires:  %{python_module pip}
+BuildRequires:  %{python_module typing-extensions >= 4.12.0}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  openstack-macros
 BuildArch:      noarch
+Requires:       python-typing-extensions >= 4.12.0
 %if "python%{python_nodots_ver}" == "%{primary_python}"
 Obsoletes:      python3-oslo.context < %{version}
 %endif
 %if %{with test}
-BuildRequires:  %{python_module debtcollector}
-BuildRequires:  %{python_module fixtures}
-BuildRequires:  %{python_module oslotest}
-BuildRequires:  %{python_module stestr}
+BuildRequires:  %{python_module fixtures >= 3.0.0}
+BuildRequires:  %{python_module oslotest >= 3.2.0}
+BuildRequires:  %{python_module stestr >= 2.0.0}
 %endif
 %python_subpackages
 

++++++ oslo_context-6.1.0.tar.gz -> oslo_context-6.3.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/.pre-commit-config.yaml 
new/oslo_context-6.3.0/.pre-commit-config.yaml
--- old/oslo_context-6.1.0/.pre-commit-config.yaml      2025-08-25 
14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/.pre-commit-config.yaml      2026-02-17 
15:58:35.000000000 +0100
@@ -1,42 +1,26 @@
 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)$
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.11.3
+    rev: v0.14.8
     hooks:
-      - id: ruff
+      - id: ruff-check
         args: ['--fix', '--unsafe-fixes']
       - id: ruff-format
   - repo: https://opendev.org/openstack/hacking
-    rev: 7.0.0
+    rev: 8.0.0
     hooks:
       - id: hacking
         additional_dependencies: []
         exclude: '^(doc|releasenotes)/.*$'
-  - repo: https://github.com/pre-commit/mirrors-mypy
-    rev: v1.15.0
-    hooks:
-      - id: mypy
-        exclude: |
-          (?x)(
-            oslo_context/fixture.py
-            | doc/.*
-            | releasenotes/.*
-          )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/ChangeLog 
new/oslo_context-6.3.0/ChangeLog
--- old/oslo_context-6.1.0/ChangeLog    2025-08-25 14:53:46.000000000 +0200
+++ new/oslo_context-6.3.0/ChangeLog    2026-02-17 15:59:25.000000000 +0100
@@ -1,6 +1,32 @@
 CHANGES
 =======
 
+6.3.0
+-----
+
+* Add interface to override is\_admin check
+* Add link for governance badges
+* Add typing badge
+* Add typing classifier
+* Enable logging related ruff checks
+* ruff: Enable missing E5 check
+* typing: Simplify return type of RequestContext.to\_policy\_values
+* Run mypy from tox
+* Delay string interpolations at logging calls
+* Remove reference to tag framework
+
+6.2.0
+-----
+
+* Add missing py.typed file
+* ruff: Use more specific name to enable pyupgrade rule
+* reno: Update master for unmaintained/2024.1
+* Add repository URL
+* pre-commit: Bump dependencies
+* Migrate setup configuration to pyproject.toml
+* Drop Python 3.9 support
+* Update master for stable/2025.2
+
 6.1.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/PKG-INFO 
new/oslo_context-6.3.0/PKG-INFO
--- old/oslo_context-6.1.0/PKG-INFO     2025-08-25 14:53:46.389256500 +0200
+++ new/oslo_context-6.3.0/PKG-INFO     2026-02-17 15:59:25.606677500 +0100
@@ -1,10 +1,11 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: oslo.context
-Version: 6.1.0
+Version: 6.3.0
 Summary: Oslo Context library
-Home-page: https://docs.openstack.org/oslo.context/latest/
-Author: OpenStack
-Author-email: [email protected]
+Author-email: OpenStack <[email protected]>
+License: Apache-2.0
+Project-URL: Homepage, https://docs.openstack.org/oslo.context
+Project-URL: Repository, https://opendev.org/openstack/oslo.context
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Information Technology
 Classifier: Intended Audience :: System Administrators
@@ -12,44 +13,46 @@
 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.13
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.9
+Classifier: Typing :: Typed
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr>=2.0.0
 Requires-Dist: typing-extensions>=4.12.0
+Dynamic: license-file
+Dynamic: requires-dist
 
 ====================
 Oslo Context Library
 ====================
 
-The Oslo context library has helpers to maintain useful information
-about a request context. The request context is usually populated in
-the WSGI pipeline and used by various modules such as logging.
-
-* License: Apache License, Version 2.0
-* Documentation: https://docs.openstack.org/oslo.context/latest/
-* Source: https://opendev.org/openstack/oslo.context
-* Bugs: https://bugs.launchpad.net/oslo.context
-* Release notes:  https://docs.openstack.org/releasenotes/oslo.context/
-
-Team and repository tags
-========================
-
 .. image:: https://governance.openstack.org/tc/badges/oslo.context.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
-
-.. Change things from this point on
+    :target: https://governance.openstack.org/tc/reference/projects/oslo.html
 
-.. image:: https://img.shields.io/pypi/v/oslo.context.svg
+.. image:: https://img.shields.io/pypi/v/oslo.context
     :target: https://pypi.org/project/oslo.context/
     :alt: Latest Version
 
-.. image:: https://img.shields.io/pypi/dm/oslo.context.svg
+.. image:: https://img.shields.io/pypi/dm/oslo.context
     :target: https://pypi.org/project/oslo.context/
     :alt: Downloads
 
+.. image:: https://img.shields.io/pypi/types/oslo.context
+    :target: https://pypi.org/project/oslo.context/
+    :alt: Typing Status
+
+The oslo.context library has helpers to maintain useful information
+about a request context. The request context is usually populated in
+the WSGI pipeline and used by various modules such as logging.
+
+* License: Apache License, Version 2.0
+* Documentation: https://docs.openstack.org/oslo.context/latest/
+* Source: https://opendev.org/openstack/oslo.context
+* Bugs: https://bugs.launchpad.net/oslo.context
+* Release notes:  https://docs.openstack.org/releasenotes/oslo.context/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/README.rst 
new/oslo_context-6.3.0/README.rst
--- old/oslo_context-6.1.0/README.rst   2025-08-25 14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/README.rst   2026-02-17 15:58:35.000000000 +0100
@@ -2,7 +2,22 @@
 Oslo Context Library
 ====================
 
-The Oslo context library has helpers to maintain useful information
+.. image:: https://governance.openstack.org/tc/badges/oslo.context.svg
+    :target: https://governance.openstack.org/tc/reference/projects/oslo.html
+
+.. image:: https://img.shields.io/pypi/v/oslo.context
+    :target: https://pypi.org/project/oslo.context/
+    :alt: Latest Version
+
+.. image:: https://img.shields.io/pypi/dm/oslo.context
+    :target: https://pypi.org/project/oslo.context/
+    :alt: Downloads
+
+.. image:: https://img.shields.io/pypi/types/oslo.context
+    :target: https://pypi.org/project/oslo.context/
+    :alt: Typing Status
+
+The oslo.context library has helpers to maintain useful information
 about a request context. The request context is usually populated in
 the WSGI pipeline and used by various modules such as logging.
 
@@ -11,19 +26,3 @@
 * Source: https://opendev.org/openstack/oslo.context
 * Bugs: https://bugs.launchpad.net/oslo.context
 * Release notes:  https://docs.openstack.org/releasenotes/oslo.context/
-
-Team and repository tags
-========================
-
-.. image:: https://governance.openstack.org/tc/badges/oslo.context.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
-
-.. Change things from this point on
-
-.. image:: https://img.shields.io/pypi/v/oslo.context.svg
-    :target: https://pypi.org/project/oslo.context/
-    :alt: Latest Version
-
-.. image:: https://img.shields.io/pypi/dm/oslo.context.svg
-    :target: https://pypi.org/project/oslo.context/
-    :alt: Downloads
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/oslo.context.egg-info/PKG-INFO 
new/oslo_context-6.3.0/oslo.context.egg-info/PKG-INFO
--- old/oslo_context-6.1.0/oslo.context.egg-info/PKG-INFO       2025-08-25 
14:53:46.000000000 +0200
+++ new/oslo_context-6.3.0/oslo.context.egg-info/PKG-INFO       2026-02-17 
15:59:25.000000000 +0100
@@ -1,10 +1,11 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: oslo.context
-Version: 6.1.0
+Version: 6.3.0
 Summary: Oslo Context library
-Home-page: https://docs.openstack.org/oslo.context/latest/
-Author: OpenStack
-Author-email: [email protected]
+Author-email: OpenStack <[email protected]>
+License: Apache-2.0
+Project-URL: Homepage, https://docs.openstack.org/oslo.context
+Project-URL: Repository, https://opendev.org/openstack/oslo.context
 Classifier: Environment :: OpenStack
 Classifier: Intended Audience :: Information Technology
 Classifier: Intended Audience :: System Administrators
@@ -12,44 +13,46 @@
 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.13
 Classifier: Programming Language :: Python :: 3 :: Only
 Classifier: Programming Language :: Python :: Implementation :: CPython
-Requires-Python: >=3.9
+Classifier: Typing :: Typed
+Requires-Python: >=3.10
+Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: pbr>=2.0.0
 Requires-Dist: typing-extensions>=4.12.0
+Dynamic: license-file
+Dynamic: requires-dist
 
 ====================
 Oslo Context Library
 ====================
 
-The Oslo context library has helpers to maintain useful information
-about a request context. The request context is usually populated in
-the WSGI pipeline and used by various modules such as logging.
-
-* License: Apache License, Version 2.0
-* Documentation: https://docs.openstack.org/oslo.context/latest/
-* Source: https://opendev.org/openstack/oslo.context
-* Bugs: https://bugs.launchpad.net/oslo.context
-* Release notes:  https://docs.openstack.org/releasenotes/oslo.context/
-
-Team and repository tags
-========================
-
 .. image:: https://governance.openstack.org/tc/badges/oslo.context.svg
-    :target: https://governance.openstack.org/tc/reference/tags/index.html
-
-.. Change things from this point on
+    :target: https://governance.openstack.org/tc/reference/projects/oslo.html
 
-.. image:: https://img.shields.io/pypi/v/oslo.context.svg
+.. image:: https://img.shields.io/pypi/v/oslo.context
     :target: https://pypi.org/project/oslo.context/
     :alt: Latest Version
 
-.. image:: https://img.shields.io/pypi/dm/oslo.context.svg
+.. image:: https://img.shields.io/pypi/dm/oslo.context
     :target: https://pypi.org/project/oslo.context/
     :alt: Downloads
 
+.. image:: https://img.shields.io/pypi/types/oslo.context
+    :target: https://pypi.org/project/oslo.context/
+    :alt: Typing Status
+
+The oslo.context library has helpers to maintain useful information
+about a request context. The request context is usually populated in
+the WSGI pipeline and used by various modules such as logging.
+
+* License: Apache License, Version 2.0
+* Documentation: https://docs.openstack.org/oslo.context/latest/
+* Source: https://opendev.org/openstack/oslo.context
+* Bugs: https://bugs.launchpad.net/oslo.context
+* Release notes:  https://docs.openstack.org/releasenotes/oslo.context/
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/oslo.context.egg-info/SOURCES.txt 
new/oslo_context-6.3.0/oslo.context.egg-info/SOURCES.txt
--- old/oslo_context-6.1.0/oslo.context.egg-info/SOURCES.txt    2025-08-25 
14:53:46.000000000 +0200
+++ new/oslo_context-6.3.0/oslo.context.egg-info/SOURCES.txt    2026-02-17 
15:59:25.000000000 +0100
@@ -40,6 +40,7 @@
 oslo_context/__init__.py
 oslo_context/context.py
 oslo_context/fixture.py
+oslo_context/py.typed
 oslo_context/version.py
 oslo_context/tests/__init__.py
 oslo_context/tests/test_context.py
@@ -51,12 +52,14 @@
 releasenotes/notes/redacted-copy-efd02c83c287451f.yaml
 releasenotes/notes/remove-deprecated-args-044bc6bd79638988.yaml
 releasenotes/notes/remove-py38-f21fbda6dac198c4.yaml
+releasenotes/notes/remove-py39-643032e829d29b78.yaml
 releasenotes/notes/remove_deprecated_args_tenant-77724de1422f46d9.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/newton.rst
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/oslo.context.egg-info/pbr.json 
new/oslo_context-6.3.0/oslo.context.egg-info/pbr.json
--- old/oslo_context-6.1.0/oslo.context.egg-info/pbr.json       2025-08-25 
14:53:46.000000000 +0200
+++ new/oslo_context-6.3.0/oslo.context.egg-info/pbr.json       2026-02-17 
15:59:25.000000000 +0100
@@ -1 +1 @@
-{"git_version": "f23bc41", "is_release": true}
\ No newline at end of file
+{"git_version": "45fea5f", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/oslo_context/context.py 
new/oslo_context-6.3.0/oslo_context/context.py
--- old/oslo_context-6.1.0/oslo_context/context.py      2025-08-25 
14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/oslo_context/context.py      2026-02-17 
15:58:35.000000000 +0100
@@ -147,37 +147,37 @@
 
     def __init__(
         self,
-        auth_token: ty.Optional[str] = None,
-        user_id: ty.Optional[str] = None,
-        project_id: ty.Optional[str] = None,
-        domain_id: ty.Optional[str] = None,
-        user_domain_id: ty.Optional[str] = None,
-        project_domain_id: ty.Optional[str] = None,
-        is_admin: bool = False,
+        auth_token: str | None = None,
+        user_id: str | None = None,
+        project_id: str | None = None,
+        domain_id: str | None = None,
+        user_domain_id: str | None = None,
+        project_domain_id: str | None = None,
+        is_admin: bool | None = False,
         read_only: bool = False,
         show_deleted: bool = False,
-        request_id: ty.Optional[str] = None,
-        resource_uuid: ty.Optional[str] = None,
+        request_id: str | None = None,
+        resource_uuid: str | None = None,
         overwrite: bool = True,
-        roles: ty.Optional[list[str]] = None,
-        user_name: ty.Optional[str] = None,
-        project_name: ty.Optional[str] = None,
-        domain_name: ty.Optional[str] = None,
-        user_domain_name: ty.Optional[str] = None,
-        project_domain_name: ty.Optional[str] = None,
+        roles: list[str] | None = None,
+        user_name: str | None = None,
+        project_name: str | None = None,
+        domain_name: str | None = None,
+        user_domain_name: str | None = None,
+        project_domain_name: str | None = None,
         is_admin_project: bool = True,
-        service_token: ty.Optional[str] = None,
-        service_user_id: ty.Optional[str] = None,
-        service_user_name: ty.Optional[str] = None,
-        service_user_domain_id: ty.Optional[str] = None,
-        service_user_domain_name: ty.Optional[str] = None,
-        service_project_id: ty.Optional[str] = None,
-        service_project_name: ty.Optional[str] = None,
-        service_project_domain_id: ty.Optional[str] = None,
-        service_project_domain_name: ty.Optional[str] = None,
-        service_roles: ty.Optional[list[str]] = None,
-        global_request_id: ty.Optional[str] = None,
-        system_scope: ty.Optional[str] = None,
+        service_token: str | None = None,
+        service_user_id: str | None = None,
+        service_user_name: str | None = None,
+        service_user_domain_id: str | None = None,
+        service_user_domain_name: str | None = None,
+        service_project_id: str | None = None,
+        service_project_name: str | None = None,
+        service_project_domain_id: str | None = None,
+        service_project_domain_name: str | None = None,
+        service_roles: list[str] | None = None,
+        global_request_id: str | None = None,
+        system_scope: str | None = None,
     ):
         """Initialize the RequestContext
 
@@ -186,12 +186,10 @@
         :param is_admin_project: Whether the specified project is specified in
                                  the token as the admin project. Defaults to
                                  True for backwards compatibility.
-        :type is_admin_project: bool
         :param system_scope: The system scope of a token. The value ``all``
                              represents the entire deployment system. A service
                              ID represents a specific service within the
                              deployment system.
-        :type system_scope: string
         """
         # setting to private variables to avoid triggering subclass properties
         self.user_id = user_id
@@ -207,7 +205,7 @@
         self.system_scope = system_scope
         self.user_domain_name = user_domain_name
         self.project_domain_name = project_domain_name
-        self.is_admin = is_admin
+        self._is_admin = is_admin
         self.is_admin_project = is_admin_project
         self.read_only = read_only
         self.show_deleted = show_deleted
@@ -234,11 +232,22 @@
         if overwrite or not get_current():
             self.update_store()
 
+    @property
+    def is_admin(self) -> bool | None:
+        # NOTE(tkajinam): Provide the property interface so that additional
+        # mechanism to detect its value from Context instance can be
+        # implemented by override
+        return self._is_admin
+
+    @is_admin.setter
+    def is_admin(self, value: bool | None) -> None:
+        self._is_admin = value
+
     def update_store(self) -> None:
         """Store the context in the current thread."""
         _request_store.context = self
 
-    def to_policy_values(self) -> _DeprecatedPolicyValues:
+    def to_policy_values(self) -> _MutableMapping:
         """A dictionary of context attributes to enforce policy with.
 
         oslo.policy enforcement requires a dictionary of attributes
@@ -466,7 +475,7 @@
     function: ty.Callable[..., ty.Any],
     args: list[ty.Any],
     kwargs: dict[str, ty.Any],
-) -> ty.Optional[RequestContext]:
+) -> RequestContext | None:
     """Find an arg of type RequestContext and return it.
 
     This is useful in a couple of decorators where we don't know much about the
@@ -488,7 +497,7 @@
     return True
 
 
-def get_current() -> ty.Optional[RequestContext]:
+def get_current() -> RequestContext | None:
     """Return this thread's current context
 
     If no context is set, returns None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_context-6.1.0/oslo_context/tests/test_context.py 
new/oslo_context-6.3.0/oslo_context/tests/test_context.py
--- old/oslo_context-6.1.0/oslo_context/tests/test_context.py   2025-08-25 
14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/oslo_context/tests/test_context.py   2026-02-17 
15:58:35.000000000 +0100
@@ -492,7 +492,10 @@
         self.assertEqual(show_deleted, d['show_deleted'])
         self.assertEqual(request_id, d['request_id'])
         self.assertEqual(resource_uuid, d['resource_uuid'])
-        user_identity = f"{user_id} {project_id} {domain_id} {user_domain_id} 
{project_domain_id}"
+        user_identity = (
+            f"{user_id} {project_id} {domain_id} {user_domain_id} "
+            f"{project_domain_id}"
+        )
         self.assertEqual(user_identity, d['user_identity'])
         self.assertEqual([], d['roles'])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/pyproject.toml 
new/oslo_context-6.3.0/pyproject.toml
--- old/oslo_context-6.1.0/pyproject.toml       2025-08-25 14:52:37.000000000 
+0200
+++ new/oslo_context-6.3.0/pyproject.toml       2026-02-17 15:58:35.000000000 
+0100
@@ -2,6 +2,56 @@
 requires = ["pbr>=6.1.1"]
 build-backend = "pbr.build"
 
+[project]
+name = "oslo.context"
+description = "Oslo Context 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",
+    "Programming Language :: Python :: 3 :: Only",
+    "Programming Language :: Python :: Implementation :: CPython",
+    "Typing :: Typed",
+]
+
+[project.urls]
+Homepage = "https://docs.openstack.org/oslo.context";
+Repository = "https://opendev.org/openstack/oslo.context";
+
+[tool.setuptools]
+packages = [
+    "oslo_context"
+]
+
+[tool.mypy]
+python_version = "3.10"
+show_column_numbers = true
+show_error_context = true
+strict = true
+ignore_missing_imports = true
+exclude = '(?x)(doc | releasenotes)'
+
+[[tool.mypy.overrides]]
+module = ["oslo_context.tests.*"]
+disallow_untyped_calls = false
+disallow_untyped_defs = false
+disallow_subclassing_any = false
+
 [tool.ruff]
 line-length = 79
 
@@ -10,47 +60,7 @@
 docstring-code-format = true
 
 [tool.ruff.lint]
-select = ["E4", "E7", "E9", "F", "S", "U"]
+select = ["E4", "E5", "E7", "E9", "F", "G", "LOG", "S", "UP"]
 
 [tool.ruff.lint.per-file-ignores]
 "oslo_context/tests/*" = ["S"]
-
-[tool.mypy]
-python_version = "3.9"
-show_column_numbers = true
-show_error_context = true
-ignore_missing_imports = true
-follow_imports = "normal"
-check_untyped_defs = true
-warn_unused_ignores = false
-warn_return_any = true
-warn_unused_configs = true
-warn_redundant_casts = true
-strict_equality = true
-disallow_untyped_decorators = true
-disallow_any_generics = true
-disallow_subclassing_any = true
-disallow_untyped_calls = true
-disallow_incomplete_defs = true
-disallow_untyped_defs = true
-no_implicit_reexport = true
-extra_checks = true
-# keep this in-sync with 'mypy.exclude' in '.pre-commit-config.yaml'
-exclude = '''
-(?x)(
-    doc
-    | releasenotes
-  )
-'''
-
-[[tool.mypy.overrides]]
-module = [
-    "oslo_context.fixture",
-    "oslo_context.tests.*",
-]
-warn_return_any = false
-disallow_untyped_decorators = false
-disallow_any_generics = false
-disallow_subclassing_any = false
-disallow_untyped_calls = false
-disallow_untyped_defs = false
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/oslo_context-6.1.0/releasenotes/notes/remove-py39-643032e829d29b78.yaml 
new/oslo_context-6.3.0/releasenotes/notes/remove-py39-643032e829d29b78.yaml
--- old/oslo_context-6.1.0/releasenotes/notes/remove-py39-643032e829d29b78.yaml 
1970-01-01 01:00:00.000000000 +0100
+++ new/oslo_context-6.3.0/releasenotes/notes/remove-py39-643032e829d29b78.yaml 
2026-02-17 15:58:35.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_context-6.1.0/releasenotes/source/2024.1.rst 
new/oslo_context-6.3.0/releasenotes/source/2024.1.rst
--- old/oslo_context-6.1.0/releasenotes/source/2024.1.rst       2025-08-25 
14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/releasenotes/source/2024.1.rst       2026-02-17 
15:58:35.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_context-6.1.0/releasenotes/source/2025.2.rst 
new/oslo_context-6.3.0/releasenotes/source/2025.2.rst
--- old/oslo_context-6.1.0/releasenotes/source/2025.2.rst       1970-01-01 
01:00:00.000000000 +0100
+++ new/oslo_context-6.3.0/releasenotes/source/2025.2.rst       2026-02-17 
15:58:35.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_context-6.1.0/releasenotes/source/index.rst 
new/oslo_context-6.3.0/releasenotes/source/index.rst
--- old/oslo_context-6.1.0/releasenotes/source/index.rst        2025-08-25 
14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/releasenotes/source/index.rst        2026-02-17 
15:58:35.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_context-6.1.0/setup.cfg 
new/oslo_context-6.3.0/setup.cfg
--- old/oslo_context-6.1.0/setup.cfg    2025-08-25 14:53:46.389256500 +0200
+++ new/oslo_context-6.3.0/setup.cfg    2026-02-17 15:59:25.607677500 +0100
@@ -1,30 +1,5 @@
 [metadata]
 name = oslo.context
-summary = Oslo Context library
-description_file = 
-       README.rst
-author = OpenStack
-author_email = [email protected]
-home_page = https://docs.openstack.org/oslo.context/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_context
 
 [egg_info]
 tag_build = 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/oslo_context-6.1.0/tox.ini 
new/oslo_context-6.3.0/tox.ini
--- old/oslo_context-6.1.0/tox.ini      2025-08-25 14:52:37.000000000 +0200
+++ new/oslo_context-6.3.0/tox.ini      2026-02-17 15:58:35.000000000 +0100
@@ -9,13 +9,23 @@
 commands = stestr run --slowest {posargs}
 
 [testenv:pep8]
-skip_install = true
 description =
-  Run linters.
+  Run style checks.
 deps =
   pre-commit
+  {[testenv:mypy]deps}
 commands =
   pre-commit run -a
+  {[testenv:mypy]commands}
+
+[testenv:mypy]
+description =
+  Run type checks.
+deps =
+  {[testenv]deps}
+  mypy
+commands =
+  mypy --cache-dir="{envdir}/mypy_cache" {posargs:oslo_context}
 
 [testenv:venv]
 commands = {posargs}

Reply via email to