#12355: Fix possible catastrophic performance slowdown on a certain parametrization pattern involving many higher-scoped parameters.
#12367: Fix a regression in pytest 8.2.0 where unittest class instances (a fresh one is created for each test) were not released promptly on test teardown but only on session teardown.
#12381: Fix possible "Directory not empty" crashes arising from concurent cache dir (.pytest_cache) creation. Regressed in pytest 8.2.0.
Improved Documentation
#12290: Updated Sphinx theme to use Furo instead of Flask, enabling Dark mode theme.
#12356: Added a subsection to the documentation for debugging flaky tests to mention
lack of thread safety in pytest as a possible source of flakyness.
#12363: The documentation webpages now links to a canonical version to reduce outdated documentation in search engine results.
8.2.1
pytest 8.2.1 (2024-05-19)
Improvements
#12334: Support for Python 3.13 (beta1 at the time of writing).
Bug Fixes
#12120: Fix [PermissionError]{.title-ref} crashes arising from directories which are not selected on the command-line.
#12191: Keyboard interrupts and system exits are now properly handled during the test collection.
#12300: Fixed handling of 'Function not implemented' error under squashfuse_ll, which is a different way to say that the mountpoint is read-only.
#12308: Fix a regression in pytest 8.2.0 where the permissions of automatically-created .pytest_cache directories became rwx------ instead of the expected rwxr-xr-x.
Trivial/Internal Changes
#12333: pytest releases are now attested using the recent Artifact Attestation support from GitHub, allowing users to verify the provenance of pytest's sdist and wheel artifacts.
8.2.0
pytest 8.2.0 (2024-04-27)
Deprecations
#12069: A deprecation warning is now raised when implementations of one of the following hooks request a deprecated py.path.local parameter instead of the pathlib.Path parameter which replaced it:
[#1071](https://github.com/pytest-dev/pytest-xdist/issues/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.
pytest-xdist 3.6.0 (2024-04-19)
This release was YANKED due to a regression fixed in 3.6.1.
Features
[#1027](https://github.com/pytest-dev/pytest-xdist/issues/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 #620pytest-dev/pytest-xdist#620`__).
Bug Fixes
[#1024](https://github.com/pytest-dev/pytest-xdist/issues/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) <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) <https://github.com/pytest-dev/pytest-xdist/issues/620>_: Use the new main_thread_onlyexecnet "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) <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) <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) <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) <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.
- Fix ``skip_missing_interpreters`` option for ``package = wheel`` (:issue:`3269`)
Bugfixes - 4.15.1
Fix section substitution with setenv. (:issue:3262)
Allow ConfigSet.add_config to receive parameterized generics for of_type. (:issue:3288)
v4.15.0 (2024-04-26)
Features - 4.15.0
- 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`)
Bugfixes - 4.15.0
Fix issue that the leading character c was dropped from packages in constraints files - by :user:jugmac00. (:issue:3247)
Allow appending to deps with --override testenv.deps+=foo - by :user:stefanor. (:issue:3256)
Fix non-existing branch rewrite in the documentation to main. (:issue:3257)
Update test typing for build 1.2.0, which has an explicit Distribution type - by :user:stefanor. (:issue:3260)
Fix broken input parsing for --discover flag. - by :user:mimre25 (:issue:3272)
Improved Documentation - 4.15.0
- Rephrase ``--discover`` flag's description to avoid confusion between paths and executables. - by :user:`mimre25` (:issue:`3274`)
mkdocs serve no longer locks up the browser when more than 5 tabs are open. This is achieved by closing the polling connection whenever a tab becomes inactive. Background tabs will no longer auto-reload either - that will instead happen as soon the tab is opened again. Context: #3391
New flag serve --open to open the site in a browser.
After the first build is finished, this flag will cause the default OS Web browser to be opened at the home page of the local site.
Context: #3500
Drafts
[!warning]
Changed from version 1.5:
The exclude_docs config was split up into two separate concepts.
The exclude_docs config no longer has any special behavior for mkdocs serve - it now always completely excludes the listed documents from the site.
If you wish to use the "drafts" functionality like the exclude_docs key used to do in MkDocs 1.5, please switch to the new config key draft_docs.
Reduce warning levels when a "draft" page has a link to a non-existent file. Context: #3449
Update to deduction of page titles
MkDocs 1.5 had a change in behavior in deducing the page titles from the first heading. Unfortunately this could cause unescaped HTML tags or entities to appear in edge cases.
Now tags are always fully sanitized from the title. Though it still remains the case that Page.title is expected to contain HTML entities and is passed directly to the themes.
Images (notably, emojis in some extensions) get preserved in the title only through their alt attribute's value.
Built-in themes now also support Polish language (#3613)
"readthedocs" theme
Fix: "readthedocs" theme can now correctly handle deeply nested nav configurations (over 2 levels deep), without confusedly expanding all sections and jumping around vertically. (#3464)
Fix: "readthedocs" theme now shows a link to the repository (with a generic logo) even when isn't one of the 3 known hosters. (#3435)
"readthedocs" theme now also has translation for the word "theme" in the footer that mistakenly always remained in English. (#3613, #3625)
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 commands and options
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 ignore conditions` will show all of the ignore conditions of the specified dependency
- `@dependabot ignore 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 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 ` 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 ` will remove all of the ignore conditions of the specified dependency
- `@dependabot unignore ` will remove the ignore condition of the specified dependency and ignore conditions
Bumps the primary-dev-dependencies group with 9 updates in the / directory:
8.1.1
8.2.2
3.5.0
3.6.1
24.3.0
24.4.2
7.0.0
7.1.0
3.1.0
3.2.5
4.14.2
4.15.1
1.5.3
1.6.0
0.24.1
0.25.1
9.5.16
9.5.27
Updates
pytest
from 8.1.1 to 8.2.2Release notes
Sourced from pytest's releases.
... (truncated)
Commits
329d371
Prepare release version 8.2.2214d098
Merge pull request #12414 from bluetech/backport-12409153a436
[8.2.x] fixtures: fix catastrophic performance problem inreorder_items
b41d5a5
Merge pull request #12412 from pytest-dev/backport-12408-to-8.2.x9bb73d7
[8.2.x] cacheprovider: fix "Directory not empty" crash from cache directory c...4569a01
[8.2.x] doc: Update trainings/events (#12402)1d103e5
[8.2.x] Clarify pytest_ignore_collect docs (#12386)240a252
[8.2.x] Add html_baseurl to sphinx conf.py (#12372)a5ee3c4
Merge pull request #12370 from pytest-dev/backport-12368-to-8.2.xf7358ae
[8.2.x] unittest: fix class instances no longer released on test teardown sin...Updates
pytest-xdist
from 3.5.0 to 3.6.1Changelog
Sourced from pytest-xdist's changelog.
... (truncated)
Commits
4dd2978
Release 3.6.1b397288
Merge pull request #1072 from zmedico/gateway-cache-rinfo12b3cce
Cache execnet gateway rinfo during WorkerController setupc93a106
build(deps): bump hynek/build-and-inspect-python-package (#1066)52e2022
[pre-commit.ci] pre-commit autoupdate (#1073)699f939
Merge pull request #1070 from pytest-dev/release-3.6.080bc0b8
Release 3.6.020e3ac7
Use execnet main_thread_only execmodel (#1027)0a4238f
Merge pull request #1067 from pytest-dev/pre-commit-ci-update-config0686279
[pre-commit.ci] pre-commit autoupdateUpdates
black
from 24.3.0 to 24.4.2Release notes
Sourced from black's releases.
Changelog
Sourced from black's changelog.
Commits
3702ba2
Prepare release 24.4.2 (#4335)e4aaa8a
Fix incorrect f-string tokenization (#4332)ba88fc3
Simplify string tokenization regexes (#4331)5683242
New release templatee7fb048
Prepare release 24.4.1 (#4328)3f0f8f1
Support PEP 696 (#4327)2f88085
Github Action: Directly install from repo ifexport-subst
is skipped (#4313)12ce3db
Move changelog entry to right section (#4326)1354be2
Add support to style function definitions with newlines before function stubs...f4b644b
Prevent wrapping of multiline fstrings in parens (#4325)Updates
flake8
from 7.0.0 to 7.1.0Commits
65a38c4
Release 7.1.034c97e0
Merge pull request #1939 from PyCQA/new-pycodestyledefd315
latest pycodestyle408d4d6
Merge pull request #1930 from mzagol/patch-1866ad72
Add --extend-exclude to the TOC33e5083
Merge pull request #1923 from Viicos/entry-points-docs6659b21
Fix toctree ordering in indexba0f566
Use explicit external references350f254
Use explicit external references49f52a8
Update documentation regarding entry pointsUpdates
pylint
from 3.1.0 to 3.2.5Commits
ae730ac
Bump pylint to 3.2.5, update changelog (#9756)be7b5cc
[unreachable-code] Fix the false positive in python 3.8 (#9753) (#9755)6c3ab77
[release] Fix 3.2.4 release date following issue with twine 5.1.0 (#9749) (#9...425ad66
Bump pylint to 3.2.4, update changelog (#9746)c41c35a
[possibly-used-before-assignment] Avoid FP for typing.NoReturn & Never (#9714...22e4d36
[symilar] Rename the unittest file that had a typo.3cf313a
[symilar] Fix the short form options that weren't being processed properlye13544f
[symilar] Fix crash when giving bad options to symilarc3e2579
[unnecessary-list-index-lookup] Fix crashes for uninferrable 'start' value in...6b66ca6
[undefined-variable] Fix a crash for undefined lineno in annotations (#9705) ...Updates
tox
from 4.14.2 to 4.15.1Release notes
Sourced from tox's releases.
Changelog
Sourced from tox's changelog.
Commits
079000f
release 4.15.1489ad82
Fix section substitution with setenv (#3289)7317225
AllowConfigSet.add_config
to receive parameterized generics forof_type
....406f808
[pre-commit.ci] pre-commit autoupdate (#3283)5c28d9c
[pre-commit.ci] pre-commit autoupdate (#3279)f4e257c
Fix broad build privileges @ GHA release workflow (#3281)77564a1
Fixed typo in user guide.e2f66b1
[pre-commit.ci] auto fixes from pre-commit.com hooks9afc9cb
[pre-commit.ci] pre-commit autoupdate3db9822
fix skip with package = wheel (#3269)Updates
mkdocs
from 1.5.3 to 1.6.0Release notes
Sourced from mkdocs's releases.
... (truncated)
Commits
0998fec
Release 1.6.0 (#3631)bce85bf
Fix for showing repository icon even when a file has no edit_uri (#3657)0ac05da
Re-generate localization files (#3634)6244500
Remove jQuery frommkdocs
theme (#3649)f85d429
Prevent a flash of white color when dark mode is enabled (#3647)e39cce2
Fix style of modal close button (#3651)652813d
Prevent a crash if stdin is not defined (#3609)59a295f
Merge pull request #3493 from waylan/22486f5e748
Merge pull request #3625 from mkdocs/themepo1451fb3
Babel setuptools frontend is still used in the install hookUpdates
mkdocstrings[python]
from 0.24.1 to 0.25.1Release notes
Sourced from mkdocstrings[python]'s releases.
Changelog
Sourced from mkdocstrings[python]'s changelog.
Commits
e135869
chore: Prepare release 0.25.1cb86e08
fix: Always descend into sub-headings when re-applying their labela86ca7d
docs: Customize parameters color in ToCbc25b6a
docs: Remove requirements link in readme87d8229
chore: Prepare release 0.25.0c5b5f69
refactor: Allow specifying name of template loggers7ff1681
docs: Enable parameter headings253d215
docs: Load inventories for MkDocs and Markdown1532b59
feat: Supportonce
parameter in logging methods, allowing to log a message ...d799d2f
feat: Support blank line between::: path
and YAML optionsUpdates
mkdocs-material
from 9.5.16 to 9.5.27Release notes
Sourced from mkdocs-material's releases.
... (truncated)
Changelog
Sourced from mkdocs-material's changelog.
... (truncated)
Commits
f4adebd
Prepare 9.5.27 release9e1f527
Updated dependenciesf4db9de
Updated Estonian translationsb45c51d
Changed Twitter to X (#7266)4ba7a6d
Add reference to PlantUML Markdown schema (#7260)ccc8d84
Updated dependencies0c54a88
Updated Premium sponsorsf887197
Updated changelog0d5a08c
Prepare 9.5.26 release1cc45d5
Fixed active tab stolen on scroll with linked content tabsDependabot 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 commands and options
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