Debian Patches

Status for python-stestr/4.2.1-8

Patch Description Author Forwarded Bugs Origin Last update
Display-the-completion-and-ETA-of-dynamic-runs.patch Display the completion and ETA of dynamic runs
Each worker of a dynamic scheduling run now displays the completion
of the whole run on stderr right before running its next group of
tests:

[42/312 (13.5%) elapsed: 00:01:23, ETA: ~00:08:53]

The percentage counts individual tests over the total number of tests
of the run, and the ETA extrapolates the average duration of the
completed tests to the remaining ones, so it is only a rough estimate
(and it stays unknown until the first group of tests completes). The
worker running the last group also displays the final 100% line.

Workers share a tests-done counter and the run start time with the
parent, and both are scoped to the fixture instance like the test
list queue: if they were garbage collected while the workers are
still starting, the finalizer of their locks would unlink the
underlying semaphores and the workers would crash with a
FileNotFoundError when rebuilding them.
Thomas Goirand <zigo@debian.org> no 2026-10-15
remove-privacy-breach-in-README.rst.patch Remove privacy breach in README.rst
===================================================================
Thomas Goirand <zigo@debian.org> no 2018-08-18
fix-pyproject.toml.patch Fix pyproject.toml
===================================================================
Thomas Goirand <zigo@debian.org> no 2025-09-29
Add_dynamic_scheduling_operation_mode.patch Add dynamic scheduling operation mode Backport of upstream PR #271 against 4.2.1: adds the experimental
--dynamic option to `stestr run`. Workers are long-lived spawned
processes pulling test ids from a shared queue, which keeps every
worker busy until there are no tests left instead of pre-partitioning
the test list up front.
.
Includes the follow-up fixes: pass the dynamic flag to _run_tests()
(and follow cmd.dynamic), schedule the test ids of each group instead
of the group ids (needed for group-regex/parallel-class configs),
open the worker pipes in binary mode, use a module-level worker with
per-worker sentinels instead of pickling the fixture into each
worker, capture the workers' stdout into the subunit stream, report
crashed workers as process-returncode failures, fix
get_dynamic_test_list(randomize=True) returning None, and reset the
subunit_trace state on each trace()/load() call. Each dynamic
worker also mirrors the state of the non-dynamic runner subprocesses:
it loads the whole test tree through the same unittest discovery
(seeding the import side effects projects rely on, like Neutron test
models registering into a shared sqlalchemy metadata), runs the
discovered tests matched by id (the unittest name loader cannot
resolve ddt-generated ids), presents the same sys.argv[0] and gets
the ${VAR:-default} test_path of the config expanded. Each worker
then runs the group of test ids returned by the scheduler (the same
scheduling unit the non-dynamic mode keeps on a single worker, e.g.
a test class with a group_regex config) as a single
unittest.TestSuite, so the class level fixtures (setUpClass and
tearDownClass) are run once per group like in the non-dynamic mode
instead of running every test id as a bare TestCase. Also adds unit
and functional tests.
Matthew Treinish <mtreinish@kortar.org> not-needed upstream upstream, https://github.com/mtreinish/stestr/pull/271 2026-10-03
Add_dynamic_debug_option.patch Add a debug option to the dynamic scheduler mode Adds the experimental --dynamic-debug option to `stestr run`, to be
used alongside --dynamic. Each worker logs to stderr the group of tests
it picked from the queue and every test start and completion, and a
watchdog thread in the parent prints the state of the job queue and of
the workers every 30s. When no group of tests finished across two
consecutive ticks, the watchdog signals the still-alive workers with
SIGUSR1 so that each of them dumps its Python stacks (via faulthandler)
into the log, revealing which test is stuck and where. The option has
no effect without --dynamic or when the concurrency is 1.
Thomas Goirand <zigo@debian.org> no 2026-10-15
Improve_dynamic_debug_watchdog_reporting.patch Improve the reporting of the --dynamic-debug watchdog Each worker publishes the test it is currently running into a shared
slot of the process (its id and start time), and the watchdog lists
the running tests of the still-alive workers at every tick. A worker
that exited is now reported only once, with its exit code, and a run
where every group of tests is done while some workers have not exited
is announced once, which usually points at a worker blocked at
interpreter exit. Also give a distinct module name to the test modules
of the unittest discovery tests, so that running them in the same
process cannot collide in sys.modules.

===================================================================
Thomas Goirand <zigo@debian.org> no 2026-10-15
Fix-sys.modules-leak-in-dynamic-worker-tests.patch Pop the dynamic worker fixture modules out of sys.modules The two in-process dynamic worker tests that run unittest discovery over
a temporary top_dir import their test_user_gone / test_user_gone_eta
fixture modules into the main test process's sys.modules and never
remove them. When two of them shared the same module name (test_user),
whichever test ran second failed unittest discovery with "module
incorrectly imported ... Is this module globally installed?", breaking
the build on 1-CPU builders (100% of rebuilds there). The fixture
modules now get popped from sys.modules in a cleanup, so that no
same-named module imported later from another directory can break
unittest discovery again.

===================================================================
Thomas Goirand <zigo@debian.org> no debian 2026-10-17

All known versions for source package 'python-stestr'

Links