Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-futurist for openSUSE:Factory 
checked in at 2026-07-07 21:01:43
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-futurist (Old)
 and      /work/SRC/openSUSE:Factory/.python-futurist.new.1982 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-futurist"

Tue Jul  7 21:01:43 2026 rev:19 rq:1364079 version:3.4.0

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-futurist/python-futurist.changes  
2026-04-01 19:53:39.504681374 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-futurist.new.1982/python-futurist.changes    
    2026-07-07 21:03:40.819255261 +0200
@@ -1,0 +2,10 @@
+Mon Jul  6 15:54:07 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 3.4.0:
+  * Add release note for mp_context kwarg
+  * tests: Fix ProcessPoolExecutor race on Python 3.14+
+  * Drop Python 3.10 support
+  * pre-commit: Bump versions
+  * typing: Fixes for mypy 2.0.0
+
+-------------------------------------------------------------------

Old:
----
  futurist-3.3.0.tar.gz

New:
----
  futurist-3.4.0.tar.gz

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

Other differences:
------------------
++++++ python-futurist.spec ++++++
--- /var/tmp/diff_new_pack.aBAYdr/_old  2026-07-07 21:03:41.447277006 +0200
+++ /var/tmp/diff_new_pack.aBAYdr/_new  2026-07-07 21:03:41.447277006 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           python-futurist
-Version:        3.3.0
+Version:        3.4.0
 Release:        0
 Summary:        Useful additions to futures, from the future.
 License:        Apache-2.0
@@ -25,6 +25,7 @@
 URL:            https://docs.openstack.org/futurist
 Source0:        
https://files.pythonhosted.org/packages/source/f/futurist/futurist-%{version}.tar.gz
 BuildRequires:  %{python_module PrettyTable >= 0.7.1}
+BuildRequires:  %{python_module base >= 3.11}
 BuildRequires:  %{python_module debtcollector >= 3.0.0}
 BuildRequires:  %{python_module eventlet >= 0.18.2}
 BuildRequires:  %{python_module oslotest >= 3.2.0}

++++++ futurist-3.3.0.tar.gz -> futurist-3.4.0.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/.pre-commit-config.yaml 
new/futurist-3.4.0/.pre-commit-config.yaml
--- old/futurist-3.3.0/.pre-commit-config.yaml  2026-03-24 11:11:32.000000000 
+0100
+++ new/futurist-3.4.0/.pre-commit-config.yaml  2026-06-26 15:32:16.000000000 
+0200
@@ -18,13 +18,13 @@
       - id: doc8
         files: doc/source/.*\.rst$
   - repo: https://github.com/astral-sh/ruff-pre-commit
-    rev: v0.14.14
+    rev: v0.15.18
     hooks:
       - id: ruff-check
         args: ['--fix', '--unsafe-fixes']
       - id: ruff-format
   - repo: https://opendev.org/openstack/hacking
-    rev: 8.0.0
+    rev: 8.1.0
     hooks:
       - id: hacking
         additional_dependencies: []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/ChangeLog new/futurist-3.4.0/ChangeLog
--- old/futurist-3.3.0/ChangeLog        2026-03-24 11:12:48.000000000 +0100
+++ new/futurist-3.4.0/ChangeLog        2026-06-26 15:33:06.000000000 +0200
@@ -1,6 +1,15 @@
 CHANGES
 =======
 
+3.4.0
+-----
+
+* Add release note for mp\_context kwarg
+* tests: Fix ProcessPoolExecutor race on Python 3.14+
+* Drop Python 3.10 support
+* pre-commit: Bump versions
+* typing: Fixes for mypy 2.0.0
+
 3.3.0
 -----
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/PKG-INFO new/futurist-3.4.0/PKG-INFO
--- old/futurist-3.3.0/PKG-INFO 2026-03-24 11:12:48.654322000 +0100
+++ new/futurist-3.4.0/PKG-INFO 2026-06-26 15:33:06.589815900 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: futurist
-Version: 3.3.0
+Version: 3.4.0
 Summary: Useful additions to futures, from the future.
 Author-email: OpenStack <[email protected]>
 License: Apache-2.0
@@ -13,12 +13,12 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-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.14
 Classifier: Typing :: Typed
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: debtcollector>=3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist/_futures.py 
new/futurist-3.4.0/futurist/_futures.py
--- old/futurist-3.3.0/futurist/_futures.py     2026-03-24 11:11:32.000000000 
+0100
+++ new/futurist-3.4.0/futurist/_futures.py     2026-06-26 15:32:16.000000000 
+0200
@@ -20,7 +20,7 @@
 import queue
 import threading
 import time
-from typing import Any, ParamSpec, TYPE_CHECKING, TypeVar
+from typing import Any, ParamSpec, Self, TypeVar
 
 from concurrent import futures as _futures
 from concurrent.futures import process as _process
@@ -31,9 +31,6 @@
 from futurist import _thread
 from futurist import _utils
 
-if TYPE_CHECKING:
-    from typing_extensions import Self
-
 _P = ParamSpec('_P')
 _R = TypeVar('_R')
 
@@ -463,12 +460,16 @@
 
     threading = _thread.Threading()
 
-    def __init__(self, max_workers: int | None = None) -> None:
+    def __init__(
+        self,
+        max_workers: int | None = None,
+        mp_context: Any = None,
+    ) -> None:
         if max_workers is None:
             max_workers = _utils.get_optimal_process_count()
         if max_workers <= 0:
             raise ValueError("Max workers must be greater than zero")
-        super().__init__(max_workers=max_workers)
+        super().__init__(max_workers=max_workers, mp_context=mp_context)
         self._gatherer = _Gatherer(
             # Since our submit will use this gatherer we have to reference
             # the parent submit, bound to this instance (which is what we
@@ -507,7 +508,7 @@
 
     threading = _thread.Threading()
 
-    @removals.removed_kwarg(  # type: ignore[untyped-decorator]
+    @removals.removed_kwarg(
         'green',
         message="Eventlet support is deprecated. "
         "Please migrate your code and stop enforcing "
@@ -516,9 +517,9 @@
     def __init__(
         self,
         green: bool = False,
-        run_work_func: Callable[
-            [_utils.WorkItem], None
-        ] = lambda work: work.run(),
+        run_work_func: Callable[[_utils.WorkItem], None] = lambda work: (
+            work.run()
+        ),
     ) -> None:
         """Synchronous executor constructor.
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist/_thread.py 
new/futurist-3.4.0/futurist/_thread.py
--- old/futurist-3.3.0/futurist/_thread.py      2026-03-24 11:11:32.000000000 
+0100
+++ new/futurist-3.4.0/futurist/_thread.py      2026-06-26 15:32:16.000000000 
+0200
@@ -13,17 +13,14 @@
 from __future__ import annotations
 
 import atexit
+from concurrent.futures import Executor
 import queue
 import threading
-from typing import TYPE_CHECKING
+from typing import Self
 import weakref
 
 from futurist import _utils
 
-if TYPE_CHECKING:
-    from concurrent.futures import Executor
-    from typing_extensions import Self
-
 
 class Threading:
     @staticmethod
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist/periodics.py 
new/futurist-3.4.0/futurist/periodics.py
--- old/futurist-3.3.0/futurist/periodics.py    2026-03-24 11:11:32.000000000 
+0100
+++ new/futurist-3.4.0/futurist/periodics.py    2026-06-26 15:32:16.000000000 
+0200
@@ -734,7 +734,7 @@
         if executor_factory is None:
 
             def executor_factory() -> futures.Executor:
-                return futurist.SynchronousExecutor()  # type: 
ignore[no-any-return]
+                return futurist.SynchronousExecutor()
 
         if on_failure is None:
             on_failure = functools.partial(_on_failure_log, self._log)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist/tests/test_executors.py 
new/futurist-3.4.0/futurist/tests/test_executors.py
--- old/futurist-3.3.0/futurist/tests/test_executors.py 2026-03-24 
11:11:32.000000000 +0100
+++ new/futurist-3.4.0/futurist/tests/test_executors.py 2026-06-26 
15:32:16.000000000 +0200
@@ -11,6 +11,7 @@
 # under the License.
 
 from concurrent import futures
+import multiprocessing
 import threading
 import time
 import unittest
@@ -93,7 +94,9 @@
             {
                 'executor_cls': futurist.ProcessPoolExecutor,
                 'restartable': False,
-                'executor_kwargs': {},
+                'executor_kwargs': {
+                    'mp_context': multiprocessing.get_context('spawn'),
+                },
             },
         ),
     ]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist.egg-info/PKG-INFO 
new/futurist-3.4.0/futurist.egg-info/PKG-INFO
--- old/futurist-3.3.0/futurist.egg-info/PKG-INFO       2026-03-24 
11:12:48.000000000 +0100
+++ new/futurist-3.4.0/futurist.egg-info/PKG-INFO       2026-06-26 
15:33:06.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.4
 Name: futurist
-Version: 3.3.0
+Version: 3.4.0
 Summary: Useful additions to futures, from the future.
 Author-email: OpenStack <[email protected]>
 License: Apache-2.0
@@ -13,12 +13,12 @@
 Classifier: Operating System :: POSIX :: Linux
 Classifier: Programming Language :: Python
 Classifier: Programming Language :: Python :: 3
-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.14
 Classifier: Typing :: Typed
-Requires-Python: >=3.10
+Requires-Python: >=3.11
 Description-Content-Type: text/x-rst
 License-File: LICENSE
 Requires-Dist: debtcollector>=3.0.0
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist.egg-info/SOURCES.txt 
new/futurist-3.4.0/futurist.egg-info/SOURCES.txt
--- old/futurist-3.3.0/futurist.egg-info/SOURCES.txt    2026-03-24 
11:12:48.000000000 +0100
+++ new/futurist-3.4.0/futurist.egg-info/SOURCES.txt    2026-06-26 
15:33:06.000000000 +0200
@@ -46,8 +46,10 @@
 futurist/tests/test_executors.py
 futurist/tests/test_periodics.py
 futurist/tests/test_waiters.py
+releasenotes/notes/add-mp_context-arg-db2ca2d0b3f24b93.yaml
 releasenotes/notes/add-reno-996dd44974d53238.yaml
 releasenotes/notes/deprecate-eventlet-d96deb8b97930fef.yaml
+releasenotes/notes/drop-python-3.10-1ffc51bb720262e3.yaml
 releasenotes/notes/drop-python27-support-5757997ea990b7ca.yaml
 releasenotes/notes/dynamic-pool-ae8811eecd5f9009.yaml
 
releasenotes/notes/improve-get-optimal-count-of-max_workers-for-pool-89368859d3b819e0.yaml
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/futurist.egg-info/pbr.json 
new/futurist-3.4.0/futurist.egg-info/pbr.json
--- old/futurist-3.3.0/futurist.egg-info/pbr.json       2026-03-24 
11:12:48.000000000 +0100
+++ new/futurist-3.4.0/futurist.egg-info/pbr.json       2026-06-26 
15:33:06.000000000 +0200
@@ -1 +1 @@
-{"git_version": "ab3713a", "is_release": true}
\ No newline at end of file
+{"git_version": "85f1968", "is_release": true}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/futurist-3.3.0/pyproject.toml 
new/futurist-3.4.0/pyproject.toml
--- old/futurist-3.3.0/pyproject.toml   2026-03-24 11:11:32.000000000 +0100
+++ new/futurist-3.4.0/pyproject.toml   2026-06-26 15:32:16.000000000 +0200
@@ -11,7 +11,7 @@
 readme = {file = "README.rst", content-type = "text/x-rst"}
 license = {text = "Apache-2.0"}
 dynamic = ["version", "dependencies"]
-requires-python = ">=3.10"
+requires-python = ">=3.11"
 classifiers = [
     "Environment :: OpenStack",
     "Intended Audience :: Information Technology",
@@ -20,10 +20,10 @@
     "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.14",
     "Typing :: Typed",
 ]
 
@@ -53,7 +53,7 @@
 "futurist/tests/*" = ["S"]
 
 [tool.mypy]
-python_version = "3.10"
+python_version = "3.11"
 show_column_numbers = true
 show_error_context = true
 strict = true
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/futurist-3.3.0/releasenotes/notes/add-mp_context-arg-db2ca2d0b3f24b93.yaml 
new/futurist-3.4.0/releasenotes/notes/add-mp_context-arg-db2ca2d0b3f24b93.yaml
--- 
old/futurist-3.3.0/releasenotes/notes/add-mp_context-arg-db2ca2d0b3f24b93.yaml  
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/futurist-3.4.0/releasenotes/notes/add-mp_context-arg-db2ca2d0b3f24b93.yaml  
    2026-06-26 15:32:16.000000000 +0200
@@ -0,0 +1,8 @@
+---
+features:
+  - |
+    The ``ProcessPoolExecutor`` class now accepts the ``mp_context``.
+    Refer to `docs`__ for ``concurrent.futures.ProcessPoolExector`` for more
+    information.
+
+    .. __: 
https://docs.python.org/3/library/concurrent.futures.html#concurrent.futures.ProcessPoolExecutor
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/futurist-3.3.0/releasenotes/notes/drop-python-3.10-1ffc51bb720262e3.yaml 
new/futurist-3.4.0/releasenotes/notes/drop-python-3.10-1ffc51bb720262e3.yaml
--- 
old/futurist-3.3.0/releasenotes/notes/drop-python-3.10-1ffc51bb720262e3.yaml    
    1970-01-01 01:00:00.000000000 +0100
+++ 
new/futurist-3.4.0/releasenotes/notes/drop-python-3.10-1ffc51bb720262e3.yaml    
    2026-06-26 15:32:16.000000000 +0200
@@ -0,0 +1,5 @@
+---
+upgrade:
+  - |
+    Support for Python 3.10 has been dropped. The minimum version of Python now
+    supported is 3.11.

Reply via email to