Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-daiquiri for openSUSE:Factory 
checked in at 2026-04-08 17:14:18
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-daiquiri (Old)
 and      /work/SRC/openSUSE:Factory/.python-daiquiri.new.21863 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-daiquiri"

Wed Apr  8 17:14:18 2026 rev:15 rq:1344799 version:3.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-daiquiri/python-daiquiri.changes  
2024-02-05 22:00:59.050542991 +0100
+++ 
/work/SRC/openSUSE:Factory/.python-daiquiri.new.21863/python-daiquiri.changes   
    2026-04-08 17:14:34.429067782 +0200
@@ -1,0 +2,12 @@
+Mon Apr  6 20:32:19 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 3.4.0:
+  * fix: don't break the monkeypatch chain
+  * build: update dependencies (python-json-logger >= 3, setuptools >= 64, 
setuptools_scm >= 8)
+- update to 3.3.0:
+  * ci: fix Python 3.12 tests & linters
+  * build: support Python 3.13
+  * build: drop support for Python 3.8 and 3.9
+  * fix: turn on deprecation warning and upgrade jsonlogger
+
+-------------------------------------------------------------------

Old:
----
  daiquiri-3.2.5.1.tar.gz

New:
----
  daiquiri-3.4.0.tar.gz

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

Other differences:
------------------
++++++ python-daiquiri.spec ++++++
--- /var/tmp/diff_new_pack.M1djkl/_old  2026-04-08 17:14:35.093095083 +0200
+++ /var/tmp/diff_new_pack.M1djkl/_new  2026-04-08 17:14:35.097095247 +0200
@@ -1,7 +1,7 @@
 #
 # spec file for package python-daiquiri
 #
-# Copyright (c) 2024 SUSE LLC
+# 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,7 +18,7 @@
 
 %{?sle15_python_module_pythons}
 Name:           python-daiquiri
-Version:        3.2.5.1
+Version:        3.4.0
 Release:        0
 Summary:        Library to configure Python logging
 License:        Apache-2.0
@@ -26,12 +26,13 @@
 Source:         
https://files.pythonhosted.org/packages/source/d/daiquiri/daiquiri-%{version}.tar.gz
 BuildRequires:  %{python_module pip}
 BuildRequires:  %{python_module pytest}
-BuildRequires:  %{python_module python-json-logger}
-BuildRequires:  %{python_module setuptools_scm}
+BuildRequires:  %{python_module python-json-logger >= 3}
+BuildRequires:  %{python_module setuptools >= 64}
+BuildRequires:  %{python_module setuptools_scm >= 8}
 BuildRequires:  %{python_module wheel}
 BuildRequires:  fdupes
 BuildRequires:  python-rpm-macros
-Requires:       python-python-json-logger
+Requires:       python-python-json-logger >= 3
 BuildArch:      noarch
 %python_subpackages
 

++++++ daiquiri-3.2.5.1.tar.gz -> daiquiri-3.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/.github/workflows/ci.yaml 
new/daiquiri-3.4.0/.github/workflows/ci.yaml
--- old/daiquiri-3.2.5.1/.github/workflows/ci.yaml      2024-01-25 
10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/.github/workflows/ci.yaml        2025-09-04 
10:30:18.000000000 +0200
@@ -5,14 +5,15 @@
   pull_request:
     branches:
       - main
+      - devs/**
 
 jobs:
   test:
     strategy:
       matrix:
-        python: ["3.8", "3.9", "3.10", "3.11", "3.12"]
+        python: ["3.10", "3.11", "3.12", "3.13"]
 
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
     steps:
       - name: Checkout 🛎️
         uses: actions/[email protected]
@@ -29,7 +30,7 @@
         run: tox -e py$(echo ${{ matrix.python }} | tr -d .)
 
   pep8:
-    runs-on: ubuntu-22.04
+    runs-on: ubuntu-24.04
     steps:
       - name: Checkout 🛎️
         uses: actions/[email protected]
@@ -37,7 +38,7 @@
       - name: Setup Python 🔧
         uses: actions/setup-python@v4
         with:
-          python-version: "3.12"
+          python-version: "3.13"
 
       - name: Install tox
         run: pip install tox
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/.mergify.yml 
new/daiquiri-3.4.0/.mergify.yml
--- old/daiquiri-3.2.5.1/.mergify.yml   2024-01-25 10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/.mergify.yml     2025-09-04 10:30:18.000000000 +0200
@@ -16,15 +16,7 @@
     queue_conditions:
       - "#approved-reviews-by>=1"
       - "check-success=pep8"
-      - "check-success=test (3.8)"
-      - "check-success=test (3.9)"
-      - "check-success=test (3.10)"
-      - "check-success=test (3.11)"
-      - "check-success=test (3.12)"
-    merge_conditions:
-      - "check-success=pep8"
-      - "check-success=test (3.8)"
-      - "check-success=test (3.9)"
       - "check-success=test (3.10)"
       - "check-success=test (3.11)"
       - "check-success=test (3.12)"
+      - "check-success=test (3.13)"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/PKG-INFO new/daiquiri-3.4.0/PKG-INFO
--- old/daiquiri-3.2.5.1/PKG-INFO       2024-01-25 10:00:32.225511300 +0100
+++ new/daiquiri-3.4.0/PKG-INFO 2025-09-04 10:30:24.093997200 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: daiquiri
-Version: 3.2.5.1
+Version: 3.4.0
 Summary: Library to configure Python logging easily
 Author-email: Julien Danjou <[email protected]>
 License: Apache 2.0
@@ -11,19 +11,19 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
-Requires-Python: >=3.8
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.10
 Description-Content-Type: text/x-rst
 License-File: LICENSE
-Requires-Dist: python-json-logger
+Requires-Dist: python-json-logger>=3
 Provides-Extra: test
 Requires-Dist: pytest; extra == "test"
 Provides-Extra: systemd
 Requires-Dist: systemd-python>=234; extra == "systemd"
+Dynamic: license-file
 
 =======================================
 daiquiri -- Python logging setup helper
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/__init__.py 
new/daiquiri-3.4.0/daiquiri/__init__.py
--- old/daiquiri-3.2.5.1/daiquiri/__init__.py   2024-01-25 10:00:23.000000000 
+0100
+++ new/daiquiri-3.4.0/daiquiri/__init__.py     2025-09-04 10:30:18.000000000 
+0200
@@ -109,14 +109,17 @@
     if set_excepthook:
         program_logger = logging.getLogger(program_name)
 
+        initial_excepthook = staticmethod(sys.excepthook)
+
         def logging_excepthook(
-            exc_type: typing.Optional[typing.Type[BaseException]],
-            value: typing.Optional[BaseException],
+            exc_type: typing.Type[BaseException],
+            value: BaseException,
             tb: typing.Optional[_ptypes.TracebackType],
         ) -> None:
             program_logger.critical(
                 "".join(traceback.format_exception(exc_type, value, tb))
             )
+            initial_excepthook(exc_type, value, tb)
 
         sys.excepthook = logging_excepthook
 
@@ -144,7 +147,7 @@
 def set_default_log_levels(
     loggers_and_log_levels: typing.Iterable[
         typing.Tuple[typing.Optional[str], typing.Union[str, int]]
-    ]
+    ],
 ) -> None:
     """Set default log levels for some loggers.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/formatter.py 
new/daiquiri-3.4.0/daiquiri/formatter.py
--- old/daiquiri-3.2.5.1/daiquiri/formatter.py  2024-01-25 10:00:23.000000000 
+0100
+++ new/daiquiri-3.4.0/daiquiri/formatter.py    2025-09-04 10:30:18.000000000 
+0200
@@ -14,7 +14,7 @@
 import logging
 import typing
 
-from pythonjsonlogger import jsonlogger
+from pythonjsonlogger import json as jsonlogger
 
 from daiquiri import types
 
@@ -159,7 +159,7 @@
 
 class DatadogFormatter(jsonlogger.JsonFormatter):
     def __init__(self) -> None:
-        super(DatadogFormatter, self).__init__(timestamp=True)  # type: 
ignore[no-untyped-call]
+        super(DatadogFormatter, self).__init__(timestamp=True)
 
     def add_fields(
         self,
@@ -183,5 +183,5 @@
 
 
 TEXT_FORMATTER = ColorExtrasFormatter(fmt=DEFAULT_EXTRAS_FORMAT)
-JSON_FORMATTER = jsonlogger.JsonFormatter()  # type: ignore[no-untyped-call]
+JSON_FORMATTER = jsonlogger.JsonFormatter()
 DATADOG_FORMATTER = DatadogFormatter()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/output.py 
new/daiquiri-3.4.0/daiquiri/output.py
--- old/daiquiri-3.2.5.1/daiquiri/output.py     2024-01-25 10:00:23.000000000 
+0100
+++ new/daiquiri-3.4.0/daiquiri/output.py       2025-09-04 10:30:18.000000000 
+0200
@@ -207,7 +207,7 @@
 
     @staticmethod
     def _timedelta_to_seconds(
-        td: typing.Union[float, int, datetime.timedelta]
+        td: typing.Union[float, int, datetime.timedelta],
     ) -> float:
         """Convert a datetime.timedelta object into a seconds interval.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/tests/test_daiquiri.py 
new/daiquiri-3.4.0/daiquiri/tests/test_daiquiri.py
--- old/daiquiri-3.2.5.1/daiquiri/tests/test_daiquiri.py        2024-01-25 
10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/daiquiri/tests/test_daiquiri.py  2025-09-04 
10:30:18.000000000 +0200
@@ -13,17 +13,22 @@
 import json
 import logging
 import sys
+import types
 import typing
 import unittest
 import warnings
 
 import daiquiri
 
+real_excepthook = sys.excepthook
+
 
 class TestDaiquiri(unittest.TestCase):
     def tearDown(self) -> None:
         # Be sure to reset the warning capture
         logging.captureWarnings(False)
+        # Reset exception hook
+        sys.excepthook = real_excepthook
         super(TestDaiquiri, self).tearDown()
 
     def test_setup(self) -> None:
@@ -31,6 +36,29 @@
         daiquiri.setup(level=logging.DEBUG)
         daiquiri.setup(program_name="foobar")
 
+    def test_excepthook(self) -> None:
+        hook_ran = False
+
+        def catcher(
+            exctype: type[BaseException],
+            value: BaseException,
+            traceback: types.TracebackType | None,
+        ) -> None:
+            nonlocal hook_ran
+            hook_ran = True
+            real_excepthook(exctype, value, traceback)
+
+        sys.excepthook = catcher
+
+        sys.excepthook(Exception, Exception("boom"), None)
+        assert hook_ran
+
+        daiquiri.setup()
+
+        hook_ran = False
+        sys.excepthook(Exception, Exception("boom"), None)
+        assert hook_ran
+
     def test_setup_json_formatter(self) -> None:
         stream = io.StringIO()
         daiquiri.setup(
@@ -42,8 +70,6 @@
         )
         daiquiri.getLogger(__name__).warning("foobar")
         expected: dict[str, typing.Any] = {"message": "foobar"}
-        if sys.version_info >= (3, 12):
-            expected.update({"taskName": None})
         self.assertEqual(expected, json.loads(stream.getvalue()))
 
     def test_setup_json_formatter_with_extras(self) -> None:
@@ -57,8 +83,6 @@
         )
         daiquiri.getLogger(__name__).warning("foobar", foo="bar")
         expected: dict[str, typing.Any] = {"message": "foobar", "foo": "bar"}
-        if sys.version_info >= (3, 12):
-            expected.update({"taskName": None})
         self.assertEqual(expected, json.loads(stream.getvalue()))
 
     def test_get_logger_set_level(self) -> None:
@@ -72,7 +96,7 @@
         line = stream.getvalue()
         self.assertIn("WARNING  py.warnings: ", line)
         self.assertIn(
-            "daiquiri/tests/test_daiquiri.py:71: "
+            "daiquiri/tests/test_daiquiri.py:95: "
             'UserWarning: omg!\n  warnings.warn("omg!")\n',
             line,
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/tests/test_formatter.py 
new/daiquiri-3.4.0/daiquiri/tests/test_formatter.py
--- old/daiquiri-3.2.5.1/daiquiri/tests/test_formatter.py       2024-01-25 
10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/daiquiri/tests/test_formatter.py 2025-09-04 
10:30:18.000000000 +0200
@@ -71,7 +71,7 @@
         )
 
     def test_keywords_no_extras(self) -> None:
-        format_string = "%(levelname)s %(name)s" " %(test)s%(extras)s: 
%(message)s"
+        format_string = "%(levelname)s %(name)s %(test)s%(extras)s: 
%(message)s"
         formatter = daiquiri.formatter.ColorExtrasFormatter(
             fmt=format_string, keywords={"test"}
         )
@@ -81,7 +81,7 @@
         self.assertEqual(self.stream.getvalue(), "INFO my_module a: test 
message\n")
 
     def test_keywords_with_extras(self) -> None:
-        format_string = "%(levelname)s %(name)s" " %(test)s%(extras)s: 
%(message)s"
+        format_string = "%(levelname)s %(name)s %(test)s%(extras)s: 
%(message)s"
         formatter = daiquiri.formatter.ColorExtrasFormatter(
             fmt=format_string, keywords={"test"}
         )
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri/tests/test_output.py 
new/daiquiri-3.4.0/daiquiri/tests/test_output.py
--- old/daiquiri-3.2.5.1/daiquiri/tests/test_output.py  2024-01-25 
10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/daiquiri/tests/test_output.py    2025-09-04 
10:30:18.000000000 +0200
@@ -11,7 +11,6 @@
 #    under the License.
 import json
 import logging
-import sys
 import syslog
 import typing
 import unittest
@@ -125,10 +124,6 @@
                     "message": mock.ANY,
                 },
             }
-            if sys.version_info >= (3, 12):
-                expected_error_1.update({"taskName": None})
-                expected_info_1.update({"taskName": None})
-                expected_error_2.update({"taskName": None})
             try:
                 1 / 0
             except ZeroDivisionError:
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri.egg-info/PKG-INFO 
new/daiquiri-3.4.0/daiquiri.egg-info/PKG-INFO
--- old/daiquiri-3.2.5.1/daiquiri.egg-info/PKG-INFO     2024-01-25 
10:00:32.000000000 +0100
+++ new/daiquiri-3.4.0/daiquiri.egg-info/PKG-INFO       2025-09-04 
10:30:24.000000000 +0200
@@ -1,6 +1,6 @@
-Metadata-Version: 2.1
+Metadata-Version: 2.4
 Name: daiquiri
-Version: 3.2.5.1
+Version: 3.4.0
 Summary: Library to configure Python logging easily
 Author-email: Julien Danjou <[email protected]>
 License: Apache 2.0
@@ -11,19 +11,19 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-Classifier: Programming Language :: Python :: 3.8
-Classifier: Programming Language :: Python :: 3.9
 Classifier: Programming Language :: Python :: 3.10
 Classifier: Programming Language :: Python :: 3.11
 Classifier: Programming Language :: Python :: 3.12
-Requires-Python: >=3.8
+Classifier: Programming Language :: Python :: 3.13
+Requires-Python: >=3.10
 Description-Content-Type: text/x-rst
 License-File: LICENSE
-Requires-Dist: python-json-logger
+Requires-Dist: python-json-logger>=3
 Provides-Extra: test
 Requires-Dist: pytest; extra == "test"
 Provides-Extra: systemd
 Requires-Dist: systemd-python>=234; extra == "systemd"
+Dynamic: license-file
 
 =======================================
 daiquiri -- Python logging setup helper
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/daiquiri.egg-info/requires.txt 
new/daiquiri-3.4.0/daiquiri.egg-info/requires.txt
--- old/daiquiri-3.2.5.1/daiquiri.egg-info/requires.txt 2024-01-25 
10:00:32.000000000 +0100
+++ new/daiquiri-3.4.0/daiquiri.egg-info/requires.txt   2025-09-04 
10:30:24.000000000 +0200
@@ -1,4 +1,4 @@
-python-json-logger
+python-json-logger>=3
 
 [systemd]
 systemd-python>=234
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/pyproject.toml 
new/daiquiri-3.4.0/pyproject.toml
--- old/daiquiri-3.2.5.1/pyproject.toml 2024-01-25 10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/pyproject.toml   2025-09-04 10:30:18.000000000 +0200
@@ -4,7 +4,7 @@
 
 [project]
 name = "daiquiri"
-requires-python = ">=3.8"
+requires-python = ">=3.10"
 dynamic = ["version"]
 license = {"text" = "Apache 2.0"}
 description = "Library to configure Python logging easily"
@@ -19,14 +19,13 @@
     "Operating System :: POSIX :: Linux",
     "Programming Language :: Python",
     "Programming Language :: Python :: 3",
-    "Programming Language :: Python :: 3.8",
-    "Programming Language :: Python :: 3.9",
     "Programming Language :: Python :: 3.10",
     "Programming Language :: Python :: 3.11",
     "Programming Language :: Python :: 3.12",
+    "Programming Language :: Python :: 3.13",
 ]
 dependencies = [
-  "python-json-logger"
+  "python-json-logger >= 3"
 ]
 
 [project.urls]
@@ -44,9 +43,6 @@
 test = ["pytest"]
 systemd = ["systemd-python>=234"]
 
-[tool.black]
-target-version = ['py38', 'py39', 'py310', 'py311', 'py312']
-
 [tool.mypy]
 files = "daiquiri"
 show_error_codes = true
@@ -54,7 +50,12 @@
 
 [[tool.mypy.overrides]]
 module = [
-       "pythonjsonlogger",
        "systemd",
 ]
 ignore_missing_imports = true
+
+[tool.pytest.ini_options]
+filterwarnings = [
+    "error::DeprecationWarning",
+]
+testpaths = ["daiquiri/tests"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/daiquiri-3.2.5.1/tox.ini new/daiquiri-3.4.0/tox.ini
--- old/daiquiri-3.2.5.1/tox.ini        2024-01-25 10:00:23.000000000 +0100
+++ new/daiquiri-3.4.0/tox.ini  2025-09-04 10:30:18.000000000 +0200
@@ -1,5 +1,5 @@
 [tox]
-envlist = py38,py39,py310,py311,py312,pep8,docs
+envlist = py310,py311,py312,py313,pep8,docs
 
 [testenv]
 allowlist_externals = sh
@@ -10,31 +10,17 @@
   sh -c "rm errors.log everything.log"
 
 [testenv:pep8]
-basepython = python3.12
+basepython = python3.13
 deps =
     {[testenv]deps}
-    black
-    flake8
+    ruff
     mypy
-    flake8-import-order
-    flake8-blind-except
-    flake8-builtins
-    flake8-docstrings
-    flake8-rst-docstrings
-    flake8-logging-format
 
 commands =
-    black --check .
-    flake8
+    ruff format --check .
+    ruff check .
     mypy
 
-[flake8]
-show-source = True
-exclude=.git,.tox,dist,build,.eggs
-application-import-names=daiquiri
-# Black ignore those first fours
-ignore = E203,E501,W503,E231,A003,D101,D102,D103,D104,D105,D107,A003,D100
-
 [testenv:docs]
 deps = sphinx
 commands = sphinx-build -b html doc/source doc/build/html

Reply via email to