Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

getting failures on slower machines since 3.3.0 release #907

Closed
zzzeek opened this issue May 15, 2023 · 27 comments · Fixed by #909
Closed

getting failures on slower machines since 3.3.0 release #907

zzzeek opened this issue May 15, 2023 · 27 comments · Fixed by #909

Comments

@zzzeek
Copy link

zzzeek commented May 15, 2023

hi -

i dont have a local reproducer here but since pytest-xdist 3.3.0 was released SQLAlchemy is seeing failures on github action nodes that use the virtualized "arm64" architecture - example failures:

https://github.com/sqlalchemy/sqlalchemy/actions/runs/4962771769/jobs/8881240949

https://github.com/sqlalchemy/sqlalchemy/actions/runs/4964655654/jobs/8884945438

https://github.com/sqlalchemy/sqlalchemy/actions/runs/4973604221/jobs/8899553346

stack traces look like this:

=========================== sqlalchemy installation ============================
SQLAlchemy 2.0.14 (no user site)
Path: /github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/__init__.py
compiled extension not enabled; cannot import name 'collections' from 'sqlalchemy.cyextension' (/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/cyextension/__init__.py)
============================= test session starts ==============================
platform linux -- Python 3.10.11, pytest-7.3.1, pluggy-1.0.0
cachedir: .tox/github-nocext/.pytest_cache
rootdir: /github/workspace
configfile: pyproject.toml
plugins: xdist-3.3.0
created: 2/2 workers
INTERNALERROR> def worker_internal_error(self, node, formatted_error):
INTERNALERROR>         """
INTERNALERROR>         pytest_internalerror() was called on the worker.
INTERNALERROR>     
INTERNALERROR>         pytest_internalerror() arguments are an excinfo and an excrepr, which can't
INTERNALERROR>         be serialized, so we go with a poor man's solution of raising an exception
INTERNALERROR>         here ourselves using the formatted message.
INTERNALERROR>         """
INTERNALERROR>         self._active_nodes.remove(node)
INTERNALERROR>         try:
INTERNALERROR> >           assert False, formatted_error
INTERNALERROR> E           AssertionError: Traceback (most recent call last):
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 259, in get_event_loop
INTERNALERROR> E                 return asyncio.get_running_loop()
INTERNALERROR> E             RuntimeError: no running event loop
INTERNALERROR> E             
INTERNALERROR> E             During handling of the above exception, another exception occurred:
INTERNALERROR> E             
INTERNALERROR> E             Traceback (most recent call last):
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/_pytest/main.py", line 267, in wrap_session
INTERNALERROR> E                 config.hook.pytest_sessionstart(session=session)
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_hooks.py", line 265, in __call__
INTERNALERROR> E                 return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR> E                 return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_callers.py", line 60, in _multicall
INTERNALERROR> E                 return outcome.get_result()
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR> E                 raise ex[1].with_traceback(ex[2])
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR> E                 res = hook_impl.function(*args)
INTERNALERROR> E               File "/github/workspace/test/../lib/sqlalchemy/testing/plugin/pytestplugin.py", line 163, in pytest_sessionstart
INTERNALERROR> E                 asyncio._assume_async(plugin_base.post_begin)
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/testing/asyncio.py", line 53, in _assume_async
INTERNALERROR> E                 return _util_async_run(fn, *args, **kwargs)
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 243, in _util_async_run
INTERNALERROR> E                 loop = get_event_loop()
INTERNALERROR> E               File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 261, in get_event_loop
INTERNALERROR> E                 return asyncio.get_event_loop_policy().get_event_loop()
INTERNALERROR> E               File "/opt/_internal/cpython-3.10.11/lib/python3.10/asyncio/events.py", line 656, in get_event_loop
INTERNALERROR> E                 raise RuntimeError('There is no current event loop in thread %r.'
INTERNALERROR> E             RuntimeError: There is no current event loop in thread 'Dummy-1'.
INTERNALERROR> E           assert False
INTERNALERROR> 
INTERNALERROR> .tox/github-nocext/lib/python3.10/site-packages/xdist/dsession.py:197: AssertionError
[gw1] node down: Not properly terminated

replacing crashed worker gw1
INTERNALERROR> Traceback (most recent call last):
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/_pytest/main.py", line 269, in wrap_session
INTERNALERROR>     session.exitstatus = doit(config, session) or 0
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/_pytest/main.py", line 323, in _main
INTERNALERROR>     config.hook.pytest_runtestloop(session=session)
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_hooks.py", line 265, in __call__
INTERNALERROR>     return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_manager.py", line 80, in _hookexec
INTERNALERROR>     return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_callers.py", line 60, in _multicall
INTERNALERROR>     return outcome.get_result()
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_result.py", line 60, in get_result
INTERNALERROR>     raise ex[1].with_traceback(ex[2])
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/pluggy/_callers.py", line 39, in _multicall
INTERNALERROR>     res = hook_impl.function(*args)
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/xdist/dsession.py", line 122, in pytest_runtestloop
INTERNALERROR>     self.loop_once()
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/xdist/dsession.py", line 145, in loop_once
INTERNALERROR>     call(**kwargs)
INTERNALERROR>   File "/github/workspace/.tox/github-nocext/lib/python3.10/site-packages/xdist/dsession.py", line 235, in worker_errordown
INTERNALERROR>     self._active_nodes.remove(node)
INTERNALERROR> KeyError: <WorkerController gw1>

@zzzeek
Copy link
Author

zzzeek commented May 15, 2023

now obviously this involves our own code and such and it's not clear where the problem is, but it seems the 3.3.0 release was the catalyst. cc @CaselIT

@zzzeek
Copy link
Author

zzzeek commented May 15, 2023

I think what's strange here is that pytest_sessionstart seems to be getting called in a thread that is not "MainThread", it's an arbitrary thread "Dummy-1" or something, and there's no event loop there. This does not happen if I try to reproduce locally though, pytest_sessionstart is called in the main thread up front and there's an event loop.

is pytest_sessionstart called within the workers or before the workers are spun up?

@CaselIT
Copy link

CaselIT commented May 15, 2023

seems somewhat connected to this issue #620

still the issue here is also that the failed worker cannot be cleaned up and replaced

sqlalchemy-bot pushed a commit to sqlalchemy/sqlalchemy that referenced this issue May 15, 2023
Change-Id: I9c68ef747ad4c87b73751158c5b7966c28816ec8
References: pytest-dev/pytest-xdist#907
@nicoddemus
Copy link
Member

nicoddemus commented May 16, 2023

Hey folks,

About this failing only in 3.3.0, that's really strange, because the changes from 3.2.1 to 3.3.0 were just to the collection report, which only changed how we display the collection information, but not really changed anything related to communication to workers:

v3.2.1...v3.3.0

As for the failure, it does seem like a known execnet bug: pytest-dev/execnet#96, which got improved by pytest-dev/execnet#118, but other folks still report the same problem even after updating to execnet-1.8.0 (in #620, as @CaselIT mentioned) .

I also see that you are using execnet 1.9.0...

@CaselIT
Copy link

CaselIT commented May 16, 2023

I've also looked at changes and I too found it very strange, but it seems fairly consistent, since after adding a constraint !=3.3.0 the test stopped failing.

The fails is fairly consistent but it's only happening on the arm builds. The only difference that they have is that they are quite a bit slower than the normal builds since they run under emulation.

Is is possible that the changes in 3.3.0 made reporting a bit slower and that surfaced a race condition or other timing related issue in xdist? It's still strange that a thread would be created randomly though,

@nicoddemus
Copy link
Member

Is is possible that the changes in 3.3.0 made reporting a bit slower and that surfaced a race condition or other timing related issue in xdist? It's still strange that a thread would be created randomly though,

I can't think of other explanation for that, however the "refresh rate" is the same as before, in fact we even write a few less characters now at each update. 🤔

@nicoddemus
Copy link
Member

nicoddemus commented May 16, 2023

Ahh found a difference which might have impacted this some how:

Previously we would only ask for the "remote information" only if verbosity > 0 (default is 0):

    @pytest.hookimpl
    def pytest_xdist_newgateway(self, gateway):
        if self.config.option.verbose > 0:
            rinfo = gateway._rinfo()

But now the information is asked even with verbosity==0:

    @pytest.hookimpl
    def pytest_xdist_newgateway(self, gateway) -> None:
        rinfo = gateway._rinfo()
        is_local = rinfo.executable == sys.executable
        if self.config.option.verbose > 0 and not is_local:

Can you folks try to run with -q and see if this resolves the problem? If it does, this might be causing it. I will be happy to make a new releasing changing this to only get the remote info if needed.

However it definitely is still a bug with execnet, it seems.

@zzzeek
Copy link
Author

zzzeek commented May 16, 2023

we're already running with -q, this is our commandline:

python -m pytest -n2 -m 'not memory_intensive and not mypy' -q --nomemory --notimingintensive

our plugin adds those additional two flags

@zzzeek
Copy link
Author

zzzeek commented May 16, 2023

also it would be good if the whole issue could be fixed, not just a workaround that gets less info, should we post an issue w/ execnet?

@nicoddemus
Copy link
Member

also it would be good if the whole issue could be fixed, not just a workaround that gets less info, should we post an issue w/ execnet?

Definitely, I'm thinking of a workaround because this is a known issue with execnet (pytest-dev/execnet#96) which has been open for years and nobody found a solution so far. 😞

@zzzeek
Copy link
Author

zzzeek commented May 16, 2023

weird !

@david-engelmann
Copy link

david-engelmann commented May 17, 2023

I'm having this issue in my pipelines as well, changing to pip install pytest-xdist==3.2.1 for now

@nicoddemus
Copy link
Member

@david-engelmann the exact same traceback?

@david-engelmann
Copy link

@nicoddemus loop = get_event_loop() is where it fails with RuntimeError: There is no current event loop in thread 'Dummy-2',

@nicoddemus
Copy link
Member

Thanks!

@CaselIT
Copy link

CaselIT commented May 17, 2023

Also on arm emulation / running arm natively?
(Just to make sure that it's not connect to arm in some way)

@david-engelmann
Copy link

@CaselIT my trace was from a cicd pipeline

nicoddemus added a commit to nicoddemus/pytest-xdist that referenced this issue May 18, 2023
Hopefully this fixes pytest-dev#907, as seems this is the only
change in pytest-dev#901 which is somehow related.
@nicoddemus
Copy link
Member

Opened #909 that hopefully workarounds this (as compared to 3.2.1 at least).

Of course ideally we should be able to fix the problem in execnet once and for all.

nicoddemus added a commit to nicoddemus/pytest-xdist that referenced this issue May 18, 2023
Hopefully this fixes pytest-dev#907, as seems this is the only
change in pytest-dev#901 which is somehow related.
nicoddemus added a commit that referenced this issue May 19, 2023
Hopefully this fixes #907, as seems this is the only
change in #901 which is somehow related.

---------

Co-authored-by: Ronny Pfannschmidt <opensource@ronnypfannschmidt.de>
@nicoddemus
Copy link
Member

3.3.1 just released to PyPI. 🎉

Thanks for the report and help with testing folks!

@zzzeek
Copy link
Author

zzzeek commented May 19, 2023

OK great, will let you know how it goes

renovate bot referenced this issue in ixm-one/pytest-cmake-presets May 19, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist)
([changelog](https://pytest-xdist.readthedocs.io/en/latest/changelog.html))
| `3.3.0` -> `3.3.1` |
[![age](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/compatibility-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/confidence-slim/3.3.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pytest-dev/pytest-xdist</summary>

###
[`v3.3.1`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-331-2023-05-19)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.3.0...v3.3.1)

\===============================

## Bug Fixes

- `#&#8203;907
<https://github.com/pytest-dev/pytest-xdist/issues/907>`\_: 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`
(`pytest-dev/execnet#&#8203;96
<https://github.com/pytest-dev/execnet/issues/96>`\__).

</details>

---

### Configuration

📅 **Schedule**: Branch creation - At any time (no schedule defined),
Automerge - At any time (no schedule defined).

🚦 **Automerge**: Enabled.

♻ **Rebasing**: Whenever PR is behind base branch, or you tick the
rebase/retry checkbox.

🔕 **Ignore**: Close this PR and you won't be reminded about this update
again.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/ixm-one/pytest-cmake-presets).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS45NS4xIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Signed-off-by: Renovate Bot <bot@renovateapp.com>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@zzzeek
Copy link
Author

zzzeek commented May 20, 2023

all good for 3.3.1, thanks! 🚀 🐰 🎉

github-actions bot added a commit to luqasz/librouteros that referenced this issue May 22, 2023
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from
3.3.0 to 3.3.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](pytest-dev/pytest-xdist#907)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/907&gt;</code>_:
Avoid remote calls during startup as <code>execnet</code> 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 <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
&lt;https://github.com/pytest-dev/execnet/issues/96&gt;</code>__).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9791021f02ea45198ced023af9984f1a2f010216"><code>9791021</code></a>
Release 3.3.1</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4e7bd0239e136ef35d28e87838c0bc1b8b7c2189"><code>4e7bd02</code></a>
Avoid unnecessary rinfo calls after creating gateways (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/909">#909</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/52a61434fbb18d980e885ac6a2abfaf23dddadad"><code>52a6143</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/908">#908</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9efc64eef9214892f7672a3f3b8ed33a7f49ca05"><code>9efc64e</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/906">#906</a>
from nicoddemus/ci-improvements</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/6d39025be3451224e040d39a9643ffdade7256e2"><code>6d39025</code></a>
Use same package in all test runs</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/d8fb60ba7fe56998868a06a69bbcf19715ff5a62"><code>d8fb60b</code></a>
Fix tag creation in deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4d230b6de761bf5143fe21d6e303f6a125b17dc7"><code>4d230b6</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/905">#905</a>
from pytest-dev/release-3.3.0</li>
<li>See full diff in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v3.3.0...v3.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-xdist&package-manager=pip&previous-version=3.3.0&new-version=3.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>
github-merge-queue bot pushed a commit to software-mansion/protostar that referenced this issue May 22, 2023
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from
3.3.0 to 3.3.1.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](pytest-dev/pytest-xdist#907)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/907&gt;</code>_:
Avoid remote calls during startup as <code>execnet</code> 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 <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
&lt;https://github.com/pytest-dev/execnet/issues/96&gt;</code>__).</p>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9791021f02ea45198ced023af9984f1a2f010216"><code>9791021</code></a>
Release 3.3.1</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4e7bd0239e136ef35d28e87838c0bc1b8b7c2189"><code>4e7bd02</code></a>
Avoid unnecessary rinfo calls after creating gateways (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/909">#909</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/52a61434fbb18d980e885ac6a2abfaf23dddadad"><code>52a6143</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/908">#908</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9efc64eef9214892f7672a3f3b8ed33a7f49ca05"><code>9efc64e</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/906">#906</a>
from nicoddemus/ci-improvements</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/6d39025be3451224e040d39a9643ffdade7256e2"><code>6d39025</code></a>
Use same package in all test runs</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/d8fb60ba7fe56998868a06a69bbcf19715ff5a62"><code>d8fb60b</code></a>
Fix tag creation in deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4d230b6de761bf5143fe21d6e303f6a125b17dc7"><code>4d230b6</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/905">#905</a>
from pytest-dev/release-3.3.0</li>
<li>See full diff in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v3.3.0...v3.3.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=pytest-xdist&package-manager=pip&previous-version=3.3.0&new-version=3.3.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
@david-engelmann
Copy link

david-engelmann commented May 22, 2023 via email

@CaselIT
Copy link

CaselIT commented May 22, 2023

for context so far so good on sqlalchemy side

@nicoddemus
Copy link
Member

@david-engelmann I'm at loss why it would work with 3.2.1, but not on 3.3.1, given that now the remote calls are exactly the same AFAICT.

Are you passing -v to pytest?

@david-engelmann
Copy link

david-engelmann commented May 22, 2023 via email

@nicoddemus
Copy link
Member

-v will currently force that extra rinfo call which might trigger the problem (but that was also true em 3.2.1).

See if removing -v helps.

@david-engelmann
Copy link

david-engelmann commented May 23, 2023 via email

folex referenced this issue in fluencelabs/spell Jun 6, 2023
[![Mend
Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com)

This PR contains the following updates:

| Package | Change | Age | Adoption | Passing | Confidence |
|---|---|---|---|---|---|
| [pytest-xdist](https://github.com/pytest-dev/pytest-xdist)
([changelog](https://pytest-xdist.readthedocs.io/en/latest/changelog.html))
| `==2.5.0` -> `==3.3.1` |
[![age](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/age-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![adoption](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/adoption-slim)](https://docs.renovatebot.com/merge-confidence/)
|
[![passing](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/compatibility-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/)
|
[![confidence](https://badges.renovateapi.com/packages/pypi/pytest-xdist/3.3.1/confidence-slim/2.5.0)](https://docs.renovatebot.com/merge-confidence/)
|

---

### Release Notes

<details>
<summary>pytest-dev/pytest-xdist</summary>

###
[`v3.3.1`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-331-2023-05-19)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.3.0...v3.3.1)

\===============================

## Bug Fixes

- `#&#8203;907
<https://github.com/pytest-dev/pytest-xdist/issues/907>`\_: 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`
(`pytest-dev/execnet#&#8203;96
<https://github.com/pytest-dev/execnet/issues/96>`\__).

###
[`v3.3.0`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-330-2023-05-12)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.2.1...v3.3.0)

\===============================

## Features

- `#&#8203;555
<https://github.com/pytest-dev/pytest-xdist/issues/555>`\_: Improved
progress output when collecting nodes to be less verbose.

###
[`v3.2.1`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-321-2023-03-12)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.2.0...v3.2.1)

\===============================

## Bug Fixes

- `#&#8203;884
<https://github.com/pytest-dev/pytest-xdist/issues/884>`\_: Fixed hang
in `worksteal` scheduler.

###
[`v3.2.0`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-320-2023-02-07)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.1.0...v3.2.0)

\===============================

## Improved Documentation

- `#&#8203;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

- `#&#8203;855
<https://github.com/pytest-dev/pytest-xdist/issues/855>`\_: Users can
now configure `load` scheduling precision using `--maxschedchunk`
command
    line option.

- `#&#8203;858
<https://github.com/pytest-dev/pytest-xdist/issues/858>`*: New
`worksteal` scheduler, based on the idea of `work stealing
<https://en.wikipedia.org/wiki/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.

## Trivial Changes

- `#&#8203;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`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-310-2022-12-01)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v3.0.2...v3.1.0)

\===============================

## Features

- `#&#8203;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

        [pytest]
        addopts = --dist loadscope

- `#&#8203;842
<https://github.com/pytest-dev/pytest-xdist/issues/842>`\_: Python 3.11
is now officially supported.

## Removals

- `#&#8203;842
<https://github.com/pytest-dev/pytest-xdist/issues/842>`\_: Python 3.6
is no longer supported.

###
[`v3.0.2`](https://github.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-302-2022-10-25)

[Compare
Source](https://github.com/pytest-dev/pytest-xdist/compare/v2.5.0...v3.0.2)

\===============================

## Bug Fixes

- `#&#8203;813
<https://github.com/pytest-dev/pytest-xdist/issues/813>`\_: Cancel
shutdown when a crashed worker is restarted.

## Deprecations

- `#&#8203;825
<https://github.com/pytest-dev/pytest-xdist/issues/825>`\_: The
`--rsyncdir` command line argument and `rsyncdirs` config variable are
deprecated.

    The rsync feature will be removed in pytest-xdist 4.0.

- `#&#8203;826
<https://github.com/pytest-dev/pytest-xdist/issues/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

- `#&#8203;791
<https://github.com/pytest-dev/pytest-xdist/issues/791>`\_: Document the
`pytest_xdist_auto_num_workers` hook.

- `#&#8203;796
<https://github.com/pytest-dev/pytest-xdist/issues/796>`\_: Added known
limitations section to documentation.

- `#&#8203;829
<https://github.com/pytest-dev/pytest-xdist/issues/829>`\_: Document the
`-n logical` option.

## Features

- `#&#8203;792
<https://github.com/pytest-dev/pytest-xdist/issues/792>`\_: The
environment variable `PYTEST_XDIST_AUTO_NUM_WORKERS` can now be used to
    specify the default for `-n auto` and `-n logical`.

- `#&#8203;812
<https://github.com/pytest-dev/pytest-xdist/issues/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

- `#&#8203;468
<https://github.com/pytest-dev/pytest-xdist/issues/468>`\_: The
`--boxed` command-line option has been removed. If you still need this
functionality, install `pytest-forked
<https://pypi.org/project/pytest-forked>`\__ separately.

## Trivial Changes

- `#&#8203;468
<https://github.com/pytest-dev/pytest-xdist/issues/468>`\_: The `py`
dependency has been dropped.

- `#&#8203;822
<https://github.com/pytest-dev/pytest-xdist/issues/822>`\_: Replace
internal usage of `py.log` with a custom solution (but with the same
interface).

- `#&#8203;823
<https://github.com/pytest-dev/pytest-xdist/issues/823>`\_: Remove usage
of `py._pydir` as an rsync candidate.

- `#&#8203;824
<https://github.com/pytest-dev/pytest-xdist/issues/824>`\_: Replace
internal usages of `py.path.local` by `pathlib.Path`.

</details>

---

### Configuration

📅 **Schedule**: Branch creation - "every weekend" (UTC), 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.

---

- [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check
this box

---

This PR has been generated by [Mend
Renovate](https://www.mend.io/free-developer-tools/renovate/). View
repository job log
[here](https://app.renovatebot.com/dashboard#github/fluencelabs/spell).

<!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNS40MC4wIiwidXBkYXRlZEluVmVyIjoiMzUuOTUuMSIsInRhcmdldEJyYW5jaCI6Im1haW4ifQ==-->

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
ryankanno pushed a commit to ryankanno/cookiecutter-py that referenced this issue Nov 9, 2023
Bumps the dev group with 4 updates:
[black](https://github.com/psf/black),
[pytest-cov](https://github.com/pytest-dev/pytest-cov),
[pytest-xdist](https://github.com/pytest-dev/pytest-xdist) and
[ruff](https://github.com/astral-sh/ruff).

Updates `black` from 23.10.1 to 23.11.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/psf/black/releases">black's
releases</a>.</em></p>
<blockquote>
<h2>23.11.0</h2>
<h3>Highlights</h3>
<ul>
<li>Support formatting ranges of lines with the new
<code>--line-ranges</code> command-line option
(<a
href="https://github.com/psf/black/issues/4020">#4020</a>)</li>
</ul>
<h3>Stable style</h3>
<ul>
<li>Fix crash on formatting bytes strings that look like docstrings (<a
href="https://github.com/psf/black/issues/4003">#4003</a>)</li>
<li>Fix crash when whitespace followed a backslash before newline in a
docstring (<a
href="https://github.com/psf/black/issues/4008">#4008</a>)</li>
<li>Fix standalone comments inside complex blocks crashing Black (<a
href="https://github.com/psf/black/issues/4016">#4016</a>)</li>
<li>Fix crash on formatting code like <code>await (a ** b)</code> (<a
href="https://github.com/psf/black/issues/3994">#3994</a>)</li>
<li>No longer treat leading f-strings as docstrings. This matches
Python's behaviour and
fixes a crash (<a
href="https://github.com/psf/black/issues/4019">#4019</a>)</li>
</ul>
<h3>Preview style</h3>
<ul>
<li>Multiline dicts and lists that are the sole argument to a function
are now
indented less (<a
href="https://github.com/psf/black/issues/3964">#3964</a>)</li>
<li>Multiline unpacked dicts and lists as the sole argument to a
function are now also
indented less (<a
href="https://github.com/psf/black/issues/3992">#3992</a>)</li>
<li>In f-string debug expressions, quote types that are visible in the
final string
are now preserved (<a
href="https://github.com/psf/black/issues/4005">#4005</a>)</li>
<li>Fix a bug where long <code>case</code> blocks were not split into
multiple lines. Also enable
general trailing comma rules on <code>case</code> blocks (<a
href="https://github.com/psf/black/issues/4024">#4024</a>)</li>
<li>Keep requiring two empty lines between module-level docstring and
first function or
class definition (<a
href="https://github.com/psf/black/issues/4028">#4028</a>)</li>
<li>Add support for single-line format skip with other comments on the
same line (<a
href="https://github.com/psf/black/issues/3959">#3959</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Consistently apply force exclusion logic before resolving symlinks
(<a
href="https://github.com/psf/black/issues/4015">#4015</a>)</li>
<li>Fix a bug in the matching of absolute path names in
<code>--include</code> (<a
href="https://github.com/psf/black/issues/3976">#3976</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Fix mypyc builds on arm64 on macOS (<a
href="https://github.com/psf/black/issues/4017">#4017</a>)</li>
</ul>
<h3>Integrations</h3>
<ul>
<li>Black's pre-commit integration will now run only on git hooks
appropriate for a code
formatter (<a
href="https://github.com/psf/black/issues/3940">#3940</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/psf/black/blob/main/CHANGES.md">black's
changelog</a>.</em></p>
<blockquote>
<h2>23.11.0</h2>
<h3>Highlights</h3>
<ul>
<li>Support formatting ranges of lines with the new
<code>--line-ranges</code> command-line option
(<a
href="https://github.com/psf/black/issues/4020">#4020</a>)</li>
</ul>
<h3>Stable style</h3>
<ul>
<li>Fix crash on formatting bytes strings that look like docstrings (<a
href="https://github.com/psf/black/issues/4003">#4003</a>)</li>
<li>Fix crash when whitespace followed a backslash before newline in a
docstring (<a
href="https://github.com/psf/black/issues/4008">#4008</a>)</li>
<li>Fix standalone comments inside complex blocks crashing Black (<a
href="https://github.com/psf/black/issues/4016">#4016</a>)</li>
<li>Fix crash on formatting code like <code>await (a ** b)</code> (<a
href="https://github.com/psf/black/issues/3994">#3994</a>)</li>
<li>No longer treat leading f-strings as docstrings. This matches
Python's behaviour and
fixes a crash (<a
href="https://github.com/psf/black/issues/4019">#4019</a>)</li>
</ul>
<h3>Preview style</h3>
<ul>
<li>Multiline dicts and lists that are the sole argument to a function
are now indented
less (<a
href="https://github.com/psf/black/issues/3964">#3964</a>)</li>
<li>Multiline unpacked dicts and lists as the sole argument to a
function are now also
indented less (<a
href="https://github.com/psf/black/issues/3992">#3992</a>)</li>
<li>In f-string debug expressions, quote types that are visible in the
final string are
now preserved (<a
href="https://github.com/psf/black/issues/4005">#4005</a>)</li>
<li>Fix a bug where long <code>case</code> blocks were not split into
multiple lines. Also enable
general trailing comma rules on <code>case</code> blocks (<a
href="https://github.com/psf/black/issues/4024">#4024</a>)</li>
<li>Keep requiring two empty lines between module-level docstring and
first function or
class definition (<a
href="https://github.com/psf/black/issues/4028">#4028</a>)</li>
<li>Add support for single-line format skip with other comments on the
same line (<a
href="https://github.com/psf/black/issues/3959">#3959</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Consistently apply force exclusion logic before resolving symlinks
(<a
href="https://github.com/psf/black/issues/4015">#4015</a>)</li>
<li>Fix a bug in the matching of absolute path names in
<code>--include</code> (<a
href="https://github.com/psf/black/issues/3976">#3976</a>)</li>
</ul>
<h3>Performance</h3>
<ul>
<li>Fix mypyc builds on arm64 on macOS (<a
href="https://github.com/psf/black/issues/4017">#4017</a>)</li>
</ul>
<h3>Integrations</h3>
<ul>
<li>Black's pre-commit integration will now run only on git hooks
appropriate for a code
formatter (<a
href="https://github.com/psf/black/issues/3940">#3940</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/psf/black/commit/2a1c67e0b2f81df602ec1f6e7aeb030b9709dc7c"><code>2a1c67e</code></a>
Prepare release 23.11.0 (<a
href="https://github.com/psf/black/issues/4032">#4032</a>)</li>
<li><a
href="https://github.com/psf/black/commit/72e7a2e43eef2aa0c83652bb6725eb004a2a69f3"><code>72e7a2e</code></a>
Remove redundant condition from <code>has_magic_trailing_comma</code>
(<a
href="https://github.com/psf/black/issues/4023">#4023</a>)</li>
<li><a
href="https://github.com/psf/black/commit/1a7d9c2f58de1ffcbbe6d133f60f283601ba3f54"><code>1a7d9c2</code></a>
Preserve visible quote types for f-string debug expressions (<a
href="https://github.com/psf/black/issues/4005">#4005</a>)</li>
<li><a
href="https://github.com/psf/black/commit/f4c7be5445c87d9af5eba3d12faea62d2635e3d8"><code>f4c7be5</code></a>
docs: fix minor typo (<a
href="https://github.com/psf/black/issues/4030">#4030</a>)</li>
<li><a
href="https://github.com/psf/black/commit/2e4fac9d87615e904a49e46a9cab2293e0b13126"><code>2e4fac9</code></a>
Apply force exclude logic before symlink resolution (<a
href="https://github.com/psf/black/issues/4015">#4015</a>)</li>
<li><a
href="https://github.com/psf/black/commit/66008fda5dc07f5626e5f5d0dcefc476a9c12ab8"><code>66008fd</code></a>
[563] Fix standalone comments inside complex blocks crashing Black (<a
href="https://github.com/psf/black/issues/4016">#4016</a>)</li>
<li><a
href="https://github.com/psf/black/commit/50ed6221d97b265025abaa66116a7b185f2df5e2"><code>50ed622</code></a>
Fix long case blocks not split into multiple lines (<a
href="https://github.com/psf/black/issues/4024">#4024</a>)</li>
<li><a
href="https://github.com/psf/black/commit/46be1f8e54ac9a7d67723c0fa28c7bec13a0a2bf"><code>46be1f8</code></a>
Support formatting specified lines (<a
href="https://github.com/psf/black/issues/4020">#4020</a>)</li>
<li><a
href="https://github.com/psf/black/commit/ecbd9e8cf71f13068c7e6803a534e00363114c91"><code>ecbd9e8</code></a>
Fix crash with f-string docstrings (<a
href="https://github.com/psf/black/issues/4019">#4019</a>)</li>
<li><a
href="https://github.com/psf/black/commit/e808e61db8c7a8f9c7fd4b2fff2281141f6b2517"><code>e808e61</code></a>
Preview: Keep requiring two empty lines between module-level docstring
and fi...</li>
<li>Additional commits viewable in <a
href="https://github.com/psf/black/compare/23.10.1...23.11.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `pytest-cov` from 4.0.0 to 4.1.0
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst">pytest-cov's
changelog</a>.</em></p>
<blockquote>
<h2>4.1.0 (2023-05-24)</h2>
<ul>
<li>Updated CI with new Pythons and dependencies.</li>
<li>Removed rsyncdir support. This makes pytest-cov compatible with
xdist 3.0.
Contributed by Sorin Sbarnea in
<code>[#558](pytest-dev/pytest-cov#558)
&lt;https://github.com/pytest-dev/pytest-cov/pull/558&gt;</code>_.</li>
<li>Optimized summary generation to not be performed if no reporting is
active (for example,
when <code>--cov-report=''</code> is used without
<code>--cov-fail-under</code>).
Contributed by Jonathan Stewmon in
<code>[#589](pytest-dev/pytest-cov#589)
&lt;https://github.com/pytest-dev/pytest-cov/pull/589&gt;</code>_.</li>
<li>Added support for JSON reporting.
Contributed by Matthew Gamble in
<code>[#582](pytest-dev/pytest-cov#582)
&lt;https://github.com/pytest-dev/pytest-cov/pull/582&gt;</code>_.</li>
<li>Refactored code to use f-strings.
Contributed by Mark Mayo in
<code>[#572](pytest-dev/pytest-cov#572)
&lt;https://github.com/pytest-dev/pytest-cov/pull/572&gt;</code>_.</li>
<li>Fixed a skip in the test suite for some old xdist.
Contributed by a bunch of people in
<code>[#565](pytest-dev/pytest-cov#565)
&lt;https://github.com/pytest-dev/pytest-cov/pull/565&gt;</code>_.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/2c9f2170d8575b21bafb6402eb30ca7de31e20b9"><code>2c9f217</code></a>
Bump version: 4.0.0 → 4.1.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/4d245df8f75e434a9e1b162b51265d6a45017465"><code>4d245df</code></a>
Update changelog and authors.</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/7b095c84ae521b14058d7d520ef36372849063a8"><code>7b095c8</code></a>
Skip starting from xdist 3.0.2 (where boxed was removed).</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/605d6902b3b3d17aad0bf811b8c580fc895724ca"><code>605d690</code></a>
disabling boxed test if version xdist newer than 2.5.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/76fb2a6cb2c4a4a788a5b62710848daf9c8fb7ce"><code>76fb2a6</code></a>
introduced f-strings</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/0d63ede0d2ca9f4acc8329aa4261a7cec489ffdb"><code>0d63ede</code></a>
Update test config. Reapply some of the changes from PR567 to the right
file ...</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/f3d8d8380f6a4b265353fe7cd509b040702f1e64"><code>f3d8d83</code></a>
Add support for JSON reporter</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/dec02abeb9fa8ee3547baa054bde6006bea530ee"><code>dec02ab</code></a>
Update test deps.</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/88a7d348986bace58e26c88a713ef35f900ce2ef"><code>88a7d34</code></a>
chore: update AUTHORS and CHANGELOG</li>
<li><a
href="https://github.com/pytest-dev/pytest-cov/commit/74eb4cc8b684269b89735e31b623f0f9795c5d5c"><code>74eb4cc</code></a>
perf: only call summary when the report will be used</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-cov/compare/v4.0.0...v4.1.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `pytest-xdist` from 3.2.0 to 3.3.1
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](pytest-dev/pytest-xdist#907)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/907&gt;</code>_:
Avoid remote calls during startup as <code>execnet</code> 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 <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
&lt;https://github.com/pytest-dev/execnet/issues/96&gt;</code>__).</p>
</li>
</ul>
<h1>pytest-xdist 3.3.0 (2023-05-12)</h1>
<h2>Features</h2>
<ul>
<li><code>[#555](pytest-dev/pytest-xdist#555)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/555&gt;</code>_:
Improved progress output when collecting nodes to be less verbose.</li>
</ul>
<h1>pytest-xdist 3.2.1 (2023-03-12)</h1>
<h2>Bug Fixes</h2>
<ul>
<li><code>[#884](pytest-dev/pytest-xdist#884)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/884&gt;</code>_:
Fixed hang in <code>worksteal</code> scheduler.</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9791021f02ea45198ced023af9984f1a2f010216"><code>9791021</code></a>
Release 3.3.1</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4e7bd0239e136ef35d28e87838c0bc1b8b7c2189"><code>4e7bd02</code></a>
Avoid unnecessary rinfo calls after creating gateways (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/909">#909</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/52a61434fbb18d980e885ac6a2abfaf23dddadad"><code>52a6143</code></a>
[pre-commit.ci] pre-commit autoupdate (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/908">#908</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/9efc64eef9214892f7672a3f3b8ed33a7f49ca05"><code>9efc64e</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/906">#906</a>
from nicoddemus/ci-improvements</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/6d39025be3451224e040d39a9643ffdade7256e2"><code>6d39025</code></a>
Use same package in all test runs</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/d8fb60ba7fe56998868a06a69bbcf19715ff5a62"><code>d8fb60b</code></a>
Fix tag creation in deploy workflow</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/4d230b6de761bf5143fe21d6e303f6a125b17dc7"><code>4d230b6</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/905">#905</a>
from pytest-dev/release-3.3.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/f5b4a5d6edea6a9eb016730f5de0aae8cbc9930e"><code>f5b4a5d</code></a>
Configure 'test' workflow to cancel running jobs for the branch</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/657ba9ac7fe5f58930f7ed39c359893469c65936"><code>657ba9a</code></a>
Only test on-push for master and a specific branch name</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/fa08e0987bea6a094deb48fda6b61d37373b4520"><code>fa08e09</code></a>
Add check-package step also to 'test' workflow</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v3.2.0...v3.3.1">compare
view</a></li>
</ul>
</details>
<br />

Updates `ruff` from 0.1.3 to 0.1.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/releases">ruff's
releases</a>.</em></p>
<blockquote>
<h2>v0.1.5</h2>
<h2>Changes</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Implement <code>mako-templates</code>
(<code>S702</code>) (<a
href="https://github.com/astral-sh/ruff/pull/8533">#8533</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO105</code> (<a
href="https://github.com/astral-sh/ruff/pull/8490">#8490</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO109</code> (<a
href="https://github.com/astral-sh/ruff/pull/8534">#8534</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO110</code> (<a
href="https://github.com/astral-sh/ruff/pull/8537">#8537</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO115</code> (<a
href="https://github.com/astral-sh/ruff/pull/8486">#8486</a>)</li>
<li>[<code>refurb</code>] Implement <code>type-none-comparison</code>
(<code>FURB169</code>) (<a
href="https://github.com/astral-sh/ruff/pull/8487">#8487</a>)</li>
<li>Flag all comparisons against builtin types in <code>E721</code> (<a
href="https://github.com/astral-sh/ruff/pull/8491">#8491</a>)</li>
<li>Make <code>SIM118</code> fix as safe when the expression is a known
dictionary (<a
href="https://github.com/astral-sh/ruff/pull/8525">#8525</a>)</li>
</ul>
<h3>Formatter</h3>
<ul>
<li>Fix multiline lambda expression statement formatting (<a
href="https://github.com/astral-sh/ruff/pull/8466">#8466</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Add hidden <code>--extension</code> to override inference of source
type from file extension (<a
href="https://github.com/astral-sh/ruff/pull/8373">#8373</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Account for selector specificity when merging
<code>extend_unsafe_fixes</code> and <code>override
extend_safe_fixes</code> (<a
href="https://github.com/astral-sh/ruff/pull/8444">#8444</a>)</li>
<li>Add support for disabling cache with <code>RUFF_NO_CACHE</code>
environment variable (<a
href="https://github.com/astral-sh/ruff/pull/8538">#8538</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>E721</code>] Flag comparisons to <code>memoryview</code> (<a
href="https://github.com/astral-sh/ruff/pull/8485">#8485</a>)</li>
<li>Allow collapsed-ellipsis bodies in other statements (<a
href="https://github.com/astral-sh/ruff/pull/8499">#8499</a>)</li>
<li>Avoid <code>D301</code> autofix for <code>u</code> prefixed strings
(<a
href="https://github.com/astral-sh/ruff/pull/8495">#8495</a>)</li>
<li>Only flag <code>flake8-trio</code> rules when <code>trio</code>
import is present (<a
href="https://github.com/astral-sh/ruff/pull/8550">#8550</a>)</li>
<li>Reject more syntactically invalid Python programs (<a
href="https://github.com/astral-sh/ruff/pull/8524">#8524</a>)</li>
<li>Avoid raising <code>TRIO115</code> violations for
<code>trio.sleep(...)</code> calls with non-number values (<a
href="https://github.com/astral-sh/ruff/pull/8532">#8532</a>)</li>
<li>Fix <code>F841</code> false negative on assignment to multiple
variables (<a
href="https://github.com/astral-sh/ruff/pull/8489">#8489</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix link to isort <code>known-first-party</code> (<a
href="https://github.com/astral-sh/ruff/pull/8562">#8562</a>)</li>
<li>Add notes on fix safety to a few rules (<a
href="https://github.com/astral-sh/ruff/pull/8500">#8500</a>)</li>
<li>Add missing toml config tabs (<a
href="https://github.com/astral-sh/ruff/pull/8512">#8512</a>)</li>
<li>Add instructions for configuration of Emacs (<a
href="https://github.com/astral-sh/ruff/pull/8488">#8488</a>)</li>
<li>Improve detail link contrast in dark mode (<a
href="https://github.com/astral-sh/ruff/pull/8548">#8548</a>)</li>
<li>Fix typo in example (<a
href="https://github.com/astral-sh/ruff/pull/8506">#8506</a>)</li>
<li>Added tabs for configuration files in the documentation (<a
href="https://github.com/astral-sh/ruff/pull/8480">#8480</a>)</li>
<li>Recommend <code>project.requires-python</code> over
<code>target-version</code> (<a
href="https://github.com/astral-sh/ruff/pull/8513">#8513</a>)</li>
<li>Add singleton escape hatch to <code>B008</code> documentation (<a
href="https://github.com/astral-sh/ruff/pull/8501">#8501</a>)</li>
<li>Fix tab configuration docs (<a
href="https://github.com/astral-sh/ruff/pull/8502">#8502</a>)</li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md">ruff's
changelog</a>.</em></p>
<blockquote>
<h2>0.1.5</h2>
<h3>Preview features</h3>
<ul>
<li>[<code>flake8-bandit</code>] Implement <code>mako-templates</code>
(<code>S702</code>) (<a
href="https://github.com/astral-sh/ruff/pull/8533">#8533</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO105</code> (<a
href="https://github.com/astral-sh/ruff/pull/8490">#8490</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO109</code> (<a
href="https://github.com/astral-sh/ruff/pull/8534">#8534</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO110</code> (<a
href="https://github.com/astral-sh/ruff/pull/8537">#8537</a>)</li>
<li>[<code>flake8-trio</code>] Implement <code>TRIO115</code> (<a
href="https://github.com/astral-sh/ruff/pull/8486">#8486</a>)</li>
<li>[<code>refurb</code>] Implement <code>type-none-comparison</code>
(<code>FURB169</code>) (<a
href="https://github.com/astral-sh/ruff/pull/8487">#8487</a>)</li>
<li>Flag all comparisons against builtin types in <code>E721</code> (<a
href="https://github.com/astral-sh/ruff/pull/8491">#8491</a>)</li>
<li>Make <code>SIM118</code> fix as safe when the expression is a known
dictionary (<a
href="https://github.com/astral-sh/ruff/pull/8525">#8525</a>)</li>
</ul>
<h3>Formatter</h3>
<ul>
<li>Fix multiline lambda expression statement formatting (<a
href="https://github.com/astral-sh/ruff/pull/8466">#8466</a>)</li>
</ul>
<h3>CLI</h3>
<ul>
<li>Add hidden <code>--extension</code> to override inference of source
type from file extension (<a
href="https://github.com/astral-sh/ruff/pull/8373">#8373</a>)</li>
</ul>
<h3>Configuration</h3>
<ul>
<li>Account for selector specificity when merging
<code>extend_unsafe_fixes</code> and <code>override
extend_safe_fixes</code> (<a
href="https://github.com/astral-sh/ruff/pull/8444">#8444</a>)</li>
<li>Add support for disabling cache with <code>RUFF_NO_CACHE</code>
environment variable (<a
href="https://github.com/astral-sh/ruff/pull/8538">#8538</a>)</li>
</ul>
<h3>Bug fixes</h3>
<ul>
<li>[<code>E721</code>] Flag comparisons to <code>memoryview</code> (<a
href="https://github.com/astral-sh/ruff/pull/8485">#8485</a>)</li>
<li>Allow collapsed-ellipsis bodies in other statements (<a
href="https://github.com/astral-sh/ruff/pull/8499">#8499</a>)</li>
<li>Avoid <code>D301</code> autofix for <code>u</code> prefixed strings
(<a
href="https://github.com/astral-sh/ruff/pull/8495">#8495</a>)</li>
<li>Only flag <code>flake8-trio</code> rules when <code>trio</code>
import is present (<a
href="https://github.com/astral-sh/ruff/pull/8550">#8550</a>)</li>
<li>Reject more syntactically invalid Python programs (<a
href="https://github.com/astral-sh/ruff/pull/8524">#8524</a>)</li>
<li>Avoid raising <code>TRIO115</code> violations for
<code>trio.sleep(...)</code> calls with non-number values (<a
href="https://github.com/astral-sh/ruff/pull/8532">#8532</a>)</li>
<li>Fix <code>F841</code> false negative on assignment to multiple
variables (<a
href="https://github.com/astral-sh/ruff/pull/8489">#8489</a>)</li>
</ul>
<h3>Documentation</h3>
<ul>
<li>Fix link to isort <code>known-first-party</code> (<a
href="https://github.com/astral-sh/ruff/pull/8562">#8562</a>)</li>
<li>Add notes on fix safety to a few rules (<a
href="https://github.com/astral-sh/ruff/pull/8500">#8500</a>)</li>
<li>Add missing toml config tabs (<a
href="https://github.com/astral-sh/ruff/pull/8512">#8512</a>)</li>
<li>Add instructions for configuration of Emacs (<a
href="https://github.com/astral-sh/ruff/pull/8488">#8488</a>)</li>
<li>Improve detail link contrast in dark mode (<a
href="https://github.com/astral-sh/ruff/pull/8548">#8548</a>)</li>
<li>Fix typo in example (<a
href="https://github.com/astral-sh/ruff/pull/8506">#8506</a>)</li>
<li>Added tabs for configuration files in the documentation (<a
href="https://github.com/astral-sh/ruff/pull/8480">#8480</a>)</li>
<li>Recommend <code>project.requires-python</code> over
<code>target-version</code> (<a
href="https://github.com/astral-sh/ruff/pull/8513">#8513</a>)</li>
<li>Add singleton escape hatch to <code>B008</code> documentation (<a
href="https://github.com/astral-sh/ruff/pull/8501">#8501</a>)</li>
<li>Fix tab configuration docs (<a
href="https://github.com/astral-sh/ruff/pull/8502">#8502</a>)</li>
</ul>
<h2>0.1.4</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/astral-sh/ruff/commit/3956f38999ff7c036e9d1ac9410b3eff834cb158"><code>3956f38</code></a>
Prepare release 0.1.5 (<a
href="https://github.com/astral-sh/ruff/issues/8570">#8570</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/fe9727ac38db6d3b8ab3efcbf4e1766eb2ec9736"><code>fe9727a</code></a>
Add <code>rooster</code> release management configuration and
instructions (<a
href="https://github.com/astral-sh/ruff/issues/8567">#8567</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/3ebaca52464e1db3d808adca9c3de09b90dabfaf"><code>3ebaca5</code></a>
Doc: Fix link to isort <code>known-first-party</code> (<a
href="https://github.com/astral-sh/ruff/issues/8562">#8562</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/7391f74cbcf24b9c09244a3376bbb2a0ca8929d4"><code>7391f74</code></a>
Add hidden <code>--extension</code> to override inference of source type
from file exten...</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/71e93a9fa40d98414c7859b827dac7d6eda7d523"><code>71e93a9</code></a>
Only flag flake8-trio rule when trio is present (<a
href="https://github.com/astral-sh/ruff/issues/8550">#8550</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/e2c7b1ece6db83af919c4c2e006bf00496d7fa73"><code>e2c7b1e</code></a>
[TRIO] Add TRIO109 rule (<a
href="https://github.com/astral-sh/ruff/issues/8534">#8534</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/621e98f4523267526391947154bb9f64fdb8c9c6"><code>621e98f</code></a>
Improve detail link contrast in dark mode (<a
href="https://github.com/astral-sh/ruff/issues/8548">#8548</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/0126f74c29c5647295bebf4b42d79f12b7ffd8e4"><code>0126f74</code></a>
Add TRIO110 rule (<a
href="https://github.com/astral-sh/ruff/issues/8537">#8537</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/fce9f634180989089d6f761913b34d7219a10138"><code>fce9f63</code></a>
[<code>flake8-bandit</code>] Implement <code>mako-templates</code>
(<code>S702</code>) (<a
href="https://github.com/astral-sh/ruff/issues/8533">#8533</a>)</li>
<li><a
href="https://github.com/astral-sh/ruff/commit/ce549e75bc93e200f82b3bde48167efb60f8f750"><code>ce549e7</code></a>
Update pre-commit documentation (<a
href="https://github.com/astral-sh/ruff/issues/8545">#8545</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/astral-sh/ruff/compare/v0.1.3...v0.1.5">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
yarnabrina pushed a commit to sktime/sktime that referenced this issue Nov 17, 2023
….4,>=3.3 to >=3.3,<3.5 (#5551)

Updates the requirements on
[pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the
latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.4.0 (2023-11-11)</h1>
<h2>Features</h2>
<ul>
<li>
<p><code>[#963](pytest-dev/pytest-xdist#963)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/963&gt;</code>_:
Wait for workers to finish reporting when test run stops early.</p>
<p>This makes sure that the results of in-progress tests are displayed.
Previously these reports were being discarded, losing information about
the
test run.</p>
</li>
<li>
<p><code>[#965](pytest-dev/pytest-xdist#965)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/965&gt;</code>_:
Added support for Python 3.12.</p>
</li>
</ul>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](pytest-dev/pytest-xdist#907)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/907&gt;</code>_:
Avoid remote calls during startup as <code>execnet</code> 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 <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
&lt;https://github.com/pytest-dev/execnet/issues/96&gt;</code>__).</p>
</li>
</ul>
<h1>pytest-xdist 3.3.0 (2023-05-12)</h1>
<h2>Features</h2>
<ul>
<li><code>[#555](pytest-dev/pytest-xdist#555)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/555&gt;</code>_:
Improved progress output when collecting nodes to be less verbose.</li>
</ul>
<h1>pytest-xdist 3.2.1 (2023-03-12)</h1>
<h2>Bug Fixes</h2>
<ul>
<li><code>[#884](pytest-dev/pytest-xdist#884)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/884&gt;</code>_:
Fixed hang in <code>worksteal</code> scheduler.</li>
</ul>
<h1>pytest-xdist 3.2.0 (2023-02-07)</h1>
<p>Improved Documentation</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/a6b56112f9b686aed7a354e0d50ecc26ad2d9dfe"><code>a6b5611</code></a>
Update CHANGELOG</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/64f9388f4164e9f64d98a7580933e958ea4a09d5"><code>64f9388</code></a>
Add support for Python 3.12</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/230ba6ad1057574c9f3d42a97f890788cd9ec6c3"><code>230ba6a</code></a>
Properly wait for workers when test run terminates early (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/963">#963</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/93ca202b400eecc62919bcd9b0bab001e3f3f7ef"><code>93ca202</code></a>
fix typo index -&gt; instead</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/8f3d1ad92f02a251bcae5dc648a70c3f30ece364"><code>8f3d1ad</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/ab3d6a9ee5aa4145fde339823ab1605c02f28ba4"><code>ab3d6a9</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/955">#955</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/a5210d41034b2f48f2df05d2b62b0fb3495f346f"><code>a5210d4</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/0b6b9c3c3858d05c353a14b29c58c8c3f63ae437"><code>0b6b9c3</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/954">#954</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/838434c269a225bef167fa4314df905b97b9e958"><code>838434c</code></a>
Install requirements.txt while building docs</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/b85a4717f96e2b40910aaa289428671779cb6ecb"><code>b85a471</code></a>
Add docs/requirements.txt</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v3.3.0...v3.4.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
mhils pushed a commit to mitmproxy/mitmproxy that referenced this issue Dec 2, 2023
)

Updates the requirements on
[pytest-xdist](https://github.com/pytest-dev/pytest-xdist) to permit the
latest version.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/pytest-dev/pytest-xdist/blob/master/CHANGELOG.rst">pytest-xdist's
changelog</a>.</em></p>
<blockquote>
<h1>pytest-xdist 3.5.0 (2023-11-21)</h1>
<h2>Features</h2>
<ul>
<li><code>[#632](pytest-dev/pytest-xdist#632)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/632&gt;</code>_:
<code>--dist=loadscope</code> 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.</li>
</ul>
<h1>pytest-xdist 3.4.0 (2023-11-11)</h1>
<h2>Features</h2>
<ul>
<li>
<p><code>[#963](pytest-dev/pytest-xdist#963)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/963&gt;</code>_:
Wait for workers to finish reporting when test run stops early.</p>
<p>This makes sure that the results of in-progress tests are displayed.
Previously these reports were being discarded, losing information about
the
test run.</p>
</li>
<li>
<p><code>[#965](pytest-dev/pytest-xdist#965)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/965&gt;</code>_:
Added support for Python 3.12.</p>
</li>
</ul>
<h1>pytest-xdist 3.3.1 (2023-05-19)</h1>
<h2>Bug Fixes</h2>
<ul>
<li>
<p><code>[#907](pytest-dev/pytest-xdist#907)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/907&gt;</code>_:
Avoid remote calls during startup as <code>execnet</code> 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 <code>asyncio</code>, <code>anyio</code>,
<code>PyQt/PySide</code>, etc.</p>
<p>A more safe correction will require thread affinity in
<code>execnet</code> (<code>pytest-dev/execnet#96
&lt;https://github.com/pytest-dev/execnet/issues/96&gt;</code>__).</p>
</li>
</ul>
<h1>pytest-xdist 3.3.0 (2023-05-12)</h1>
<h2>Features</h2>
<ul>
<li><code>[#555](pytest-dev/pytest-xdist#555)
&lt;https://github.com/pytest-dev/pytest-xdist/issues/555&gt;</code>_:
Improved progress output when collecting nodes to be less verbose.</li>
</ul>
<h1>pytest-xdist 3.2.1 (2023-03-12)</h1>
<p>Bug Fixes</p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/95b309e980796a261045d770f69c016ca741473d"><code>95b309e</code></a>
Release 3.5.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/3fe877bc6d7211f31e55d2d561803f76ea95b935"><code>3fe877b</code></a>
LoadScope scheduler: Sort scopes by number of tests to assign biggest
scopes ...</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/f36ea25cb53cb960037f4a8510816b81fa313035"><code>f36ea25</code></a>
Create GitHub release after deploy (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/973">#973</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/d81f57508d064915fc16ace5dea4d43406db2ba0"><code>d81f575</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/969">#969</a>
from pytest-dev/pre-commit-ci-update-config</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/1d2616418c046d0e6f059b8f76e35a0627409616"><code>1d26164</code></a>
[pre-commit.ci] pre-commit autoupdate</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/5f43575b42d6d4c0078de807880b8b0791b75823"><code>5f43575</code></a>
Merge pull request <a
href="https://github.com/pytest-dev/pytest-xdist/issues/966">#966</a>
from pytest-dev/release-3.4.0</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/a6b56112f9b686aed7a354e0d50ecc26ad2d9dfe"><code>a6b5611</code></a>
Update CHANGELOG</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/64f9388f4164e9f64d98a7580933e958ea4a09d5"><code>64f9388</code></a>
Add support for Python 3.12</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/230ba6ad1057574c9f3d42a97f890788cd9ec6c3"><code>230ba6a</code></a>
Properly wait for workers when test run terminates early (<a
href="https://github.com/pytest-dev/pytest-xdist/issues/963">#963</a>)</li>
<li><a
href="https://github.com/pytest-dev/pytest-xdist/commit/93ca202b400eecc62919bcd9b0bab001e3f3f7ef"><code>93ca202</code></a>
fix typo index -&gt; instead</li>
<li>Additional commits viewable in <a
href="https://github.com/pytest-dev/pytest-xdist/compare/v2.1.0...v3.5.0">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot merge` will merge this PR after your CI passes on it
- `@dependabot squash and merge` will squash and merge this PR after
your CI passes on it
- `@dependabot cancel merge` will cancel a previously requested merge
and block automerging
- `@dependabot reopen` will reopen this PR if it is closed
- `@dependabot close` will close this PR and stop Dependabot recreating
it. You can achieve the same result by closing it manually
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants