Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-time-machine for
openSUSE:Factory checked in at 2026-01-15 16:43:49
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-time-machine (Old)
and /work/SRC/openSUSE:Factory/.python-time-machine.new.1928 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-time-machine"
Thu Jan 15 16:43:49 2026 rev:19 rq:1327286 version:3.1.0
Changes:
--------
--- /work/SRC/openSUSE:Factory/python-time-machine/python-time-machine.changes
2024-11-01 21:00:47.725465015 +0100
+++
/work/SRC/openSUSE:Factory/.python-time-machine.new.1928/python-time-machine.changes
2026-01-15 16:44:08.214996251 +0100
@@ -1,0 +2,63 @@
+Tue Dec 9 21:22:28 UTC 2025 - Matej Cepl <[email protected]>
+
+- Update to 3.1.0
+ - Optimize patching of uuid module. By avoiding using
+ unittest.mock, this small overhead from starting
+ time_machine.travel() has been reduced about 20x, from ~600ns
+ to ~30ns by one benchmark.
+- Update to 3.0.0
+ - Remove mocking of time.monotonic() and time.monotonic_ns().
+ This mocking caused too many issues, such as causing freezes
+ in asyncio event loops (Issue #387), preventing
+ pytest-durations from timing tests correctly (Issue #505),
+ and triggering timeouts in psycopg (Issue #509). The root
+ cause here is that mocking the monotonic clock breaks its
+ contract, allowing it to move backwards when it’s meant to
+ only move forwards.
+ As an alternative, use unittest.mock to mock the monotonic
+ function for the specific tested modules that need it. That
+ means that your code should import monotonic() or
+ monotonic_ns() directly, so that your tests can mock it in
+ those places only.
+ - Parse str destinations with datetime.fromisoformat() first,
+ before falling back to dateutil if installed.
+ datetime.fromisoformat() can parse most valid ISO 8601
+ formats, with better performance and no extra dependencies.
+ - Make the dependency on dateutil optional.
+ - Rename the Coordinates class to Traveller, to match the
+ recommended context manager variable name.
+ - Drop Python 3.9 support.
+ - Make the escape_hatch functions raise ValueError when called
+ outside of time-travelling, rather than triggering
+ segmentation faults.
+- Update to 2.19.0
+ - Add marker support to the pytest plugin. Decorate tests with
+ @pytest.mark.time_machine(<destination>) to set time during a test,
+ affecting function-level fixtures as well.
+ - Add asynchronous context manager support to time_machine.travel(). You can
+ now use async with time_machine.travel(...): in asynchronous code, per the
+ documentation.
+ - Import date and time functions once in the C extension.
+ - This should improve speed a little bit, and avoid segmentation faults when
+ the functions have been swapped out, such as when freezegun is in effect.
+ (time-machine still won’t apply if freezegun is in effect.)
+- Update to 2.18.0
+ - Update the migration CLI to detect unittest classes based on whether they
+ use self.assert* methods like self.assertEqual().
+ - Fix free-threaded Python warning: RuntimeWarning: The global interpreter
+ lock (GIL) has been enabled... as seen on Python 3.13+.
+ - Add support to travel() for datetime destinations with tzinfo set to
+ datetime.UTC (datetime.timezone.utc).
+ - Prevent segmentation faults in unlikely scenarios, such as if the
+ time_machine module cannot be imported.
+ - Make travel() fully unpatch date and time functions when travel ends. This
+ may fix certain edge cases.
+- Update to 2.17.0
+ - Include wheels for Python 3.14.
+ - Support free-threaded Python.
+ - Add a new CLI for migrating code from freezegun to time-machine.
+ - Install with pip install time-machine[cli] and run with python -m
+ time_machine migrate.
+ - Move the documentation to Read the Docs, and add a retro-futuristic logo.
+
+-------------------------------------------------------------------
Old:
----
python-time-machine-2.16.0.tar.gz
New:
----
python-time-machine-3.1.0.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-time-machine.spec ++++++
--- /var/tmp/diff_new_pack.Gr4JeS/_old 2026-01-15 16:44:08.807020906 +0100
+++ /var/tmp/diff_new_pack.Gr4JeS/_new 2026-01-15 16:44:08.815021239 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-time-machine
#
-# Copyright (c) 2024 SUSE LLC
+# Copyright (c) 2025 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
@@ -16,13 +16,12 @@
#
-%{?sle15_python_module_pythons}
Name: python-time-machine
-Group: Development/Languages/Python
-Version: 2.16.0
+Version: 3.1.0
Release: 0
Summary: Travel through time in your tests
License: MIT
+Group: Development/Languages/Python
URL: https://github.com/adamchainz/time-machine
# pypi packages don't contain the tests anymore since 2.2.0, see changelog
Source:
https://github.com/adamchainz/time-machine/archive/refs/tags/%{version}.tar.gz#/%{name}-%{version}.tar.gz
@@ -30,17 +29,19 @@
BuildRequires: %{python_module pip}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module wheel}
+BuildRequires: fdupes
+BuildRequires: python-rpm-generators
BuildRequires: python-rpm-macros
+Requires: python-python-dateutil
+Requires: python-tokenize-rt
+Requires: timezone
# SECTION tests
BuildRequires: %{python_module backports.zoneinfo if %python-base < 3.9}
BuildRequires: %{python_module pytest}
BuildRequires: %{python_module python-dateutil}
+BuildRequires: %{python_module tokenize-rt}
BuildRequires: timezone
# /SECTION
-BuildRequires: fdupes
-BuildRequires: python-rpm-generators
-Requires: python-python-dateutil
-Requires: timezone
%python_subpackages
%description
@@ -55,7 +56,7 @@
%install
%pyproject_install
-%python_expand %fdupes %{buildroot}%{$python_sitelib}
+%python_expand %fdupes %{buildroot}%{$python_sitearch}
%check
%pytest_arch
@@ -65,5 +66,5 @@
%license LICENSE
%{python_sitearch}/time_machine
%{python_sitearch}/_time_machine.*.so
-%{python_sitearch}/time_machine-%{version}.dist-info
+%{python_sitearch}/time_machine-%{version}*-info
++++++ python-time-machine-2.16.0.tar.gz -> python-time-machine-3.1.0.tar.gz
++++++
++++ 7231 lines of diff (skipped)