Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-keyring for openSUSE:Factory 
checked in at 2025-11-28 16:50:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-keyring (Old)
 and      /work/SRC/openSUSE:Factory/.python-keyring.new.14147 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-keyring"

Fri Nov 28 16:50:42 2025 rev:64 rq:1320343 version:25.7.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-keyring/python-keyring.changes    
2025-09-30 17:35:09.063007097 +0200
+++ /work/SRC/openSUSE:Factory/.python-keyring.new.14147/python-keyring.changes 
2025-11-28 16:51:03.045532204 +0100
@@ -1,0 +2,7 @@
+Thu Nov 27 11:41:59 UTC 2025 - John Paul Adrian Glaubitz 
<[email protected]>
+
+- Update to 25.7.0
+  * Improved support for KWallet 6. (#728)
+  * Removed cruft from Python 3.8. (#722)
+
+-------------------------------------------------------------------

Old:
----
  keyring-25.6.0.tar.gz

New:
----
  keyring-25.7.0.tar.gz

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

Other differences:
------------------
++++++ python-keyring.spec ++++++
--- /var/tmp/diff_new_pack.WoxaHp/_old  2025-11-28 16:51:04.297584926 +0100
+++ /var/tmp/diff_new_pack.WoxaHp/_new  2025-11-28 16:51:04.301585094 +0100
@@ -31,15 +31,15 @@
 %endif
 %{?sle15_python_module_pythons}
 Name:           python-keyring%{psuffix}
-Version:        25.6.0
+Version:        25.7.0
 Release:        0
 Summary:        System keyring service access from Python
 License:        MIT
 URL:            https://github.com/jaraco/keyring
 Source:         
https://files.pythonhosted.org/packages/source/k/keyring/keyring-%{version}.tar.gz
-BuildRequires:  %{python_module base >= 3.8}
+BuildRequires:  %{python_module base >= 3.9}
 BuildRequires:  %{python_module pip}
-BuildRequires:  %{python_module setuptools >= 56}
+BuildRequires:  %{python_module setuptools >= 77}
 BuildRequires:  %{python_module setuptools_scm >= 3.4.1}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes

++++++ keyring-25.6.0.tar.gz -> keyring-25.7.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/.github/dependabot.yml 
new/keyring-25.7.0/.github/dependabot.yml
--- old/keyring-25.6.0/.github/dependabot.yml   2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/.github/dependabot.yml   1970-01-01 01:00:00.000000000 
+0100
@@ -1,8 +0,0 @@
-version: 2
-updates:
-  - package-ecosystem: "pip"
-    directory: "/"
-    schedule:
-      interval: "daily"
-    allow:
-      - dependency-type: "all"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/.github/workflows/main.yml 
new/keyring-25.7.0/.github/workflows/main.yml
--- old/keyring-25.6.0/.github/workflows/main.yml       2024-12-25 
16:26:26.000000000 +0100
+++ new/keyring-25.7.0/.github/workflows/main.yml       2025-11-16 
17:25:45.000000000 +0100
@@ -21,7 +21,6 @@
 
   # Suppress noisy pip warnings
   PIP_DISABLE_PIP_VERSION_CHECK: 'true'
-  PIP_NO_PYTHON_VERSION_WARNING: 'true'
   PIP_NO_WARN_SCRIPT_LOCATION: 'true'
 
   # Ensure tests can sense settings about the environment
@@ -56,8 +55,15 @@
     continue-on-error: ${{ matrix.python == '3.14' }}
     steps:
       - uses: actions/checkout@v4
+      - name: Install build dependencies
+        # Install dependencies for building packages on pre-release Pythons
+        # jaraco/skeleton#161
+        if: matrix.python == '3.14' && matrix.platform == 'ubuntu-latest'
+        run: |
+          sudo apt update
+          sudo apt install -y libxml2-dev libxslt-dev
       - name: Setup Python
-        uses: actions/setup-python@v4
+        uses: actions/setup-python@v5
         with:
           python-version: ${{ matrix.python }}
           allow-prereleases: true
@@ -79,7 +85,7 @@
         with:
           fetch-depth: 0
       - name: Setup Python
-        uses: actions/setup-python@v4
+        uses: actions/setup-python@v5
         with:
           python-version: 3.x
       - name: Install tox
@@ -113,7 +119,7 @@
     steps:
       - uses: actions/checkout@v4
       - name: Setup Python
-        uses: actions/setup-python@v4
+        uses: actions/setup-python@v5
         with:
           python-version: 3.x
       - name: Install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/.pre-commit-config.yaml 
new/keyring-25.7.0/.pre-commit-config.yaml
--- old/keyring-25.6.0/.pre-commit-config.yaml  2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/.pre-commit-config.yaml  2025-11-16 17:25:45.000000000 
+0100
@@ -1,6 +1,6 @@
 repos:
 - repo: https://github.com/astral-sh/ruff-pre-commit
-  rev: v0.7.1
+  rev: v0.12.0
   hooks:
   - id: ruff
     args: [--fix, --unsafe-fixes]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/.readthedocs.yaml 
new/keyring-25.7.0/.readthedocs.yaml
--- old/keyring-25.6.0/.readthedocs.yaml        2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/.readthedocs.yaml        2025-11-16 17:25:45.000000000 
+0100
@@ -5,6 +5,9 @@
     extra_requirements:
       - doc
 
+sphinx:
+  configuration: docs/conf.py
+
 # required boilerplate readthedocs/readthedocs.org#10401
 build:
   os: ubuntu-lts-latest
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/LICENSE new/keyring-25.7.0/LICENSE
--- old/keyring-25.6.0/LICENSE  2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/LICENSE  2025-11-16 17:26:03.000000000 +0100
@@ -1,17 +1,18 @@
-Permission is hereby granted, free of charge, to any person obtaining a copy
-of this software and associated documentation files (the "Software"), to
-deal in the Software without restriction, including without limitation the
-rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
-sell copies of the Software, and to permit persons to whom the Software is
-furnished to do so, subject to the following conditions:
+MIT License
 
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
+Copyright (c) 2025 <copyright holders>
 
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
-AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-IN THE SOFTWARE.
+Permission is hereby granted, free of charge, to any person obtaining a copy 
of this software and
+associated documentation files (the "Software"), to deal in the Software 
without restriction, including
+without limitation the rights to use, copy, modify, merge, publish, 
distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is 
furnished to do so, subject to the
+following conditions:
+
+The above copyright notice and this permission notice shall be included in all 
copies or substantial
+portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 
IMPLIED, INCLUDING BUT NOT
+LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE 
AND NONINFRINGEMENT. IN NO
+EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES 
OR OTHER LIABILITY, WHETHER
+IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 
CONNECTION WITH THE SOFTWARE OR THE
+USE OR OTHER DEALINGS IN THE SOFTWARE.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/NEWS.rst new/keyring-25.7.0/NEWS.rst
--- old/keyring-25.6.0/NEWS.rst 2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/NEWS.rst 2025-11-16 17:25:45.000000000 +0100
@@ -1,3 +1,18 @@
+v25.7.0
+=======
+
+Features
+--------
+
+- Improved support for KWallet 6. (#728)
+
+
+Bugfixes
+--------
+
+- Removed cruft from Python 3.8. (#722)
+
+
 v25.6.0
 =======
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/PKG-INFO new/keyring-25.7.0/PKG-INFO
--- old/keyring-25.6.0/PKG-INFO 2024-12-25 16:26:41.642173300 +0100
+++ new/keyring-25.7.0/PKG-INFO 2025-11-16 17:26:04.300146600 +0100
@@ -1,13 +1,13 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: keyring
-Version: 25.6.0
+Version: 25.7.0
 Summary: Store and access your passwords safely.
 Author-email: Kang Zhang <[email protected]>
 Maintainer-email: "Jason R. Coombs" <[email protected]>
+License-Expression: MIT
 Project-URL: Source, https://github.com/jaraco/keyring
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3 :: Only
 Requires-Python: >=3.9
@@ -18,7 +18,6 @@
 Requires-Dist: jeepney>=0.4.2; sys_platform == "linux"
 Requires-Dist: importlib_metadata>=4.11.4; python_version < "3.12"
 Requires-Dist: jaraco.classes
-Requires-Dist: importlib_resources; python_version < "3.9"
 Requires-Dist: jaraco.functools
 Requires-Dist: jaraco.context
 Provides-Extra: test
@@ -37,14 +36,15 @@
 Provides-Extra: cover
 Requires-Dist: pytest-cov; extra == "cover"
 Provides-Extra: enabler
-Requires-Dist: pytest-enabler>=2.2; extra == "enabler"
+Requires-Dist: pytest-enabler>=3.4; extra == "enabler"
 Provides-Extra: type
-Requires-Dist: pytest-mypy; extra == "type"
+Requires-Dist: pytest-mypy>=1.0.1; extra == "type"
 Requires-Dist: pygobject-stubs; extra == "type"
 Requires-Dist: shtab; extra == "type"
 Requires-Dist: types-pywin32; extra == "type"
 Provides-Extra: completion
 Requires-Dist: shtab>=1.1.0; extra == "completion"
+Dynamic: license-file
 
 .. image:: https://img.shields.io/pypi/v/keyring.svg
    :target: https://pypi.org/project/keyring
@@ -55,14 +55,14 @@
    :target: 
https://github.com/jaraco/keyring/actions?query=workflow%3A%22tests%22
    :alt: tests
 
-.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
     :target: https://github.com/astral-sh/ruff
     :alt: Ruff
 
 .. image:: https://readthedocs.org/projects/keyring/badge/?version=latest
    :target: https://keyring.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2024-informational
+.. image:: https://img.shields.io/badge/skeleton-2025-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/keyring
@@ -427,6 +427,21 @@
   >>> keyring.get_password("system", "username")
   'password'
 
+Using Keyring with tox
+======================
+
+Some backends rely on environment variables to operate correctly, and ``tox`` 
filters most environment variables by default.
+
+For example, when using Keyring to store credentials for pip, one may 
encounter the following error when
+running tests under ``tox`` when using a backend reliant on D-Bus:
+
+  RuntimeError: No recommended backend was available. Install the keyrings.alt 
package if you want to use the non-recommended backends. See README.rst for 
details.
+
+This error is caused by Keyring KWallet backend not able to resolve the 
backing service.
+
+To work around the issue, add ``DBUS_SESSION_BUS_ADDRESS`` to ``pass_env`` in 
the
+``tox`` configuration. Consider adding other necessary variables, such as 
``DISPLAY`` and ``WAYLAND_DISPLAY`` (if using ``pinentry``).
+
 Integration
 ===========
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/README.rst 
new/keyring-25.7.0/README.rst
--- old/keyring-25.6.0/README.rst       2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/README.rst       2025-11-16 17:25:45.000000000 +0100
@@ -7,14 +7,14 @@
    :target: 
https://github.com/jaraco/keyring/actions?query=workflow%3A%22tests%22
    :alt: tests
 
-.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
     :target: https://github.com/astral-sh/ruff
     :alt: Ruff
 
 .. image:: https://readthedocs.org/projects/keyring/badge/?version=latest
    :target: https://keyring.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2024-informational
+.. image:: https://img.shields.io/badge/skeleton-2025-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/keyring
@@ -379,6 +379,21 @@
   >>> keyring.get_password("system", "username")
   'password'
 
+Using Keyring with tox
+======================
+
+Some backends rely on environment variables to operate correctly, and ``tox`` 
filters most environment variables by default.
+
+For example, when using Keyring to store credentials for pip, one may 
encounter the following error when
+running tests under ``tox`` when using a backend reliant on D-Bus:
+
+  RuntimeError: No recommended backend was available. Install the keyrings.alt 
package if you want to use the non-recommended backends. See README.rst for 
details.
+
+This error is caused by Keyring KWallet backend not able to resolve the 
backing service.
+
+To work around the issue, add ``DBUS_SESSION_BUS_ADDRESS`` to ``pass_env`` in 
the
+``tox`` configuration. Consider adding other necessary variables, such as 
``DISPLAY`` and ``WAYLAND_DISPLAY`` (if using ``pinentry``).
+
 Integration
 ===========
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/conftest.py 
new/keyring-25.7.0/conftest.py
--- old/keyring-25.6.0/conftest.py      2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/conftest.py      2025-11-16 17:25:45.000000000 +0100
@@ -1,6 +1,5 @@
 import platform
 
-
 not_macOS = platform.system() != 'Darwin'
 
 collect_ignore = ["hook-keyring.backend.py"] + [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring/backends/kwallet.py 
new/keyring-25.7.0/keyring/backends/kwallet.py
--- old/keyring-25.6.0/keyring/backends/kwallet.py      2024-12-25 
16:26:26.000000000 +0100
+++ new/keyring-25.7.0/keyring/backends/kwallet.py      2025-11-16 
17:25:45.000000000 +0100
@@ -46,7 +46,7 @@
             raise RuntimeError(exc.get_dbus_message()) from exc
         if not (
             bus.name_has_owner(cls.bus_name)
-            or cls.bus_name in bus.list_activatable_names()
+            and cls.bus_name in bus.list_activatable_names()
         ):
             raise RuntimeError(
                 "The KWallet daemon is neither running nor activatable through 
D-Bus"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring/compat/py38.py 
new/keyring-25.7.0/keyring/compat/py38.py
--- old/keyring-25.6.0/keyring/compat/py38.py   2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/keyring/compat/py38.py   1970-01-01 01:00:00.000000000 
+0100
@@ -1,9 +0,0 @@
-import sys
-
-__all__ = ['files']
-
-
-if sys.version_info < (3, 9):
-    from importlib_resources import files
-else:
-    from importlib.resources import files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring/completion.py 
new/keyring-25.7.0/keyring/completion.py
--- old/keyring-25.6.0/keyring/completion.py    2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/keyring/completion.py    2025-11-16 17:25:45.000000000 
+0100
@@ -1,13 +1,12 @@
 import argparse
 import sys
+from importlib.resources import files
 
 try:
     import shtab
 except ImportError:
     pass
 
-from .compat.py38 import files
-
 
 class _MissingCompletionAction(argparse.Action):
     def __call__(self, parser, namespace, values, option_string):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring/core.py 
new/keyring-25.7.0/keyring/core.py
--- old/keyring-25.6.0/keyring/core.py  2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/keyring/core.py  2025-11-16 17:25:45.000000000 +0100
@@ -2,6 +2,8 @@
 Core API functions and initialization routines.
 """
 
+from __future__ import annotations
+
 import configparser
 import logging
 import os
@@ -58,7 +60,7 @@
         file.write('[backend]\ndefault-keyring=keyring.backends.null.Keyring')
 
 
-def get_password(service_name: str, username: str) -> typing.Optional[str]:
+def get_password(service_name: str, username: str) -> str | None:
     """Get password from the specified service."""
     return get_keyring().get_password(service_name, username)
 
@@ -74,8 +76,8 @@
 
 
 def get_credential(
-    service_name: str, username: typing.Optional[str]
-) -> typing.Optional[credentials.Credential]:
+    service_name: str, username: str | None
+) -> credentials.Credential | None:
     """Get a Credential for the specified service."""
     return get_keyring().get_credential(service_name, username)
 
@@ -84,14 +86,14 @@
     return backend.priority >= 1
 
 
-def init_backend(limit: typing.Optional[LimitCallable] = None):
+def init_backend(limit: LimitCallable | None = None):
     """
     Load a detected backend.
     """
     set_keyring(_detect_backend(limit))
 
 
-def _detect_backend(limit: typing.Optional[LimitCallable] = None):
+def _detect_backend(limit: LimitCallable | None = None):
     """
     Return a keyring specified in the config file or infer the best available.
 
@@ -106,14 +108,14 @@
         or load_config()
         or max(
             # all keyrings passing the limit filter
-            filter(limit, backend.get_all_keyring()),  # type: 
ignore[arg-type] #659
+            filter(limit, backend.get_all_keyring()),
             default=fail.Keyring(),
             key=backend.by_priority,
         )
     )
 
 
-def _load_keyring_class(keyring_name: str) -> 
typing.Type[backend.KeyringBackend]:
+def _load_keyring_class(keyring_name: str) -> type[backend.KeyringBackend]:
     """
     Load the keyring class indicated by name.
 
@@ -145,7 +147,7 @@
     return class_()
 
 
-def load_env() -> typing.Optional[backend.KeyringBackend]:
+def load_env() -> backend.KeyringBackend | None:
     """Load a keyring configured in the environment variable."""
     try:
         return load_keyring(os.environ['PYTHON_KEYRING_BACKEND'])
@@ -163,7 +165,7 @@
     return path
 
 
-def load_config() -> typing.Optional[backend.KeyringBackend]:
+def load_config() -> backend.KeyringBackend | None:
     """Load a keyring using the config file in the config root."""
 
     config = configparser.RawConfigParser()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring.egg-info/PKG-INFO 
new/keyring-25.7.0/keyring.egg-info/PKG-INFO
--- old/keyring-25.6.0/keyring.egg-info/PKG-INFO        2024-12-25 
16:26:41.000000000 +0100
+++ new/keyring-25.7.0/keyring.egg-info/PKG-INFO        2025-11-16 
17:26:04.000000000 +0100
@@ -1,13 +1,13 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: keyring
-Version: 25.6.0
+Version: 25.7.0
 Summary: Store and access your passwords safely.
 Author-email: Kang Zhang <[email protected]>
 Maintainer-email: "Jason R. Coombs" <[email protected]>
+License-Expression: MIT
 Project-URL: Source, https://github.com/jaraco/keyring
 Classifier: Development Status :: 5 - Production/Stable
 Classifier: Intended Audience :: Developers
-Classifier: License :: OSI Approved :: MIT License
 Classifier: Programming Language :: Python :: 3
 Classifier: Programming Language :: Python :: 3 :: Only
 Requires-Python: >=3.9
@@ -18,7 +18,6 @@
 Requires-Dist: jeepney>=0.4.2; sys_platform == "linux"
 Requires-Dist: importlib_metadata>=4.11.4; python_version < "3.12"
 Requires-Dist: jaraco.classes
-Requires-Dist: importlib_resources; python_version < "3.9"
 Requires-Dist: jaraco.functools
 Requires-Dist: jaraco.context
 Provides-Extra: test
@@ -37,14 +36,15 @@
 Provides-Extra: cover
 Requires-Dist: pytest-cov; extra == "cover"
 Provides-Extra: enabler
-Requires-Dist: pytest-enabler>=2.2; extra == "enabler"
+Requires-Dist: pytest-enabler>=3.4; extra == "enabler"
 Provides-Extra: type
-Requires-Dist: pytest-mypy; extra == "type"
+Requires-Dist: pytest-mypy>=1.0.1; extra == "type"
 Requires-Dist: pygobject-stubs; extra == "type"
 Requires-Dist: shtab; extra == "type"
 Requires-Dist: types-pywin32; extra == "type"
 Provides-Extra: completion
 Requires-Dist: shtab>=1.1.0; extra == "completion"
+Dynamic: license-file
 
 .. image:: https://img.shields.io/pypi/v/keyring.svg
    :target: https://pypi.org/project/keyring
@@ -55,14 +55,14 @@
    :target: 
https://github.com/jaraco/keyring/actions?query=workflow%3A%22tests%22
    :alt: tests
 
-.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/charliermarsh/ruff/main/assets/badge/v2.json
+.. image:: 
https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json
     :target: https://github.com/astral-sh/ruff
     :alt: Ruff
 
 .. image:: https://readthedocs.org/projects/keyring/badge/?version=latest
    :target: https://keyring.readthedocs.io/en/latest/?badge=latest
 
-.. image:: https://img.shields.io/badge/skeleton-2024-informational
+.. image:: https://img.shields.io/badge/skeleton-2025-informational
    :target: https://blog.jaraco.com/skeleton
 
 .. image:: https://tidelift.com/badges/package/pypi/keyring
@@ -427,6 +427,21 @@
   >>> keyring.get_password("system", "username")
   'password'
 
+Using Keyring with tox
+======================
+
+Some backends rely on environment variables to operate correctly, and ``tox`` 
filters most environment variables by default.
+
+For example, when using Keyring to store credentials for pip, one may 
encounter the following error when
+running tests under ``tox`` when using a backend reliant on D-Bus:
+
+  RuntimeError: No recommended backend was available. Install the keyrings.alt 
package if you want to use the non-recommended backends. See README.rst for 
details.
+
+This error is caused by Keyring KWallet backend not able to resolve the 
backing service.
+
+To work around the issue, add ``DBUS_SESSION_BUS_ADDRESS`` to ``pass_env`` in 
the
+``tox`` configuration. Consider adding other necessary variables, such as 
``DISPLAY`` and ``WAYLAND_DISPLAY`` (if using ``pinentry``).
+
 Integration
 ===========
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring.egg-info/SOURCES.txt 
new/keyring-25.7.0/keyring.egg-info/SOURCES.txt
--- old/keyring-25.6.0/keyring.egg-info/SOURCES.txt     2024-12-25 
16:26:41.000000000 +0100
+++ new/keyring-25.7.0/keyring.egg-info/SOURCES.txt     2025-11-16 
17:26:04.000000000 +0100
@@ -17,7 +17,6 @@
 towncrier.toml
 tox.ini
 .github/FUNDING.yml
-.github/dependabot.yml
 .github/ISSUE_TEMPLATE/bug_report.md
 .github/workflows/main.yml
 docs/conf.py
@@ -55,7 +54,6 @@
 keyring/compat/__init__.py
 keyring/compat/properties.py
 keyring/compat/py312.py
-keyring/compat/py38.py
 keyring/testing/__init__.py
 keyring/testing/backend.py
 keyring/testing/util.py
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/keyring.egg-info/requires.txt 
new/keyring-25.7.0/keyring.egg-info/requires.txt
--- old/keyring-25.6.0/keyring.egg-info/requires.txt    2024-12-25 
16:26:41.000000000 +0100
+++ new/keyring-25.7.0/keyring.egg-info/requires.txt    2025-11-16 
17:26:04.000000000 +0100
@@ -5,9 +5,6 @@
 [:python_version < "3.12"]
 importlib_metadata>=4.11.4
 
-[:python_version < "3.9"]
-importlib_resources
-
 [:sys_platform == "linux"]
 SecretStorage>=3.2
 jeepney>=0.4.2
@@ -36,14 +33,14 @@
 jaraco.tidelift>=1.4
 
 [enabler]
-pytest-enabler>=2.2
+pytest-enabler>=3.4
 
 [test]
 pytest!=8.1.*,>=6
 pyfakefs
 
 [type]
-pytest-mypy
+pytest-mypy>=1.0.1
 pygobject-stubs
 shtab
 types-pywin32
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/pyproject.toml 
new/keyring-25.7.0/pyproject.toml
--- old/keyring-25.6.0/pyproject.toml   2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/pyproject.toml   2025-11-16 17:25:45.000000000 +0100
@@ -1,5 +1,10 @@
 [build-system]
-requires = ["setuptools>=61.2", "setuptools_scm[toml]>=3.4.1"]
+requires = [
+       "setuptools>=77",
+       "setuptools_scm[toml]>=3.4.1",
+       # jaraco/skeleton#174
+       "coherent.licensed",
+]
 build-backend = "setuptools.build_meta"
 
 [project]
@@ -15,18 +20,17 @@
 classifiers = [
        "Development Status :: 5 - Production/Stable",
        "Intended Audience :: Developers",
-       "License :: OSI Approved :: MIT License",
        "Programming Language :: Python :: 3",
        "Programming Language :: Python :: 3 :: Only",
 ]
 requires-python = ">=3.9"
+license = "MIT"
 dependencies = [
        'pywin32-ctypes>=0.2.0; sys_platform=="win32"',
        'SecretStorage>=3.2; sys_platform=="linux"',
        'jeepney>=0.4.2; sys_platform=="linux"',
        'importlib_metadata >= 4.11.4; python_version < "3.12"',
        "jaraco.classes",
-       'importlib_resources; python_version < "3.9"',
        "jaraco.functools",
        "jaraco.context",
 ]
@@ -68,12 +72,12 @@
 ]
 
 enabler = [
-       "pytest-enabler >= 2.2",
+       "pytest-enabler >= 3.4",
 ]
 
 type = [
        # upstream
-       "pytest-mypy",
+       "pytest-mypy >= 1.0.1",
 
        # local
        "pygobject-stubs",
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/ruff.toml new/keyring-25.7.0/ruff.toml
--- old/keyring-25.6.0/ruff.toml        2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/ruff.toml        2025-11-16 17:25:45.000000000 +0100
@@ -1,13 +1,31 @@
-# extend pyproject.toml for requires-python (workaround astral-sh/ruff#10299)
-extend = "pyproject.toml"
-
 [lint]
 extend-select = [
-       "C901",
-       "PERF401",
-       "W",
+       # upstream
+
+       "C901", # complex-structure
+       "I", # isort
+       "PERF401", # manual-list-comprehension
+
+       # Ensure modern type annotation syntax and best practices
+       # Not including those covered by type-checkers or exclusive to Python 
3.11+
+       "FA", # flake8-future-annotations
+       "F404", # late-future-import
+       "PYI", # flake8-pyi
+       "UP006", # non-pep585-annotation
+       "UP007", # non-pep604-annotation
+       "UP010", # unnecessary-future-import
+       "UP035", # deprecated-import
+       "UP037", # quoted-annotation
+       "UP043", # unnecessary-default-type-args
+
+       # local
 ]
 ignore = [
+       # upstream
+
+       # Typeshed rejects complex or non-literal defaults for maintenance and 
testing reasons,
+       # irrelevant to this project.
+       "PYI011", # typed-argument-default-in-stub
        # https://docs.astral.sh/ruff/formatter/#conflicting-lint-rules
        "W191",
        "E111",
@@ -21,8 +39,8 @@
        "Q003",
        "COM812",
        "COM819",
-       "ISC001",
-       "ISC002",
+
+       # local
 ]
 
 [format]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/tests/test_cli.py 
new/keyring-25.7.0/tests/test_cli.py
--- old/keyring-25.6.0/tests/test_cli.py        2024-12-25 16:26:26.000000000 
+0100
+++ new/keyring-25.7.0/tests/test_cli.py        2025-11-16 17:25:45.000000000 
+0100
@@ -5,8 +5,7 @@
 
 import pytest
 
-from keyring import cli
-from keyring import credentials
+from keyring import cli, credentials
 
 flatten = itertools.chain.from_iterable
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/keyring-25.6.0/towncrier.toml 
new/keyring-25.7.0/towncrier.toml
--- old/keyring-25.6.0/towncrier.toml   2024-12-25 16:26:26.000000000 +0100
+++ new/keyring-25.7.0/towncrier.toml   2025-11-16 17:25:45.000000000 +0100
@@ -1,2 +1,3 @@
 [tool.towncrier]
 title_format = "{version}"
+directory = "newsfragments"  # jaraco/skeleton#184

Reply via email to