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.