Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package python-huey for openSUSE:Factory checked in at 2026-10-26 10:05:09 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/python-huey (Old) and /work/SRC/openSUSE:Factory/.python-huey.new.2252680 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-huey" Mon Oct 26 10:05:09 2026 rev:8 rq:1392647 version:3.5.3 Changes: -------- --- /work/SRC/openSUSE:Factory/python-huey/python-huey.changes 2026-03-11 20:53:49.950266793 +0100 +++ /work/SRC/openSUSE:Factory/.python-huey.new.2252680/python-huey.changes 2026-10-26 10:06:36.981354294 +0100 @@ -1,0 +2,74 @@ +Mon Oct 26 08:03:17 UTC 2026 - Dirk Müller <[email protected]> + +- update to 3.5.3: + * Close the storage connection before forking process workers, + this just simplifies things. Refs #924 sorta. + * Run the callback of an empty chord with an empty results + list. Previously it was never enqueued, fixes #926. + * **Backwards-incompatible.** Stop storing an error or running + `on_error` when a task raises `RetryTask`, or is rate-limited + or locked, with a retry pending. + * Fix `RedisSemaphore` allowing more than `value` holders under + contention. + * Renew the `lock_task_semaphore` slot while the task runs, and + drop the timeout from 24 hours to 5 minutes. + * Ensure `FileStorage` readers never see a partially-written + result. + * Prevent forked workers deadlocking w/sqlite or PG storage + when another thread was using the storage at fork time, see #924. + * Ensure traceback is stored properly for error results. + * Restart the stats recorder in forked children via + `os.register_at_fork`. + * Previously the writer thread existed only in the process that + called `enable_stats()`, so a consumer w/ `worker_type='process'` + * Add `retry_backoff` parameter to `task()` and + `periodic_task()`. The first retry waits `retry_delay` seconds + and each subsequent delay is multiplied by `retry_backoff`, + giving exponentially-growing waits between retries. + * Fix `create_tables=False`, which crashed `SqliteHuey` at + connect and was silently ignored by the peewee `SqlHuey`. + `SqlStorage` also gains `initialize_schema()` so the + `create_huey_tables` command supports it. + * Add `store_intermediate_errors` option (default true, + preserving current behavior). When false, a task that fails + with retries remaining no longer writes its exception to the + result store or runs its `on_error` handler until the retries + are exhausted, so a blocking `Result.get()` waits for the *final* + outcome instead of raising on the first failed attempt. + * Add `create_tables` option to the SQL storage backends + (default true). Pass `create_tables=False` to skip the + automatic `create table if not exists` at init, e.g. to manage + huey's schema via Django migrations rather than have + every web worker attempt DDL on import. + * Add a `create_huey_tables` Django management command to + create the tables when `create_tables=False`. + * Add `chord()` (map -> reduce) and `group()` (map) primitives. + * Add `timeout` (using SIGALRM for process and gevent.Timeout + for greenlet) to + * control task running time. For threads, unfortunately, + there's no good + * mechanism so instead APIs for cooperatively checking timeout + are provided on + * the Task instance. + * Add simple fixed-window `rate_limit()` for tasks. + * Add `Result.is_ready()` method for checking result readiness. + * New option for low-latency result fetching, available for + RedisHuey. To use, + * pass ``notify_result=True`` when initializing your Huey + instance. + * Add new `incr(key, amount=1)` to storage API for atomic + increment primitive. + * This is used by `chord()`. + * Add new `wait_result()` method to storage APIs for + efficiently waiting for a + * result to become ready. The default implementation uses the + exponential + * backoff from the previous implementation of a blocking + `Result.get()` - so no + * changes are needed. However if you have a custom storage + implementation, this + * provides a mechanism for pub/sub or other notification of + result readiness. + * Remove Python 2.x compatibility. + +------------------------------------------------------------------- Old: ---- huey-2.6.0.tar.gz New: ---- huey-3.5.3.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ python-huey.spec ++++++ --- /var/tmp/diff_new_pack.RRk8iY/_old 2026-10-26 10:06:38.771429367 +0100 +++ /var/tmp/diff_new_pack.RRk8iY/_new 2026-10-26 10:06:38.773429451 +0100 @@ -18,7 +18,7 @@ %{?sle15_python_module_pythons} Name: python-huey -Version: 2.6.0 +Version: 3.5.3 Release: 0 Summary: A little task queue for Python License: MIT @@ -63,36 +63,26 @@ %prep %autosetup -p1 -n huey-%{version} -# Remove empty file from source -rm huey/contrib/djhuey/models.py %build %pyproject_wheel %install %pyproject_install -%python_clone -a %{buildroot}%{_bindir}/huey_consumer.py %python_clone -a %{buildroot}%{_bindir}/huey_consumer - -%{python_expand # -chmod 755 %{buildroot}%{$python_sitelib}/huey/bin/huey_consumer.py -%{$python_fix_shebang_path %{buildroot}%{$python_sitelib}/huey/bin/huey_consumer.py} -} - %python_expand %fdupes %{buildroot}%{$python_sitelib} # all checks need a running REDIS instance %post -%python_install_alternative huey_consumer.py huey_consumer +%python_install_alternative huey_consumer %postun -%python_uninstall_alternative huey_consumer.py +%python_uninstall_alternative huey_consumer %files %{python_files} %doc CHANGELOG.md README.rst %license LICENSE -%python_alternative %{_bindir}/huey_consumer.py %python_alternative %{_bindir}/huey_consumer %{python_sitelib}/huey %{python_sitelib}/huey-%{version}.dist-info ++++++ huey-2.6.0.tar.gz -> huey-3.5.3.tar.gz ++++++ ++++ 21157 lines of diff (skipped)
