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
