- update to 3.6.1
* pytest-xdist workers now always execute the tests in the main thread.
* Added proper handling of shouldstop and shouldfail conditions in workers.
* Fixed compatibility issue between looponfail and editable installs.
* Use the new main_thread_only execnet “execmodel” so that code which
expects to only run in the main thread will now work as expected.
* Add backward compatibility for deadlock issue with the execnet new
main_thread_only “execmodel” triggered when pytest-cov accesses rinfo.
OBS-URL: https://build.opensuse.org/request/show/1178984
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=41
- update to 3.5.0:
* ``--dist=loadscope`` now sorts scopes by number of tests to
assign largest scopes early -- in many cases this should
improve overall test session running time, as there is less
chance of a large scope being left to be processed near the
end of the session, leaving other workers idle.
not ensure remote affinity with the main thread and might
* Internal errors in workers are now propagated to the master node.
* New ``pytest_xdist_auto_num_workers`` hook can be implemented by plugins
or ``conftest.py`` files to control the number of workers when
* ``psutil`` has proven to make ``pytest-xdist`` installation in certain
platforms and containers problematic, so to use it for automatic number
* Drop backward-compatibility "slave" aliases related to worker nodes. We deliberately
moved away from this terminology years ago, and it seems like the right time to finish
* New functions ``xdist.is_xdist_worker``, ``xdist.is_xdist_master``, ``xdist.get_xdist_worker_id``,
pytest_report_from_serializable hooks from pytest 4.4
- new ``worker_id`` fixture, returns the id of the worker in a test or
- Update to 1.10
OBS-URL: https://build.opensuse.org/request/show/1129240
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest-xdist?expand=0&rev=25
* ``--dist=loadscope`` now sorts scopes by number of tests to
assign largest scopes early -- in many cases this should
improve overall test session running time, as there is less
chance of a large scope being left to be processed near the
end of the session, leaving other workers idle.
not ensure remote affinity with the main thread and might
* Internal errors in workers are now propagated to the master node.
* New ``pytest_xdist_auto_num_workers`` hook can be implemented by plugins
or ``conftest.py`` files to control the number of workers when
* ``psutil`` has proven to make ``pytest-xdist`` installation in certain
platforms and containers problematic, so to use it for automatic number
* Drop backward-compatibility "slave" aliases related to worker nodes. We deliberately
moved away from this terminology years ago, and it seems like the right time to finish
* New functions ``xdist.is_xdist_worker``, ``xdist.is_xdist_master``, ``xdist.get_xdist_worker_id``,
pytest_report_from_serializable hooks from pytest 4.4
- new ``worker_id`` fixture, returns the id of the worker in a test or
- Update to 1.10
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=39
* Avoid remote calls during startup as execnet by default does
not ensure remote affinity with the main thread and might
accidentally schedule the pytest worker into a non-main
thread, which breaks numerous frameworks, for example
``asyncio``, ``anyio``, ``PyQt/PySide``, etc.
A more safe correction will require thread affinity in
``execnet``
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=35
- update to 3.2.1:
* Fixed hang in ``worksteal`` scheduler.
* Improved Documentation
* Document limitations for debugging due
to standard I/O of workers not being forwarded. Also, mention
remote debugging as a possible workaround.
Features:
* Users can now configure ``load``
scheduling precision using ``--maxschedchunk`` command
line option.
* New ``worksteal`` scheduler, based on
the idea of `work stealing
It's similar
to ``load`` scheduler, but it should handle tests with
significantly differing duration better, and, at the same
time, it should provide similar or better reuse of fixtures.
OBS-URL: https://build.opensuse.org/request/show/1074586
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest-xdist?expand=0&rev=20
* Fixed hang in ``worksteal`` scheduler.
* Improved Documentation
* Document limitations for debugging due
to standard I/O of workers not being forwarded. Also, mention
remote debugging as a possible workaround.
Features:
* Users can now configure ``load``
scheduling precision using ``--maxschedchunk`` command
line option.
* New ``worksteal`` scheduler, based on
the idea of `work stealing
It's similar
to ``load`` scheduler, but it should handle tests with
significantly differing duration better, and, at the same
time, it should provide similar or better reuse of fixtures.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=29
- Remove python_module macro definition
- Use autosetup instead of setup + autopatch
- Remove reintroduce-slave-terminology.patch
- Remove 0001-Revert-Remove-compat-for-pytest-6.patch
- Update to 3.0.2:
# Bug Fixes
* #813: Cancel shutdown when a crashed worker is restarted.
# Deprecations
* #825: The --rsyncdir command line argument and rsyncdirs config variable
are deprecated.
* The rsync feature will be removed in pytest-xdist 4.0.
* #826: The --looponfail command line argument and looponfailroots config
variable are deprecated.
* The loop-on-fail feature will be removed in pytest-xdist 4.0.
# Improved Documentation
* #791: Document the pytest_xdist_auto_num_workers hook.
* #796: Added known limitations section to documentation.
* #829: Document the -n logical option.
# Features
* #792: The environment variable PYTEST_XDIST_AUTO_NUM_WORKERS can now be
used to specify the default for -n auto and -n logical.
* #812: Partially restore old initial batch distribution algorithm in
LoadScheduling.
* pytest orders tests for optimal sequential execution - i. e. avoiding
unnecessary setup and teardown of fixtures. So executing tests in
consecutive chunks is important for optimal performance.
* In v1.14, initial test distribution in LoadScheduling was changed to
round-robin, optimized for the corner case, when the number of tests is
less than 2 * number of nodes. At the same time, it became worse for all
other cases.
* For example: if some tests use some "heavy" fixture, and these tests fit
into the initial batch, with round-robin distribution the fixture will be
created min(n_tests, n_workers) times, no matter how many other tests there
are.
* With the old algorithm (before v1.14), if there are enough tests not using
the fixture, the fixture was created only once.
* So restore the old behavior for typical cases where the number of tests is
much greater than the number of workers (or, strictly speaking, when there
are at least 2 tests for every node).
# Removals
* #468: The --boxed command-line option has been removed. If you still need
this functionality, install pytest-forked separately.
# Trivial Changes
* #468: The py dependency has been dropped.
* #822: Replace internal usage of py.log with a custom solution (but with the
same interface).
* #823: Remove usage of py._pydir as an rsync candidate.
* #824: Replace internal usages of py.path.local by pathlib.Path.
OBS-URL: https://build.opensuse.org/request/show/1039058
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest-xdist?expand=0&rev=19
- Use autosetup instead of setup + autopatch
- Remove reintroduce-slave-terminology.patch
- Remove 0001-Revert-Remove-compat-for-pytest-6.patch
- Update to 3.0.2:
# Bug Fixes
* #813: Cancel shutdown when a crashed worker is restarted.
# Deprecations
* #825: The --rsyncdir command line argument and rsyncdirs config variable
are deprecated.
* The rsync feature will be removed in pytest-xdist 4.0.
* #826: The --looponfail command line argument and looponfailroots config
variable are deprecated.
* The loop-on-fail feature will be removed in pytest-xdist 4.0.
# Improved Documentation
* #791: Document the pytest_xdist_auto_num_workers hook.
* #796: Added known limitations section to documentation.
* #829: Document the -n logical option.
# Features
* #792: The environment variable PYTEST_XDIST_AUTO_NUM_WORKERS can now be
used to specify the default for -n auto and -n logical.
* #812: Partially restore old initial batch distribution algorithm in
LoadScheduling.
* pytest orders tests for optimal sequential execution - i. e. avoiding
unnecessary setup and teardown of fixtures. So executing tests in
consecutive chunks is important for optimal performance.
* In v1.14, initial test distribution in LoadScheduling was changed to
round-robin, optimized for the corner case, when the number of tests is
less than 2 * number of nodes. At the same time, it became worse for all
other cases.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=27
- Update to 2.5.0
* Features
+ Full compatibility with pytest 7 - no deprecation warnings or
use of legacy features.
+ New --dist=loadgroup option, which ensures all tests marked
with @pytest.mark.xdist_group run in the same session/worker.
Other tests run distributed as in --dist=load.
* Trivial Changes
+ Use @pytest.hookspec decorator to declare hook options in
newhooks.py to avoid warnings in pytest 7.0.
+ Use up-to-date setup.cfg/pyproject.toml packaging setup.
+ Started using type annotations and mypy checking internally.
The types are incomplete and not published.
- Changes from 2.4.0
* Features
+ On Linux, the process title now changes to indicate the current
worker state (running/idle). Depends on the setproctitle package,
which can be installed with pip install pytest-xdist[setproctitle].
+ Add support for Python 3.10.
- Changes from 2.3.0
* Deprecations and Removals
+ Python 3.5 is no longer supported.
* Features
+ Add --numprocesses=logical flag, which automatically uses the
number of logical CPUs available, instead of physical CPUs
with auto. This is very useful for test suites which are not
CPU-bound.
+ Added new pytest_handlecrashitem hook to allow handling and
rescheduling crashed items.
* Bug Fixes
+ Copy the parent process sys.path into local workers, to work
around execnet's python -c adding the current directory to sys.path.
+ Fix issue caused by changing the branch name of the pytest repository.
* Trivial Changes
+ Replace master with controller where ever possible.
+ Use 'main' to refer to pytest default branch in tox env names.
- Update patches
* reintroduce-slave-terminology.patch
* 0001-Revert-Remove-compat-for-pytest-6.patch
- Require setuptools_scm >= 6.0 for building
OBS-URL: https://build.opensuse.org/request/show/946700
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=26
- Update to 2.1.0
* New ``pytest_xdist_auto_num_workers`` hook can be implemented by plugins
or ``conftest.py`` files to control the number of workers when
``--numprocesses=auto`` is given in the command-line.
* ``psutil`` has proven to make ``pytest-xdist`` installation in certain
platforms and containers problematic, so to use it for automatic number
of CPUs detection users need to install the ``psutil`` extra
- Add patches to keep compatibility with older pytests:
* reintroduce-slave-terminology.patch
* 0001-Revert-Remove-compat-for-pytest-6.patch
OBS-URL: https://build.opensuse.org/request/show/830842
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=20
- Update to 2.0.0
* Drop backward-compatibility "slave" aliases related to worker nodes. We deliberately
moved away from this terminology years ago, and it seems like the right time to finish
the deprecation and removal process.
* ``pytest-xdist`` no longer supports Python 2.7.
* New functions ``xdist.is_xdist_worker``, ``xdist.is_xdist_master``, ``xdist.get_xdist_worker_id``,
to easily identify the current node.
* When using ``-n auto``, count the number of physical CPU cores instead of logical ones.
* ``pytest-xdist`` now requires ``pytest>=6.0``.
OBS-URL: https://build.opensuse.org/request/show/829113
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=19
* #226: --max-worker-restart now assumes a more reasonable value (4 times the number of nodes) when not given explicitly. This prevents test suites from running forever when the suite crashes during collection.
* #435: When the test session is interrupted due to running out of workers, the reason is shown in the test summary for easier viewing.
* #442: Compatibility fix for upcoming pytest 5.0: session.exitstatus is now an IntEnum object.
* #435: No longer show an internal error when we run out of workers due to crashes.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=9
- Update to 1.26.1:
* #406: Do not implement deprecated pytest_logwarning hook in pytest versions where it is deprecated.
* #376: The current directory is no longer added sys.path for local workers, only for remote connections.
* #379: Warning attributes are checked to make sure they can be dumped prior to serializing the warning for submission to the master node.
* #372: Pytest versions older than 3.6 are no longer supported.
* #373: Node setup information is hidden when pytest is run in quiet mode to reduce noise on many-core machines.
* #388: mainargv is made available in workerinput from the host's sys.argv.
* #384: pytest 4.1 support: ExceptionInfo API changes.
* #390: pytest 4.1 support: pytest_logwarning hook removed.
OBS-URL: https://build.opensuse.org/request/show/674153
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-pytest-xdist?expand=0&rev=8
* #406: Do not implement deprecated pytest_logwarning hook in pytest versions where it is deprecated.
* #376: The current directory is no longer added sys.path for local workers, only for remote connections.
* #379: Warning attributes are checked to make sure they can be dumped prior to serializing the warning for submission to the master node.
* #372: Pytest versions older than 3.6 are no longer supported.
* #373: Node setup information is hidden when pytest is run in quiet mode to reduce noise on many-core machines.
* #388: mainargv is made available in workerinput from the host's sys.argv.
* #384: pytest 4.1 support: ExceptionInfo API changes.
* #390: pytest 4.1 support: pytest_logwarning hook removed.
OBS-URL: https://build.opensuse.org/package/show/devel:languages:python:pytest/python-pytest-xdist?expand=0&rev=4