-
Notifications
You must be signed in to change notification settings - Fork 230
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
Session-scoped fixture executed too many times with -x
/ --maxfails
#1024
Comments
Can confirm, this happens to me too. Will try to bisect this later. |
Had a couple of minutes so did the bisect. It's a regression from pytest 8.0.0: pytest-dev/pytest@12b9bd5 (PR pytest-dev/pytest#11721). Will look into it. |
Particularly this new code in pytest 8.0.0 (the |
Since I am not sure how to fix pytest-xdist |
…1721)" Fix pytest-dev#12021. Reopens pytest-dev#11706. This reverts commit 12b9bd5. This change caused a bad regression in pytest-xdist: pytest-dev/pytest-xdist#1024 pytest-xdist necessarily has special handling of `--maxfail` and session fixture teardown get executed multiple times with the change. Since I'm not sure how to adapt pytest-xdist myself, revert for now. I kept the sticky `shouldstop`/`shouldfail` changes as they are good ideas regardless I think.
Will be fixed in pytest 8.0.2, but let's keep this open for adding a regression test if possible. |
A couple of observations:
This makes me think it is not really multi-process related, but just some logic when how |
I did some more investigation into this - I don't think the issue is in A simpler way to see this is using
With I have a fix locally, I'll try to get into a pull request. |
I'm not really familiar with the pytest-xdist code but I assume there is some inherit raciness here:
So the number of failures can end up higher than maxfail. I don't think there is a way to avoid this, unless you start limiting the parallelism to
Well
I think the
For the original issue in pytest (pytest-dev/pytest#11706), the more difficult case is 1. But the regression we're discussing only manifests for 2. If I understand your PR correctly, it tackles 2 right? |
Yes, the PR I posted stops the worker if the "local" failures reach The "global" vs. "local" failure count is a useful distinction and clarifies the challenge here: Each worker has a unique pytest pytest-xdist/src/xdist/dsession.py Lines 354 to 362 in f57c658
I think you raise a good point about the "race condition" here - the An alternative solution could be have some configuration option to simply disable the |
…1721)" Fix pytest-dev#12021. Reopens pytest-dev#11706. This reverts commit 12b9bd5. This change caused a bad regression in pytest-xdist: pytest-dev/pytest-xdist#1024 pytest-xdist necessarily has special handling of `--maxfail` and session fixture teardown get executed multiple times with the change. Since I'm not sure how to adapt pytest-xdist myself, revert for now. I kept the sticky `shouldstop`/`shouldfail` changes as they are good ideas regardless I think.
[![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://togithub.com/pytest-dev/pytest-xdist) ([changelog](https://pytest-xdist.readthedocs.io/en/latest/changelog.html)) | `3.5.0` -> `3.6.0` | [![age](https://developer.mend.io/api/mc/badges/age/pypi/pytest-xdist/3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![adoption](https://developer.mend.io/api/mc/badges/adoption/pypi/pytest-xdist/3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![passing](https://developer.mend.io/api/mc/badges/compatibility/pypi/pytest-xdist/3.5.0/3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | [![confidence](https://developer.mend.io/api/mc/badges/confidence/pypi/pytest-xdist/3.5.0/3.6.0?slim=true)](https://docs.renovatebot.com/merge-confidence/) | --- ### Release Notes <details> <summary>pytest-dev/pytest-xdist (pytest-xdist)</summary> ### [`v3.6.0`](https://togithub.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-360-2024-04-19) [Compare Source](https://togithub.com/pytest-dev/pytest-xdist/compare/v3.5.0...v3.6.0) \=============================== ## 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 internal ` execnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example `[#​620](https://togithub.com/pytest-dev/pytest-xdist/issues/620) [#​620](https://togithub.com/pytest-dev/pytest-xdist/issues/620)\`\__). ## Bug Fixes - `#​1024 <https://github.com/pytest-dev/pytest-xdist/issues/1024>`\_: Added proper handling of `shouldstop` (such as set by `--max-fail`) and `shouldfail` 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 between `looponfail` and editable installs. - `#​620 <https://github.com/pytest-dev/pytest-xdist/issues/620>`\_: 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. - `#​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's `setup.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. </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://developer.mend.io/github/ixm-one/pytest-cmake-presets). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zMDEuNCIsInVwZGF0ZWRJblZlciI6IjM3LjMwMS40IiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZTpkZXBlbmRlbmNpZXMiXX0=--> Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com> Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from 3.5.0 to 3.6.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.6.1 (2024-04-28)</h1> <h2>Bug Fixes</h2> <ul> <li><code>[#1071](pytest-dev/pytest-xdist#1071) <https://github.com/pytest-dev/pytest-xdist/issues/1071></code>_: Add backward compatibility for deadlock issue with the <code>execnet</code> new <code>main_thread_only</code> "execmodel" triggered when pytest-cov accesses rinfo.</li> </ul> <h1>pytest-xdist 3.6.0 (2024-04-19)</h1> <p>This release was YANKED due to a regression fixed in 3.6.1.</p> <h2>Features</h2> <ul> <li><code>[#1027](pytest-dev/pytest-xdist#1027) <https://github.com/pytest-dev/pytest-xdist/pull/1027></code>_:<code>pytest-xdist</code> workers now always execute the tests in the main thread. Previously some tests might end up executing in a separate thread other than <code>main</code> in the workers, due to some internal <code>execnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example </code><a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">#620</a> <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">pytest-dev/pytest-xdist#620</a>`__).</li> </ul> <h2>Bug Fixes</h2> <ul> <li> <p><code>[#1024](pytest-dev/pytest-xdist#1024) <https://github.com/pytest-dev/pytest-xdist/issues/1024></code>_: Added proper handling of <code>shouldstop</code> (such as set by <code>--max-fail</code>) and <code>shouldfail</code> conditions in workers. Previously, a worker might have continued executing further tests before the controller could terminate the session.</p> </li> <li> <p><code>[#1028](pytest-dev/pytest-xdist#1028) <https://github.com/pytest-dev/pytest-xdist/issues/1028></code>_: Fixed compatibility issue between <code>looponfail</code> and editable installs.</p> </li> <li> <p><code>[#620](pytest-dev/pytest-xdist#620) <https://github.com/pytest-dev/pytest-xdist/issues/620></code>_: Use the new <code>main_thread_only</code> <code>execnet</code> "execmodel" so that code which expects to only run in the main thread will now work as expected.</p> </li> <li> <p><code>[#937](pytest-dev/pytest-xdist#937) <https://github.com/pytest-dev/pytest-xdist/issues/937></code>_: Fixed a bug where plugin would raise an incompatibility error with <code>--pdb</code> despite using <code>-n0</code>.</p> </li> </ul> <h2>Removals</h2> <ul> <li> <p><code>[#1053](pytest-dev/pytest-xdist#1053) <https://github.com/pytest-dev/pytest-xdist/issues/1053></code>_: Dropped support for Python 3.7.</p> </li> <li> <p><code>[#1057](pytest-dev/pytest-xdist#1057) <https://github.com/pytest-dev/pytest-xdist/issues/1057></code>_: pytest>=7.0.0 is now required.</p> <p>execnet>=2.1.0 is now required.</p> </li> </ul> <h2>Trivial Changes</h2> <ul> <li> <p><code>[#1020](pytest-dev/pytest-xdist#1020) <https://github.com/pytest-dev/pytest-xdist/issues/1020></code>_: pytest-xdist's <code>setup.py</code> file is removed.</p> <p>If you relied on this file, e.g. to install pytest using <code>setup.py install</code>, please see <code>Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary></code>_ for alternatives.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/4dd2978031eaf7017c84a1cc77667379a2b11c64"><code>4dd2978</code></a> Release 3.6.1</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/b397288b7ed40ac8c55a173566bb881e0adcb546"><code>b397288</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1072">#1072</a> from zmedico/gateway-cache-rinfo</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/12b3cce0ce4f4cffcc35c0e8369759b71b32c0cc"><code>12b3cce</code></a> Cache execnet gateway rinfo during WorkerController setup</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/c93a106b3ad466e22d19d814394de0422adf4dca"><code>c93a106</code></a> build(deps): bump hynek/build-and-inspect-python-package (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1066">#1066</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/52e202263827775ad6bcf18a216000aec4412911"><code>52e2022</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1073">#1073</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/699f939b5cc2d61df9f622d0449a590be216ee7a"><code>699f939</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1070">#1070</a> from pytest-dev/release-3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/80bc0b8e5be6e256c8f49791e08abd5fa2d2d3a2"><code>80bc0b8</code></a> Release 3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/20e3ac774e8fa34b25665ef183b94c9879f98cd1"><code>20e3ac7</code></a> Use execnet main_thread_only execmodel (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1027">#1027</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/0a4238f6da367a9133882d8810a3b556837cb5ae"><code>0a4238f</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1067">#1067</a> from pytest-dev/pre-commit-ci-update-config</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/068627994f91068fb27269be421385c7cd3ab201"><code>0686279</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-xdist/compare/v3.5.0...v3.6.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.5.0&new-version=3.6.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 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>
Bumps the dev group with 6 updates: | Package | From | To | | --- | --- | --- | | [pytest](https://github.com/pytest-dev/pytest) | `8.1.1` | `8.2.0` | | [black](https://github.com/psf/black) | `24.4.0` | `24.4.2` | | [tox](https://github.com/tox-dev/tox) | `4.14.2` | `4.15.0` | | [mypy](https://github.com/python/mypy) | `1.9.0` | `1.10.0` | | [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) | `3.5.0` | `3.6.1` | | [ruff](https://github.com/astral-sh/ruff) | `0.4.1` | `0.4.2` | Updates `pytest` from 8.1.1 to 8.2.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/pytest-dev/pytest/releases">pytest's releases</a>.</em></p> <blockquote> <h2>8.2.0</h2> <h1>pytest 8.2.0 (2024-04-27)</h1> <h2>Deprecations</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12069">#12069</a>: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated <code>py.path.local</code> parameter instead of the <code>pathlib.Path</code> parameter which replaced it:</p> <ul> <li><code>pytest_ignore_collect</code>{.interpreted-text role="hook"} - the <code>path</code> parameter - use <code>collection_path</code> instead.</li> <li><code>pytest_collect_file</code>{.interpreted-text role="hook"} - the <code>path</code> parameter - use <code>file_path</code> instead.</li> <li><code>pytest_pycollect_makemodule</code>{.interpreted-text role="hook"} - the <code>path</code> parameter - use <code>module_path</code> instead.</li> <li><code>pytest_report_header</code>{.interpreted-text role="hook"} - the <code>startdir</code> parameter - use <code>start_path</code> instead.</li> <li><code>pytest_report_collectionfinish</code>{.interpreted-text role="hook"} - the <code>startdir</code> parameter - use <code>start_path</code> instead.</li> </ul> <p>The replacement parameters are available since pytest 7.0.0. The old parameters will be removed in pytest 9.0.0.</p> <p>See <code>legacy-path-hooks-deprecated</code>{.interpreted-text role="ref"} for more details.</p> </li> </ul> <h2>Features</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/11871">#11871</a>: Added support for reading command line arguments from a file using the prefix character <code>@</code>, like e.g.: <code>pytest @tests.txt</code>. The file must have one argument per line.</p> <p>See <code>Read arguments from file <args-from-file></code>{.interpreted-text role="ref"} for details.</p> </li> </ul> <h2>Improvements</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/11523">#11523</a>: <code>pytest.importorskip</code>{.interpreted-text role="func"} will now issue a warning if the module could be found, but raised <code>ImportError</code>{.interpreted-text role="class"} instead of <code>ModuleNotFoundError</code>{.interpreted-text role="class"}.</p> <p>The warning can be suppressed by passing <code>exc_type=ImportError</code> to <code>pytest.importorskip</code>{.interpreted-text role="func"}.</p> <p>See <code>import-or-skip-import-error</code>{.interpreted-text role="ref"} for details.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/11728">#11728</a>: For <code>unittest</code>-based tests, exceptions during class cleanup (as raised by functions registered with <code>TestCase.addClassCleanup <unittest.TestCase.addClassCleanup></code>{.interpreted-text role="meth"}) are now reported instead of silently failing.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/11777">#11777</a>: Text is no longer truncated in the <code>short test summary info</code> section when <code>-vv</code> is given.</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12112">#12112</a>: Improved namespace packages detection when <code>consider_namespace_packages</code>{.interpreted-text role="confval"} is enabled, covering more situations (like editable installs).</p> </li> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/9502">#9502</a>: Added <code>PYTEST_VERSION</code>{.interpreted-text role="envvar"} environment variable which is defined at the start of the pytest session and undefined afterwards. It contains the value of <code>pytest.__version__</code>, and among other things can be used to easily check if code is running from within a pytest run.</p> </li> </ul> <h2>Bug Fixes</h2> <ul> <li> <p><a href="https://redirect.github.com/pytest-dev/pytest/issues/12065">#12065</a>: Fixed a regression in pytest 8.0.0 where test classes containing <code>setup_method</code> and tests using <code>@staticmethod</code> or <code>@classmethod</code> would crash with <code>AttributeError: 'NoneType' object has no attribute 'setup_method'</code>.</p> <p>Now the <code>request.instance <pytest.FixtureRequest.instance></code>{.interpreted-text role="attr"} attribute of tests using <code>@staticmethod</code> and <code>@classmethod</code> is no longer <code>None</code>, but a fresh instance of the class, like in non-static methods.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest/commit/6bd3f313447290380cbc2db30fb9ee5cca7eb941"><code>6bd3f31</code></a> Tweak changelog for 8.2.0</li> <li><a href="https://github.com/pytest-dev/pytest/commit/9b6219b5e89af237e5bc80354d405d2b5c2fc8a0"><code>9b6219b</code></a> Prepare release version 8.2.0</li> <li><a href="https://github.com/pytest-dev/pytest/commit/835765c9d31e0a86c6028f983b28d32c82a759c4"><code>835765c</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest/issues/12130">#12130</a> from bluetech/fixtures-inline</li> <li><a href="https://github.com/pytest-dev/pytest/commit/7e7503c0b015f61d9d21d3b5f55990b7fcd683f7"><code>7e7503c</code></a> unittest: report class cleanup exceptions (<a href="https://redirect.github.com/pytest-dev/pytest/issues/12250">#12250</a>)</li> <li><a href="https://github.com/pytest-dev/pytest/commit/882c4da2f37702b00bdbd3b6c74e9821d33e0204"><code>882c4da</code></a> fixtures: inline <code>fail_fixturefunc</code></li> <li><a href="https://github.com/pytest-dev/pytest/commit/2e8fb9f1401d727e20f004326752fd1922f9c601"><code>2e8fb9f</code></a> fixtures: extract a <code>_check_fixturedef</code> method</li> <li><a href="https://github.com/pytest-dev/pytest/commit/acf2971f46a9518b3552d48ea9541a1951c2b207"><code>acf2971</code></a> fixtures: inline <code>_getnextfixturedef</code> into <code>_get_active_fixturedef</code></li> <li><a href="https://github.com/pytest-dev/pytest/commit/3c77aec1dac0894ec4ca774b71ec91c85cf91dd1"><code>3c77aec</code></a> fixtures: move "request" check early</li> <li><a href="https://github.com/pytest-dev/pytest/commit/d217d68cde0c34d619862f15c773ecc02ecdaabe"><code>d217d68</code></a> fixtures: inline <code>_compute_fixture_value</code></li> <li><a href="https://github.com/pytest-dev/pytest/commit/530be285751143febe54b8974b234eed5eb8b079"><code>530be28</code></a> fixtures: use early return in <code>_get_active_fixturedef</code></li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest/compare/8.1.1...8.2.0">compare view</a></li> </ul> </details> <br /> Updates `black` from 24.4.0 to 24.4.2 <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>24.4.2</h2> <p>This is a bugfix release to fix two regressions in the new f-string parser introduced in 24.4.1.</p> <h3>Parser</h3> <ul> <li>Fix regression where certain complex f-strings failed to parse (<a href="https://redirect.github.com/psf/black/issues/4332">#4332</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Fix bad performance on certain complex string literals (<a href="https://redirect.github.com/psf/black/issues/4331">#4331</a>)</li> </ul> <h2>24.4.1</h2> <h3>Highlights</h3> <ul> <li>Add support for the new Python 3.12 f-string syntax introduced by PEP 701 (<a href="https://redirect.github.com/psf/black/issues/3822">#3822</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix crash involving indented dummy functions containing newlines (<a href="https://redirect.github.com/psf/black/issues/4318">#4318</a>)</li> </ul> <h3>Parser</h3> <ul> <li>Add support for type parameter defaults, a new syntactic feature added to Python 3.13 by PEP 696 (<a href="https://redirect.github.com/psf/black/issues/4327">#4327</a>)</li> </ul> <h3>Integrations</h3> <ul> <li>Github Action now works even when <code>git archive</code> is skipped (<a href="https://redirect.github.com/psf/black/issues/4313">#4313</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>24.4.2</h2> <p>This is a bugfix release to fix two regressions in the new f-string parser introduced in 24.4.1.</p> <h3>Parser</h3> <ul> <li>Fix regression where certain complex f-strings failed to parse (<a href="https://redirect.github.com/psf/black/issues/4332">#4332</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Fix bad performance on certain complex string literals (<a href="https://redirect.github.com/psf/black/issues/4331">#4331</a>)</li> </ul> <h2>24.4.1</h2> <h3>Highlights</h3> <ul> <li>Add support for the new Python 3.12 f-string syntax introduced by PEP 701 (<a href="https://redirect.github.com/psf/black/issues/3822">#3822</a>)</li> </ul> <h3>Stable style</h3> <ul> <li>Fix crash involving indented dummy functions containing newlines (<a href="https://redirect.github.com/psf/black/issues/4318">#4318</a>)</li> </ul> <h3>Parser</h3> <ul> <li>Add support for type parameter defaults, a new syntactic feature added to Python 3.13 by PEP 696 (<a href="https://redirect.github.com/psf/black/issues/4327">#4327</a>)</li> </ul> <h3>Integrations</h3> <ul> <li>Github Action now works even when <code>git archive</code> is skipped (<a href="https://redirect.github.com/psf/black/issues/4313">#4313</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/psf/black/commit/3702ba224ecffbcec30af640c149f231d90aebdb"><code>3702ba2</code></a> Prepare release 24.4.2 (<a href="https://redirect.github.com/psf/black/issues/4335">#4335</a>)</li> <li><a href="https://github.com/psf/black/commit/e4aaa8a9947d951eb1e69979c3c58e197adbe40f"><code>e4aaa8a</code></a> Fix incorrect f-string tokenization (<a href="https://redirect.github.com/psf/black/issues/4332">#4332</a>)</li> <li><a href="https://github.com/psf/black/commit/ba88fc372eaed34abb33ea02d6860b185388d928"><code>ba88fc3</code></a> Simplify string tokenization regexes (<a href="https://redirect.github.com/psf/black/issues/4331">#4331</a>)</li> <li><a href="https://github.com/psf/black/commit/5683242fd432d93c9c37540948a39afd06ea4f7d"><code>5683242</code></a> New release template</li> <li><a href="https://github.com/psf/black/commit/e7fb048281a83733f0b162fc7fa85e48044ea9ec"><code>e7fb048</code></a> Prepare release 24.4.1 (<a href="https://redirect.github.com/psf/black/issues/4328">#4328</a>)</li> <li><a href="https://github.com/psf/black/commit/3f0f8f1956646fd9f6fc47e133364c1352a478d1"><code>3f0f8f1</code></a> Support PEP 696 (<a href="https://redirect.github.com/psf/black/issues/4327">#4327</a>)</li> <li><a href="https://github.com/psf/black/commit/2f88085da588d34286bc9a24e288de204f141243"><code>2f88085</code></a> Github Action: Directly install from repo if <code>export-subst</code> is skipped (<a href="https://redirect.github.com/psf/black/issues/4313">#4313</a>)</li> <li><a href="https://github.com/psf/black/commit/12ce3db077780ab01cc5ad1f92d5c85fcca3f54c"><code>12ce3db</code></a> Move changelog entry to right section (<a href="https://redirect.github.com/psf/black/issues/4326">#4326</a>)</li> <li><a href="https://github.com/psf/black/commit/1354be2525e4910b8a0d7c46242eae76963db5d2"><code>1354be2</code></a> Add support to style function definitions with newlines before function stubs...</li> <li><a href="https://github.com/psf/black/commit/f4b644b82f64d5aa2b8959277c9eb9ebcb16affe"><code>f4b644b</code></a> Prevent wrapping of multiline fstrings in parens (<a href="https://redirect.github.com/psf/black/issues/4325">#4325</a>)</li> <li>Additional commits viewable in <a href="https://github.com/psf/black/compare/24.4.0...24.4.2">compare view</a></li> </ul> </details> <br /> Updates `tox` from 4.14.2 to 4.15.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/tox-dev/tox/releases">tox's releases</a>.</em></p> <blockquote> <h2>4.15.0</h2> <!-- raw HTML omitted --> <h2>What's Changed</h2> <ul> <li>Remove duplicated and misleading configuration section by <a href="https://github.com/jugmac00"><code>@jugmac00</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3251">tox-dev/tox#3251</a></li> <li>Fix dropped leading characters <code>c</code> from constraints' packages by <a href="https://github.com/jugmac00"><code>@jugmac00</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3250">tox-dev/tox#3250</a></li> <li>Fix type-checking by <a href="https://github.com/stefanor"><code>@stefanor</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3260">tox-dev/tox#3260</a></li> <li>Update installation.rst by <a href="https://github.com/shenxianpeng"><code>@shenxianpeng</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3257">tox-dev/tox#3257</a></li> <li>Allow appending to deps with the command line by <a href="https://github.com/stefanor"><code>@stefanor</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3259">tox-dev/tox#3259</a></li> <li>Support multiple override appends by <a href="https://github.com/amitschang"><code>@amitschang</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3261">tox-dev/tox#3261</a></li> <li>Add bang to invert exit code by <a href="https://github.com/sillydan1"><code>@sillydan1</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3271">tox-dev/tox#3271</a></li> <li>fix(parser): Fix --discover parsed incorrectly from env by <a href="https://github.com/mimre25"><code>@mimre25</code></a> in <a href="https://redirect.github.com/tox-dev/tox/pull/3274">tox-dev/tox#3274</a></li> </ul> <h2>New Contributors</h2> <ul> <li><a href="https://github.com/shenxianpeng"><code>@shenxianpeng</code></a> made their first contribution in <a href="https://redirect.github.com/tox-dev/tox/pull/3257">tox-dev/tox#3257</a></li> <li><a href="https://github.com/amitschang"><code>@amitschang</code></a> made their first contribution in <a href="https://redirect.github.com/tox-dev/tox/pull/3261">tox-dev/tox#3261</a></li> <li><a href="https://github.com/sillydan1"><code>@sillydan1</code></a> made their first contribution in <a href="https://redirect.github.com/tox-dev/tox/pull/3271">tox-dev/tox#3271</a></li> <li><a href="https://github.com/mimre25"><code>@mimre25</code></a> made their first contribution in <a href="https://redirect.github.com/tox-dev/tox/pull/3274">tox-dev/tox#3274</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/tox-dev/tox/compare/4.14.2...4.15.0">https://github.com/tox-dev/tox/compare/4.14.2...4.15.0</a></p> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/tox-dev/tox/blob/main/docs/changelog.rst">tox's changelog</a>.</em></p> <blockquote> <h2>v4.15.0 (2024-04-26)</h2> <p>Features - 4.15.0</p> <pre><code>- Add support for multiple appending override options (-x, --override) on command line - by :user:`amitschang`. (:issue:`3261`) - Add support for inverting exit code success criteria using bang (!) (:issue:`3271`) <p>Bugfixes - 4.15.0 </code></pre></p> <ul> <li>Fix issue that the leading character <code>c</code> was dropped from packages in constraints files - by :user:<code>jugmac00</code>. (:issue:<code>3247</code>)</li> <li>Allow appending to <code>deps</code> with <code>--override testenv.deps+=foo</code> - by :user:<code>stefanor</code>. (:issue:<code>3256</code>)</li> <li>Fix non-existing branch <code>rewrite</code> in the documentation to <code>main</code>. (:issue:<code>3257</code>)</li> <li>Update test typing for build 1.2.0, which has an explicit <code>Distribution</code> type - by :user:<code>stefanor</code>. (:issue:<code>3260</code>)</li> <li>Fix broken input parsing for <code>--discover</code> flag. - by :user:<code>mimre25</code> (:issue:<code>3272</code>)</li> </ul> <p>Improved Documentation - 4.15.0</p> <pre><code>- Rephrase ``--discover`` flag's description to avoid confusion between paths and executables. - by :user:`mimre25` (:issue:`3274`) </code></pre> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/tox-dev/tox/commit/261b4ca55686059489b1314c440f0e2fca21aca5"><code>261b4ca</code></a> release 4.15.0</li> <li><a href="https://github.com/tox-dev/tox/commit/c54dfbd9ad4aad9f0ef5503b7dff2558cdf64208"><code>c54dfbd</code></a> fix(parser): Fix --discover parsed incorrectly from env (<a href="https://redirect.github.com/tox-dev/tox/issues/3274">#3274</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/809e10f9871e75cf7b07063f47393f9c10861174"><code>809e10f</code></a> Add bang to invert exit code (<a href="https://redirect.github.com/tox-dev/tox/issues/3271">#3271</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/822c9d07699aa090fb8d37cb94247ea0d085125b"><code>822c9d0</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/tox-dev/tox/issues/3267">#3267</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/0e5a3dbb9a1c7eb1df56421cc4bca5e187626ccd"><code>0e5a3db</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/tox-dev/tox/issues/3265">#3265</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/f5850c0d3a893cbb6d9de192fe8e6e857573499b"><code>f5850c0</code></a> Support multiple override appends (<a href="https://redirect.github.com/tox-dev/tox/issues/3261">#3261</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/c2be62972e7f7b3e79260e5c96e4fe5bf76f5929"><code>c2be629</code></a> Allow appending to deps with the command line (<a href="https://redirect.github.com/tox-dev/tox/issues/3259">#3259</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/d28a9ee0ea28b2356b24a0d0e0ed70c0141d41cc"><code>d28a9ee</code></a> Update installation.rst (<a href="https://redirect.github.com/tox-dev/tox/issues/3257">#3257</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/a19a9467cfae5a0fc2c1b6faf1845d412898c693"><code>a19a946</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/tox-dev/tox/issues/3258">#3258</a>)</li> <li><a href="https://github.com/tox-dev/tox/commit/a22fe8ffce73acdfc2aefd70228ede0337aac19b"><code>a22fe8f</code></a> Fix type-checking (<a href="https://redirect.github.com/tox-dev/tox/issues/3260">#3260</a>)</li> <li>Additional commits viewable in <a href="https://github.com/tox-dev/tox/compare/4.14.2...4.15.0">compare view</a></li> </ul> </details> <br /> Updates `mypy` from 1.9.0 to 1.10.0 <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/python/mypy/blob/master/CHANGELOG.md">mypy's changelog</a>.</em></p> <blockquote> <h1>Mypy Release Notes</h1> <h2>Next release</h2> <h2>Mypy 1.10</h2> <p>We’ve just uploaded mypy 1.10 to the Python Package Index (<a href="https://pypi.org/project/mypy/">PyPI</a>). Mypy is a static type checker for Python. This release includes new features, performance improvements and bug fixes. You can install it as follows:</p> <pre><code>python3 -m pip install -U mypy </code></pre> <p>You can read the full documentation for this release on <a href="http://mypy.readthedocs.io">Read the Docs</a>.</p> <h4>Support TypeIs (PEP 742)</h4> <p>Mypy now supports <code>TypeIs</code> (<a href="https://peps.python.org/pep-0742/">PEP 742</a>), which allows functions to narrow the type of a value, similar to <code>isinstance()</code>. Unlike <code>TypeGuard</code>, <code>TypeIs</code> can narrow in both the <code>if</code> and <code>else</code> branches of an if statement:</p> <pre lang="python"><code>from typing_extensions import TypeIs <p>def is_str(s: object) -> TypeIs[str]: return isinstance(s, str)</p> <p>def f(o: str | int) -> None: if is_str(o): # Type of o is 'str' ... else: # Type of o is 'int' ... </code></pre></p> <p><code>TypeIs</code> will be added to the <code>typing</code> module in Python 3.13, but it can be used on earlier Python versions by importing it from <code>typing_extensions</code>.</p> <p>This feature was contributed by Jelle Zijlstra (PR <a href="https://redirect.github.com/python/mypy/pull/16898">16898</a>).</p> <h4>Support TypeVar Defaults (PEP 696)</h4> <p><a href="https://peps.python.org/pep-0696/">PEP 696</a> adds support for type parameter defaults. Example:</p> <pre lang="python"><code>from typing import Generic from typing_extensions import TypeVar <p></tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/python/mypy/commit/3faf0fc4798ec3ee6b1cd123965193dc0a753fb0"><code>3faf0fc</code></a> Remove +dev for version for release 1.10</li> <li><a href="https://github.com/python/mypy/commit/a5998d20402515f0c0bf05c7fe1029e93aa9bfa8"><code>a5998d2</code></a> Update CHANGELOG.md (<a href="https://redirect.github.com/python/mypy/issues/17159">#17159</a>)</li> <li><a href="https://github.com/python/mypy/commit/62ea5b01f0c0c99e7db93326cb8d219eecfb3cb6"><code>62ea5b0</code></a> Various updates to changelog for 1.10 (<a href="https://redirect.github.com/python/mypy/issues/17158">#17158</a>)</li> <li><a href="https://github.com/python/mypy/commit/2f0864c4e55a74700d8ce2d97ab2d3ca2b288513"><code>2f0864c</code></a> Update CHANGELOG.md with draft for release 1.10 (<a href="https://redirect.github.com/python/mypy/issues/17150">#17150</a>)</li> <li><a href="https://github.com/python/mypy/commit/e1443bbade91118794055449cc8b4b4f7fd08b7d"><code>e1443bb</code></a> fix: incorrect returned type of access descriptors on unions of types (<a href="https://redirect.github.com/python/mypy/issues/16604">#16604</a>)</li> <li><a href="https://github.com/python/mypy/commit/5161ac2e5b73dc7597536eb4444219868317e5d9"><code>5161ac2</code></a> Sync typeshed (<a href="https://redirect.github.com/python/mypy/issues/17124">#17124</a>)</li> <li><a href="https://github.com/python/mypy/commit/e2fc1f28935806ca04b18fab277217f583b51594"><code>e2fc1f2</code></a> Fix crash when expanding invalid Unpack in a <code>Callable</code> alias (<a href="https://redirect.github.com/python/mypy/issues/17028">#17028</a>)</li> <li><a href="https://github.com/python/mypy/commit/3ff6e47c57a67e807e0b4579a816b4f66ab16824"><code>3ff6e47</code></a> Docs: docstrings in checker.py, ast_helpers.py (<a href="https://redirect.github.com/python/mypy/issues/16908">#16908</a>)</li> <li><a href="https://github.com/python/mypy/commit/732d98ecb2a98e4eaea14aba1ed8ac9c1f5ccdb6"><code>732d98e</code></a> Fix string formatting for string enums (<a href="https://redirect.github.com/python/mypy/issues/16555">#16555</a>)</li> <li><a href="https://github.com/python/mypy/commit/80190101f68b52e960c22572ed6cc814de078b9c"><code>8019010</code></a> Narrow individual items when matching a tuple to a sequence pattern (<a href="https://redirect.github.com/python/mypy/issues/16905">#16905</a>)</li> <li>Additional commits viewable in <a href="https://github.com/python/mypy/compare/1.9.0...v1.10.0">compare view</a></li> </ul> </details> <br /> Updates `pytest-xdist` from 3.5.0 to 3.6.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.6.1 (2024-04-28)</h1> <h2>Bug Fixes</h2> <ul> <li><code>[#1071](pytest-dev/pytest-xdist#1071) <https://github.com/pytest-dev/pytest-xdist/issues/1071></code>_: Add backward compatibility for deadlock issue with the <code>execnet</code> new <code>main_thread_only</code> "execmodel" triggered when pytest-cov accesses rinfo.</li> </ul> <h1>pytest-xdist 3.6.0 (2024-04-19)</h1> <p>This release was YANKED due to a regression fixed in 3.6.1.</p> <h2>Features</h2> <ul> <li><code>[#1027](pytest-dev/pytest-xdist#1027) <https://github.com/pytest-dev/pytest-xdist/pull/1027></code>_:<code>pytest-xdist</code> workers now always execute the tests in the main thread. Previously some tests might end up executing in a separate thread other than <code>main</code> in the workers, due to some internal <code>execnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example </code><a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">#620</a> <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">pytest-dev/pytest-xdist#620</a>`__).</li> </ul> <h2>Bug Fixes</h2> <ul> <li> <p><code>[#1024](pytest-dev/pytest-xdist#1024) <https://github.com/pytest-dev/pytest-xdist/issues/1024></code>_: Added proper handling of <code>shouldstop</code> (such as set by <code>--max-fail</code>) and <code>shouldfail</code> conditions in workers. Previously, a worker might have continued executing further tests before the controller could terminate the session.</p> </li> <li> <p><code>[#1028](pytest-dev/pytest-xdist#1028) <https://github.com/pytest-dev/pytest-xdist/issues/1028></code>_: Fixed compatibility issue between <code>looponfail</code> and editable installs.</p> </li> <li> <p><code>[#620](pytest-dev/pytest-xdist#620) <https://github.com/pytest-dev/pytest-xdist/issues/620></code>_: Use the new <code>main_thread_only</code> <code>execnet</code> "execmodel" so that code which expects to only run in the main thread will now work as expected.</p> </li> <li> <p><code>[#937](pytest-dev/pytest-xdist#937) <https://github.com/pytest-dev/pytest-xdist/issues/937></code>_: Fixed a bug where plugin would raise an incompatibility error with <code>--pdb</code> despite using <code>-n0</code>.</p> </li> </ul> <h2>Removals</h2> <ul> <li> <p><code>[#1053](pytest-dev/pytest-xdist#1053) <https://github.com/pytest-dev/pytest-xdist/issues/1053></code>_: Dropped support for Python 3.7.</p> </li> <li> <p><code>[#1057](pytest-dev/pytest-xdist#1057) <https://github.com/pytest-dev/pytest-xdist/issues/1057></code>_: pytest>=7.0.0 is now required.</p> <p>execnet>=2.1.0 is now required.</p> </li> </ul> <h2>Trivial Changes</h2> <ul> <li> <p><code>[#1020](pytest-dev/pytest-xdist#1020) <https://github.com/pytest-dev/pytest-xdist/issues/1020></code>_: pytest-xdist's <code>setup.py</code> file is removed.</p> <p>If you relied on this file, e.g. to install pytest using <code>setup.py install</code>, please see <code>Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary></code>_ for alternatives.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/4dd2978031eaf7017c84a1cc77667379a2b11c64"><code>4dd2978</code></a> Release 3.6.1</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/b397288b7ed40ac8c55a173566bb881e0adcb546"><code>b397288</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1072">#1072</a> from zmedico/gateway-cache-rinfo</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/12b3cce0ce4f4cffcc35c0e8369759b71b32c0cc"><code>12b3cce</code></a> Cache execnet gateway rinfo during WorkerController setup</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/c93a106b3ad466e22d19d814394de0422adf4dca"><code>c93a106</code></a> build(deps): bump hynek/build-and-inspect-python-package (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1066">#1066</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/52e202263827775ad6bcf18a216000aec4412911"><code>52e2022</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1073">#1073</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/699f939b5cc2d61df9f622d0449a590be216ee7a"><code>699f939</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1070">#1070</a> from pytest-dev/release-3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/80bc0b8e5be6e256c8f49791e08abd5fa2d2d3a2"><code>80bc0b8</code></a> Release 3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/20e3ac774e8fa34b25665ef183b94c9879f98cd1"><code>20e3ac7</code></a> Use execnet main_thread_only execmodel (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1027">#1027</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/0a4238f6da367a9133882d8810a3b556837cb5ae"><code>0a4238f</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1067">#1067</a> from pytest-dev/pre-commit-ci-update-config</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/068627994f91068fb27269be421385c7cd3ab201"><code>0686279</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-xdist/compare/v3.5.0...v3.6.1">compare view</a></li> </ul> </details> <br /> Updates `ruff` from 0.4.1 to 0.4.2 <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.4.2</h2> <h2>Changes</h2> <h3>Rule changes</h3> <ul> <li>[<code>flake8-pyi</code>] Allow for overloaded <code>__exit__</code> and <code>__aexit__</code> definitions (<code>PYI036</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11057">#11057</a>)</li> <li>[<code>pyupgrade</code>] Catch usages of <code>"%s" % var</code> and provide an unsafe fix (<code>UP031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11019">#11019</a>)</li> <li>[<code>refurb</code>] Implement new rule that suggests min/max over <code>sorted()</code> (<code>FURB192</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10868">#10868</a>)</li> </ul> <h3>Server</h3> <ul> <li>Fix an issue with missing diagnostics for Neovim and Helix (<a href="https://redirect.github.com/astral-sh/ruff/pull/11092">#11092</a>)</li> <li>Implement hover documentation for <code>noqa</code> codes (<a href="https://redirect.github.com/astral-sh/ruff/pull/11096">#11096</a>)</li> <li>Introduce common Ruff configuration options with new server settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/11062">#11062</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Use <code>macos-12</code> for building release wheels to enable macOS 11 compatibility (<a href="https://redirect.github.com/astral-sh/ruff/pull/11146">#11146</a>)</li> <li>[<code>flake8-blind-expect</code>] Allow raise from in <code>BLE001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11131">#11131</a>)</li> <li>[<code>flake8-pyi</code>] Allow simple assignments to <code>None</code> in enum class scopes (<code>PYI026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11128">#11128</a>)</li> <li>[<code>flake8-simplify</code>] Avoid raising <code>SIM911</code> for non-<code>zip</code> attribute calls (<a href="https://redirect.github.com/astral-sh/ruff/pull/11126">#11126</a>)</li> <li>[<code>refurb</code>] Avoid <code>operator.itemgetter</code> suggestion for single-item tuple (<a href="https://redirect.github.com/astral-sh/ruff/pull/11095">#11095</a>)</li> <li>[<code>ruff</code>] Respect per-file-ignores for <code>RUF100</code> with no other diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/11058">#11058</a>)</li> <li>[<code>ruff</code>] Fix async comprehension false positive (<code>RUF029</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11070">#11070</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>flake8-bugbear</code>] Document explicitly disabling strict zip (<code>B905</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11040">#11040</a>)</li> <li>[<code>flake8-type-checking</code>] Mention <code>lint.typing-modules</code> in <code>TCH001</code>, <code>TCH002</code>, and <code>TCH003</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11144">#11144</a>)</li> <li>[<code>isort</code>] Improve documentation around custom <code>isort</code> sections (<a href="https://redirect.github.com/astral-sh/ruff/pull/11050">#11050</a>)</li> <li>[<code>pylint</code>] Fix documentation oversight for <code>invalid-X-returns</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11094">#11094</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Use <code>matchit</code> to resolve per-file settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/11111">#11111</a>)</li> </ul> <h2>Contributors</h2> <ul> <li><a href="https://github.com/AlexWaygood"><code>@AlexWaygood</code></a></li> <li><a href="https://github.com/JonathanPlasse"><code>@JonathanPlasse</code></a></li> <li><a href="https://github.com/KPCOFGS"><code>@KPCOFGS</code></a></li> <li><a href="https://github.com/KotlinIsland"><code>@KotlinIsland</code></a></li> <li><a href="https://github.com/MichaReiser"><code>@MichaReiser</code></a></li> <li><a href="https://github.com/augustelalande"><code>@augustelalande</code></a></li> <li><a href="https://github.com/autinerd"><code>@autinerd</code></a></li> <li><a href="https://github.com/bersbersbers"><code>@bersbersbers</code></a></li> <li><a href="https://github.com/carljm"><code>@carljm</code></a></li> <li><a href="https://github.com/charliermarsh"><code>@charliermarsh</code></a></li> <li><a href="https://github.com/dhruvmanila"><code>@dhruvmanila</code></a></li> <li><a href="https://github.com/ibraheemdev"><code>@ibraheemdev</code></a></li> <li><a href="https://github.com/jfrost-mo"><code>@jfrost-mo</code></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.4.2</h2> <h3>Rule changes</h3> <ul> <li>[<code>flake8-pyi</code>] Allow for overloaded <code>__exit__</code> and <code>__aexit__</code> definitions (<code>PYI036</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11057">#11057</a>)</li> <li>[<code>pyupgrade</code>] Catch usages of <code>"%s" % var</code> and provide an unsafe fix (<code>UP031</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11019">#11019</a>)</li> <li>[<code>refurb</code>] Implement new rule that suggests min/max over <code>sorted()</code> (<code>FURB192</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/10868">#10868</a>)</li> </ul> <h3>Server</h3> <ul> <li>Fix an issue with missing diagnostics for Neovim and Helix (<a href="https://redirect.github.com/astral-sh/ruff/pull/11092">#11092</a>)</li> <li>Implement hover documentation for <code>noqa</code> codes (<a href="https://redirect.github.com/astral-sh/ruff/pull/11096">#11096</a>)</li> <li>Introduce common Ruff configuration options with new server settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/11062">#11062</a>)</li> </ul> <h3>Bug fixes</h3> <ul> <li>Use <code>macos-12</code> for building release wheels to enable macOS 11 compatibility (<a href="https://redirect.github.com/astral-sh/ruff/pull/11146">#11146</a>)</li> <li>[<code>flake8-blind-expect</code>] Allow raise from in <code>BLE001</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11131">#11131</a>)</li> <li>[<code>flake8-pyi</code>] Allow simple assignments to <code>None</code> in enum class scopes (<code>PYI026</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11128">#11128</a>)</li> <li>[<code>flake8-simplify</code>] Avoid raising <code>SIM911</code> for non-<code>zip</code> attribute calls (<a href="https://redirect.github.com/astral-sh/ruff/pull/11126">#11126</a>)</li> <li>[<code>refurb</code>] Avoid <code>operator.itemgetter</code> suggestion for single-item tuple (<a href="https://redirect.github.com/astral-sh/ruff/pull/11095">#11095</a>)</li> <li>[<code>ruff</code>] Respect per-file-ignores for <code>RUF100</code> with no other diagnostics (<a href="https://redirect.github.com/astral-sh/ruff/pull/11058">#11058</a>)</li> <li>[<code>ruff</code>] Fix async comprehension false positive (<code>RUF029</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11070">#11070</a>)</li> </ul> <h3>Documentation</h3> <ul> <li>[<code>flake8-bugbear</code>] Document explicitly disabling strict zip (<code>B905</code>) (<a href="https://redirect.github.com/astral-sh/ruff/pull/11040">#11040</a>)</li> <li>[<code>flake8-type-checking</code>] Mention <code>lint.typing-modules</code> in <code>TCH001</code>, <code>TCH002</code>, and <code>TCH003</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11144">#11144</a>)</li> <li>[<code>isort</code>] Improve documentation around custom <code>isort</code> sections (<a href="https://redirect.github.com/astral-sh/ruff/pull/11050">#11050</a>)</li> <li>[<code>pylint</code>] Fix documentation oversight for <code>invalid-X-returns</code> (<a href="https://redirect.github.com/astral-sh/ruff/pull/11094">#11094</a>)</li> </ul> <h3>Performance</h3> <ul> <li>Use <code>matchit</code> to resolve per-file settings (<a href="https://redirect.github.com/astral-sh/ruff/pull/11111">#11111</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/astral-sh/ruff/commit/77c93fd63c1c072501d297082aa59c741b2d5466"><code>77c93fd</code></a> Bump version to 0.4.2 (<a href="https://redirect.github.com/astral-sh/ruff/issues/11151">#11151</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/1c9f5e3001da83a7e48aef21ef72d155c8928035"><code>1c9f5e3</code></a> Display the AST even with syntax errors (<a href="https://redirect.github.com/astral-sh/ruff/issues/11147">#11147</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/263a0d25edf0e56358a6132158d96f06bf94701b"><code>263a0d2</code></a> Use <code>macos-12</code> to build release wheels (<a href="https://redirect.github.com/astral-sh/ruff/issues/11146">#11146</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/4738e199747cdfb7dd82d45b3bd23b715ad0d526"><code>4738e19</code></a> Remove unused lexical error types (<a href="https://redirect.github.com/astral-sh/ruff/issues/11145">#11145</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/f428bd5052b9729cb25be4dd74c703308695edab"><code>f428bd5</code></a> Docs: mention <code>lint.typing-modules</code> in <code>TCH001</code>, <code>TCH002</code>, <code>TCH003</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/11144">#11144</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/4690890e9fc880489007ea557a0c7fcb190d9c73"><code>4690890</code></a> <code>ruff server</code>: In 'publish diagnostics' mode, document diagnostics are cleare...</li> <li><a href="https://github.com/astral-sh/ruff/commit/19baabba58c55d8c280b701dc5fb346ce19477bd"><code>19baabb</code></a> README: add Apache Superset to project list (<a href="https://redirect.github.com/astral-sh/ruff/issues/11136">#11136</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/cee38f39dfb7eaca22eda3c19a4d81adc4097105"><code>cee38f3</code></a> [<code>flake8-blind-expect</code>] Allow raise from in <code>BLE001</code> (<a href="https://redirect.github.com/astral-sh/ruff/issues/11131">#11131</a>)</li> <li><a href="https://github.com/astral-sh/ruff/commit/e3fde2814655dd315683833c772d10e6cd55ba08"><code>e3fde28</code></a> [<code>flake8-pyi</code>] Allow overloaded <code>__exit__</code> and <code>__aexit__</code> definitions (`PYI0...</li> <li><a href="https://github.com/astral-sh/ruff/commit/1c8849f9a8a2e2dcc0849f35fd5c39049a1e4a6e"><code>1c8849f</code></a> Use Matchit to Resolve Per-File Settings (<a href="https://redirect.github.com/astral-sh/ruff/issues/11111">#11111</a>)</li> <li>Additional commits viewable in <a href="https://github.com/astral-sh/ruff/compare/v0.4.1...v0.4.2">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>
Bumps [pytest-xdist](https://github.com/pytest-dev/pytest-xdist) from 3.3.1 to 3.6.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.6.1 (2024-04-28)</h1> <h2>Bug Fixes</h2> <ul> <li><code>[#1071](pytest-dev/pytest-xdist#1071) <https://github.com/pytest-dev/pytest-xdist/issues/1071></code>_: Add backward compatibility for deadlock issue with the <code>execnet</code> new <code>main_thread_only</code> "execmodel" triggered when pytest-cov accesses rinfo.</li> </ul> <h1>pytest-xdist 3.6.0 (2024-04-19)</h1> <p>This release was YANKED due to a regression fixed in 3.6.1.</p> <h2>Features</h2> <ul> <li><code>[#1027](pytest-dev/pytest-xdist#1027) <https://github.com/pytest-dev/pytest-xdist/pull/1027></code>_:<code>pytest-xdist</code> workers now always execute the tests in the main thread. Previously some tests might end up executing in a separate thread other than <code>main</code> in the workers, due to some internal <code>execnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example </code><a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">#620</a> <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/620">pytest-dev/pytest-xdist#620</a>`__).</li> </ul> <h2>Bug Fixes</h2> <ul> <li> <p><code>[#1024](pytest-dev/pytest-xdist#1024) <https://github.com/pytest-dev/pytest-xdist/issues/1024></code>_: Added proper handling of <code>shouldstop</code> (such as set by <code>--max-fail</code>) and <code>shouldfail</code> conditions in workers. Previously, a worker might have continued executing further tests before the controller could terminate the session.</p> </li> <li> <p><code>[#1028](pytest-dev/pytest-xdist#1028) <https://github.com/pytest-dev/pytest-xdist/issues/1028></code>_: Fixed compatibility issue between <code>looponfail</code> and editable installs.</p> </li> <li> <p><code>[#620](pytest-dev/pytest-xdist#620) <https://github.com/pytest-dev/pytest-xdist/issues/620></code>_: Use the new <code>main_thread_only</code> <code>execnet</code> "execmodel" so that code which expects to only run in the main thread will now work as expected.</p> </li> <li> <p><code>[#937](pytest-dev/pytest-xdist#937) <https://github.com/pytest-dev/pytest-xdist/issues/937></code>_: Fixed a bug where plugin would raise an incompatibility error with <code>--pdb</code> despite using <code>-n0</code>.</p> </li> </ul> <h2>Removals</h2> <ul> <li> <p><code>[#1053](pytest-dev/pytest-xdist#1053) <https://github.com/pytest-dev/pytest-xdist/issues/1053></code>_: Dropped support for Python 3.7.</p> </li> <li> <p><code>[#1057](pytest-dev/pytest-xdist#1057) <https://github.com/pytest-dev/pytest-xdist/issues/1057></code>_: pytest>=7.0.0 is now required.</p> <p>execnet>=2.1.0 is now required.</p> </li> </ul> <h2>Trivial Changes</h2> <ul> <li> <p><code>[#1020](pytest-dev/pytest-xdist#1020) <https://github.com/pytest-dev/pytest-xdist/issues/1020></code>_: pytest-xdist's <code>setup.py</code> file is removed.</p> <p>If you relied on this file, e.g. to install pytest using <code>setup.py install</code>, please see <code>Why you shouldn't invoke setup.py directly <https://blog.ganssle.io/articles/2021/10/setup-py-deprecated.html#summary></code>_ for alternatives.</p> </li> </ul> <!-- raw HTML omitted --> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/4dd2978031eaf7017c84a1cc77667379a2b11c64"><code>4dd2978</code></a> Release 3.6.1</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/b397288b7ed40ac8c55a173566bb881e0adcb546"><code>b397288</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1072">#1072</a> from zmedico/gateway-cache-rinfo</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/12b3cce0ce4f4cffcc35c0e8369759b71b32c0cc"><code>12b3cce</code></a> Cache execnet gateway rinfo during WorkerController setup</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/c93a106b3ad466e22d19d814394de0422adf4dca"><code>c93a106</code></a> build(deps): bump hynek/build-and-inspect-python-package (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1066">#1066</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/52e202263827775ad6bcf18a216000aec4412911"><code>52e2022</code></a> [pre-commit.ci] pre-commit autoupdate (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1073">#1073</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/699f939b5cc2d61df9f622d0449a590be216ee7a"><code>699f939</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1070">#1070</a> from pytest-dev/release-3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/80bc0b8e5be6e256c8f49791e08abd5fa2d2d3a2"><code>80bc0b8</code></a> Release 3.6.0</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/20e3ac774e8fa34b25665ef183b94c9879f98cd1"><code>20e3ac7</code></a> Use execnet main_thread_only execmodel (<a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1027">#1027</a>)</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/0a4238f6da367a9133882d8810a3b556837cb5ae"><code>0a4238f</code></a> Merge pull request <a href="https://redirect.github.com/pytest-dev/pytest-xdist/issues/1067">#1067</a> from pytest-dev/pre-commit-ci-update-config</li> <li><a href="https://github.com/pytest-dev/pytest-xdist/commit/068627994f91068fb27269be421385c7cd3ab201"><code>0686279</code></a> [pre-commit.ci] pre-commit autoupdate</li> <li>Additional commits viewable in <a href="https://github.com/pytest-dev/pytest-xdist/compare/v3.3.1...v3.6.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.1&new-version=3.6.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 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>
This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [dev/pytest-xdist](https://togithub.com/pytest-dev/pytest-xdist) ([changelog](https://pytest-xdist.readthedocs.io/en/latest/changelog.html)) | project.optional-dependencies | minor | `==3.5.0` -> `==3.6.1` | --- ### Release Notes <details> <summary>pytest-dev/pytest-xdist (dev/pytest-xdist)</summary> ### [`v3.6.1`](https://togithub.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-361-2024-04-28) [Compare Source](https://togithub.com/pytest-dev/pytest-xdist/compare/v3.6.0...v3.6.1) \=============================== ## Bug Fixes - `#​1071 <https://github.com/pytest-dev/pytest-xdist/issues/1071>`\_: Add backward compatibility for deadlock issue with the `execnet` new `main_thread_only` "execmodel" triggered when pytest-cov accesses rinfo. ### [`v3.6.0`](https://togithub.com/pytest-dev/pytest-xdist/blob/HEAD/CHANGELOG.rst#pytest-xdist-360-2024-04-19) [Compare Source](https://togithub.com/pytest-dev/pytest-xdist/compare/v3.5.0...v3.6.0) \=============================== 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 internal ` execnet`` details. This can cause problems specially with async frameworks where the event loop is running in the ``main`` thread (for example `[#​620](https://togithub.com/pytest-dev/pytest-xdist/issues/620) [#​620](https://togithub.com/pytest-dev/pytest-xdist/issues/620)\`\__). ## Bug Fixes - `#​1024 <https://github.com/pytest-dev/pytest-xdist/issues/1024>`\_: Added proper handling of `shouldstop` (such as set by `--max-fail`) and `shouldfail` 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 between `looponfail` and editable installs. - `#​620 <https://github.com/pytest-dev/pytest-xdist/issues/620>`\_: 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. - `#​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's `setup.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. </details> --- ### 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. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://togithub.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzNy4zNTAuMSIsInVwZGF0ZWRJblZlciI6IjM3LjM1MC4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6W119-->
This is related, but I think slightly different than #868 and #420 (which deals with the fact that these flags do not stop execution after a fail).
Observe this test file:
Running this with:
leads to the
session_fixture
being executed 3 times! Removing--maxfail=1
, you can seesession_fixture
is executed twice (as expected).The text was updated successfully, but these errors were encountered: