Update dependency pytest-xdist to v3 #110
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
==2.1.0
->==3.6.1
Release Notes
pytest-dev/pytest-xdist (pytest-xdist)
v3.6.1
Compare Source
===============================
Bug Fixes
#​1071 <https://github.com/pytest-dev/pytest-xdist/issues/1071>
_: Add backward compatibility for deadlock issue with theexecnet
newmain_thread_only
"execmodel" triggered when pytest-cov accesses rinfo.v3.6.0
Compare Source
===============================
This release was YANKED due to a regression fixed in 3.6.1.
Features
#​1027 <https://github.com/pytest-dev/pytest-xdist/pull/1027>
_:pytest-xdist
workers now always execute the tests in the main thread.Previously some tests might end up executing in a separate thread other than
main
in the workers, due to some internalexecnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example
#620 #620`__).Bug Fixes
#​1024 <https://github.com/pytest-dev/pytest-xdist/issues/1024>
_: Added proper handling ofshouldstop
(such as set by--max-fail
) andshouldfail
conditions in workers.Previously, a worker might have continued executing further tests before the controller could terminate the session.
#​1028 <https://github.com/pytest-dev/pytest-xdist/issues/1028>
_: Fixed compatibility issue betweenlooponfail
and editable installs.#​620 <https://github.com/pytest-dev/pytest-xdist/issues/620>
_: Use the newmain_thread_only
execnet
"execmodel" so that code which expects to only run in the main thread will now work as expected.#​937 <https://github.com/pytest-dev/pytest-xdist/issues/937>
_: Fixed a bug where plugin would raise an incompatibility error with--pdb
despite using-n0
.Removals
#​1053 <https://github.com/pytest-dev/pytest-xdist/issues/1053>
_: Dropped support for Python 3.7.#​1057 <https://github.com/pytest-dev/pytest-xdist/issues/1057>
_: pytest>=7.0.0 is now required.execnet>=2.1.0 is now required.
Trivial Changes
#​1020 <https://github.com/pytest-dev/pytest-xdist/issues/1020>
_: pytest-xdist'ssetup.py
file is removed.If you relied on this file, e.g. to install pytest using
setup.py install
,please see
Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary>
_ for alternatives.#​1057 <https://github.com/pytest-dev/pytest-xdist/issues/1057>
_: The internals of pytest-xdist are now fully typed. The typing is not exposed yet.#​996 <https://github.com/pytest-dev/pytest-xdist/issues/996>
_: Adjusted license file format and content to ensure security scanners will identity the license.v3.5.0
Compare Source
===============================
Features
#​632 <https://github.com/pytest-dev/pytest-xdist/issues/632>
_:--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.v3.4.0
Compare Source
===============================
Features
#​963 <https://github.com/pytest-dev/pytest-xdist/issues/963>
_: Wait for workers to finish reporting when test run stops early.This makes sure that the results of in-progress tests are displayed.
Previously these reports were being discarded, losing information about the
test run.
#​965 <https://github.com/pytest-dev/pytest-xdist/issues/965>
_: Added support for Python 3.12.v3.3.1
Compare Source
===============================
Bug Fixes
#​907 <https://github.com/pytest-dev/pytest-xdist/issues/907>
_: Avoid remote calls during startup asexecnet
by default does not ensure remote affinity with themain 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
(pytest-dev/execnet#96 <https://github.com/pytest-dev/execnet/issues/96>
__).v3.3.0
Compare Source
===============================
Features
#​555 <https://github.com/pytest-dev/pytest-xdist/issues/555>
_: Improved progress output when collecting nodes to be less verbose.v3.2.1
Compare Source
===============================
Bug Fixes
#​884 <https://github.com/pytest-dev/pytest-xdist/issues/884>
_: Fixed hang inworksteal
scheduler.v3.2.0
Compare Source
===============================
Improved Documentation
#​863 <https://github.com/pytest-dev/pytest-xdist/issues/863>
_: Document limitations for debugging due to standard I/O of workers not being forwarded. Also, mention remote debugging as a possible workaround.Features
#​855 <https://github.com/pytest-dev/pytest-xdist/issues/855>
_: Users can now configureload
scheduling precision using--maxschedchunk
commandline option.
#​858 <https://github.com/pytest-dev/pytest-xdist/issues/858>
: Newworksteal
scheduler, based on the idea ofwork stealing <https://en.wikipedia.org/wiki/Work_stealing>
. It's similar toload
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.Trivial Changes
#​870 <https://github.com/pytest-dev/pytest-xdist/issues/870>
_: Make the tests pass even when$PYTEST_XDIST_AUTO_NUM_WORKERS
is set.v3.1.0
Compare Source
===============================
Features
#​789 <https://github.com/pytest-dev/pytest-xdist/issues/789>
_: Users can now set a default distribution mode in their configuration file:.. code-block:: ini
#​842 <https://github.com/pytest-dev/pytest-xdist/issues/842>
_: Python 3.11 is now officially supported.Removals
#​842 <https://github.com/pytest-dev/pytest-xdist/issues/842>
_: Python 3.6 is no longer supported.v3.0.2
Compare Source
===============================
Bug Fixes
#​813 <https://github.com/pytest-dev/pytest-xdist/issues/813>
_: Cancel shutdown when a crashed worker is restarted.Deprecations
#​825 <https://github.com/pytest-dev/pytest-xdist/issues/825>
_: The--rsyncdir
command line argument andrsyncdirs
config variable are deprecated.The rsync feature will be removed in pytest-xdist 4.0.
#​826 <https://github.com/pytest-dev/pytest-xdist/issues/826>
_: The--looponfail
command line argument andlooponfailroots
config variable are deprecated.The loop-on-fail feature will be removed in pytest-xdist 4.0.
Improved Documentation
#​791 <https://github.com/pytest-dev/pytest-xdist/issues/791>
_: Document thepytest_xdist_auto_num_workers
hook.#​796 <https://github.com/pytest-dev/pytest-xdist/issues/796>
_: Added known limitations section to documentation.#​829 <https://github.com/pytest-dev/pytest-xdist/issues/829>
_: Document the-n logical
option.Features
#​792 <https://github.com/pytest-dev/pytest-xdist/issues/792>
_: The environment variablePYTEST_XDIST_AUTO_NUM_WORKERS
can now be used tospecify the default for
-n auto
and-n logical
.#​812 <https://github.com/pytest-dev/pytest-xdist/issues/812>
_: Partially restore old initial batch distribution algorithm inLoadScheduling
.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 toround-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 othercases.
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 <https://github.com/pytest-dev/pytest-xdist/issues/468>
_: The--boxed
command-line option has been removed. If you still need this functionality, installpytest-forked <https://pypi.org/project/pytest-forked>
__ separately.Trivial Changes
#​468 <https://github.com/pytest-dev/pytest-xdist/issues/468>
_: Thepy
dependency has been dropped.#​822 <https://github.com/pytest-dev/pytest-xdist/issues/822>
_: Replace internal usage ofpy.log
with a custom solution (but with the same interface).#​823 <https://github.com/pytest-dev/pytest-xdist/issues/823>
_: Remove usage ofpy._pydir
as an rsync candidate.#​824 <https://github.com/pytest-dev/pytest-xdist/issues/824>
_: Replace internal usages ofpy.path.local
bypathlib.Path
.v2.5.0
Compare Source
===============================
Deprecations and Removals
#​468 <https://github.com/pytest-dev/pytest-xdist/issues/468>
_: The--boxed
command line argument is deprecated. Installpytest-forked <https://pypi.org/project/pytest-forked>
__ and use--forked
instead. pytest-xdist 3.0.0 will remove the--boxed
argument andpytest-forked
dependency.Features
#​722 <https://github.com/pytest-dev/pytest-xdist/issues/722>
_: Full compatibility with pytest 7 - no deprecation warnings or use of legacy features.#​733 <https://github.com/pytest-dev/pytest-xdist/issues/733>
_: 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
#​708 <https://github.com/pytest-dev/pytest-xdist/issues/708>
_: Use@pytest.hookspec
decorator to declare hook options innewhooks.py
to avoid warnings inpytest 7.0
.#​719 <https://github.com/pytest-dev/pytest-xdist/issues/719>
_: Use up-to-datesetup.cfg
/pyproject.toml
packaging setup.#​720 <https://github.com/pytest-dev/pytest-xdist/issues/720>
_: Require pytest>=6.2.0.#​721 <https://github.com/pytest-dev/pytest-xdist/issues/721>
_: Started using type annotations and mypy checking internally. The types are incomplete and not published.v2.4.0
Compare Source
===============================
Features
#​696 <https://github.com/pytest-dev/pytest-xdist/issues/696>
_: On Linux, the process title now changes to indicate the current worker state (running/idle).Depends on the
setproctitle <https://pypi.org/project/setproctitle/>
__ package, which can be installed withpip install pytest-xdist[setproctitle]
.#​704 <https://github.com/pytest-dev/pytest-xdist/issues/704>
_: Add support for Python 3.10.v2.3.0
Compare Source
===============================
Deprecations and Removals
#​654 <https://github.com/pytest-dev/pytest-xdist/issues/654>
_: Python 3.5 is no longer supported.Features
#​646 <https://github.com/pytest-dev/pytest-xdist/issues/646>
_: Add--numprocesses=logical
flag, which automatically uses the number of logical CPUs available, instead of physical CPUs withauto
.This is very useful for test suites which are not CPU-bound.
#​650 <https://github.com/pytest-dev/pytest-xdist/issues/650>
_: Added newpytest_handlecrashitem
hook to allow handling and rescheduling crashed items.Bug Fixes
#​421 <https://github.com/pytest-dev/pytest-xdist/issues/421>
_: Copy the parent process sys.path into local workers, to work around execnet's python -c adding the current directory to sys.path.#​638 <https://github.com/pytest-dev/pytest-xdist/issues/638>
_: Fix issue caused by changing the branch name of the pytest repository.Trivial Changes
#​592 <https://github.com/pytest-dev/pytest-xdist/issues/592>
_: Replace master with controller where ever possible.#​643 <https://github.com/pytest-dev/pytest-xdist/issues/643>
_: Use 'main' to refer to pytest default branch in tox env names.v2.2.1
Compare Source
===============================
Bug Fixes
#​623 <https://github.com/pytest-dev/pytest-xdist/issues/623>
_: Gracefully handle the pending deprecation of Node.fspath by using config.rootpath for topdir.v2.2.0
Compare Source
===============================
Features
#​608 <https://github.com/pytest-dev/pytest-xdist/issues/608>
_: Internal errors in workers are now propagated to the master node.Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.