Update all dependencies#328
Conversation
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #328 +/- ##
=========================================
Coverage 100.00% 100.00%
=========================================
Files 21 21
Lines 1319 1319
=========================================
Hits 1319 1319
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
4f3dff6 to
f1c00d8
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
f1c00d8 to
b446919
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
b446919 to
d78c836
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
d78c836 to
9aa72bf
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
9aa72bf to
8416621
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
8416621 to
ee65b0c
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
ee65b0c to
a0050d2
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
a0050d2 to
cd32566
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
cd32566 to
8b24702
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
8b24702 to
519444f
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
519444f to
8e32491
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
8e32491 to
8c2c595
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
8c2c595 to
72f53a4
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
4e2ff80 to
09aaaa1
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
09aaaa1 to
f9f9918
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
f9f9918 to
a896cb7
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
c3076c8 to
6a0fc1d
Compare
b87ecd8 to
3032957
Compare
3032957 to
520e4ef
Compare
|
Warning: The mypy type checker has found some errors. See the mypy job for details |
This PR contains the following updates:
v6→v7v8→v9a309ff8→ece7cb0v5→v70.136.3→0.139.02.43.3→2.44.09.0.3→9.1.17.0.0→7.1.01c054d5→2838d55f54df76→ec9233976e04a9→a783c3212.0.0→12.2.0Release Notes
actions/checkout (actions/checkout)
v7.0.0Compare Source
v7Compare Source
actions/github-script (actions/github-script)
v9.0.0Compare Source
New features:
getOctokitfactory function — Available directly in the script context. Create additional authenticated Octokit clients with different tokens for multi-token workflows, GitHub App tokens, and cross-org access. See Creating additional clients withgetOctokitfor details and examples.ACTIONS_ORCHESTRATION_IDenvironment variable is automatically appended to the user-agent string for request tracing.Breaking changes:
require('@​actions/github')no longer works in scripts. The upgrade to@actions/githubv9 (ESM-only) meansrequire('@​actions/github')will fail at runtime. If you previously used patterns likeconst { getOctokit } = require('@​actions/github')to create secondary clients, use the new injectedgetOctokitfunction instead — it's available directly in the script context with no imports needed.getOctokitis now an injected function parameter. Scripts that declareconst getOctokit = ...orlet getOctokit = ...will get aSyntaxErrorbecause JavaScript does not allowconst/letredeclaration of function parameters. Use the injectedgetOctokitdirectly, or usevar getOctokit = ...if you need to redeclare it.@actions/githubinternals beyond the standardgithub/octokitclient, you may need to update those references for v9 compatibility.What's Changed
New Contributors
Full Changelog: actions/github-script@v8.0.0...v9.0.0
v9Compare Source
codecov/codecov-action (codecov/codecov-action)
v7.0.0Compare Source
codecovsecurityaccount. We have deleted the account and are usingcodecovsecopswith the original gpg keyWhat's Changed
Full Changelog: codecov/codecov-action@v6.0.1...v7.0.0
v7Compare Source
v6.0.2Compare Source
This is a copy of the
v7.0.0release to make updates easierWhat's Changed
Full Changelog: codecov/codecov-action@v6.0.1...v6.0.2
v6.0.1Compare Source
What's Changed
Full Changelog: codecov/codecov-action@v6.0.0...v6.0.1
v6.0.0Compare Source
What's Changed
Full Changelog: codecov/codecov-action@v5.5.4...v6.0.0
v6Compare Source
fastapi/fastapi (fastapi)
v0.139.0Compare Source
Features
app.frontend(), e.g. for automatic cookie authentication for the frontend. PR #15908 by @tiangolo.Translations
Internal
allow-unsafe-pr-checkout: true. PR #15876 by @YuriiMotov.v0.138.2Compare Source
Refactors
app.frontend()return 404 for methods other thanGETorHEADwith no static file matches. PR #15863 by @tiangolo.Internal
v0.138.1Compare Source
Refactors
Internal
v0.138.0Compare Source
Features
app.frontend("/", directory="dist")androuter.frontend("/", directory="dist"). PR #15800 by @tiangolo.Docs
app.frontend()instructions to Agent Library Skill. PR #15805 by @tiangolo.Translations
Internal
release-notes.mdfor typos. PR #15796 by @YuriiMotov.gpt-5.5model intranslate.py, specify-chatto avoid warnings. PR #15792 by @YuriiMotov.v0.137.2Compare Source
Features
iter_route_contexts()for advanced use cases that used to userouter.routes(e.g. Jupyverse). PR #15785 by @tiangolo.Translations
Internal
coverage.sh. PR #15772 by @tiangolo.v0.137.1Compare Source
Fixes
v0.137.0Compare Source
Breaking Changes
APIRouterandAPIRouteinstances. PR #15745 by @tiangolo.Unblocks ✨ SO MANY THINGS ✨
Before this,
router.include_router(other_router)would take each path operation fromother_routerand "clone" it, or recreate it from scratch.This would mean that in the end there was only one top level router, part of the app.
The way it is structured here is that there are a few additional classes to handle intermediate metadata for router and route inclusion. That way the information of "router X includes Y and Y includes Z" is stored somewhere, without affecting (recreating / clonning) the final route.
Non Objectives
Dependencies for 404: previously I intended to support dependencies that would be executed even for 404, but that would conflict with the fact that a router could not find a match, but the next router did find a match. Executing dependencies in the router that did not find a match would not make sense, they could consume the request, body, etc. This original idea was discarded.
Specific Breaking Changes
Now
router.routesis no longer a plain list ofAPIRouteobjects, it can contain these intermediate objects that can contain additional routers, forming a tree.Any logic that depended on iterating on the
router.routesdirectly would be affected, that logic cannot expect to be able to extract data from a plain list of routes, as it's no longer a plain list but a tree.Additionally, any logic that iterated on
router.routesto modify them would now also see these new objects, and would not see all the routes in the app.router.routesshould be considered an internal implementation detail, only passed around to the FastAPI functions that need it.Features
subrouterinmainroutercan be done before adding routes (path operations) tosubrouter, because now the the entire object is stored instead of copying the routes.Alpha Features
This is not documented yet, so it's not officially supported yet and could change in the future.
But, as
APIRouteandAPIRouterinstances are now preserved, they could be customized.APIRouterhas two new methods,.matches()and.handle(), counterpart to the existing ones inAPIRoute. With this a router could customize how it matches and handles requests. For example, it could match only requests that include some specific header, for example for handling versions in headers.Still, for now, consider this very experimental and potentially changing and breaking in the future.
Future Features Enabled
APIRoutesubclasses (undocumented, but alraedy works as desccribed above)APIRoutersubclasses (undocumented, but already works as described above)Docs
Annotatedin inline example indocs/en/docs/tutorial/body-multiple-params.md. PR #15591 by @TheArchons.docs/en/docs/tutorial/security/oauth2-jwt.md. PR #14781 by @zadevhub.Translations
Internal
changing_dirinstead ofCLIRunner.isolated_filesystemto set working dir. PR #15616 by @YuriiMotov.httpx2test dependency to avoid deprecation warning. PR #15603 by @YuriiMotov.release-engineering/pubtools-pulplib (pubtools-pulplib)
v2.44.0Compare Source
Added
pytest-dev/pytest (pytest)
v9.1.1Compare Source
pytest 9.1.1 (2026-06-19)
Bug fixes
pytest.RaisesGroupwhich would might cause it to display incorrect "It matches FooError() which was paired with BarError" messages.list-itemtyping errors from mypy in@pytest.mark.parametrize <pytest.mark.parametrize ref>argvaluesparameter.conftest.pyfiles located in<invocation dir>/test*were no longer loaded as initial conftests when invoked without arguments.This could cause certain hooks (like
pytest_addoption) in these files to not fire.v9.1.0Compare Source
pytest 9.1.0 (2026-06-13)
Removals and backward incompatible breaking changes
#14533: When using
--doctest-modules, autouse fixtures withmodule,packageorsessionscope that are defined inline in Python test modules (not plugins or conftests) will now possibly execute twice.If this is undesirable, move the fixture definition to a
conftest.pyfile if possible.Technical explanation for those interested:
When using --doctest-modules, pytest possibly collects Python modules twice, once as
pytest.Moduleand once as aDoctestModule(depending on the configuration).Due to improvements in pytest's fixture implementation, if e.g. the
DoctestModulecollects a fixture, it is now visible to it only, and not to theModule.This means that both need to register the fixtures independently.
Deprecations (removal in next major release)
#10819: Added a deprecation warning for class-scoped fixtures defined as instance methods (without
@classmethod). Such fixtures set attributes on a different instance than the test methods use, leading to unexpected behavior. Use@classmethoddecorator instead -- byyastcher.See
10819and14011.#12882: Calling
request.getfixturevalue() <pytest.FixtureRequest.getfixturevalue>during teardown to request a fixture that was not already requested is now deprecated and will become an error in pytest 10.See
dynamic-fixture-request-during-teardownfor details.#13409: Using non-
~collections.abc.Collectioniterables (such as generators, iterators, or custom iterable objects) for theargvaluesparameter in@pytest.mark.parametrize <pytest.mark.parametrize ref>andmetafunc.parametrize <pytest.Metafunc.parametrize>is now deprecated.These iterables get exhausted after the first iteration,
leading to tests getting unexpectedly skipped in cases such as running
pytest.main()multiple times,using class-level parametrize decorators,
or collecting tests multiple times.
See
parametrize-iteratorsfor details and suggestions.#13946: The private
config.inicfgattribute is now deprecated.Use
config.getini() <pytest.Config.getini>to access configuration values instead.See
config-inicfgfor more details.#14004: Passing
baseidto~pytest.FixtureDefornodeidstrings to fixture registration APIs is now deprecated. These are internal pytest APIs that are used by some plugins.Use the
nodeparameter instead for fixture scoping. This enables more robust node-basedmatching instead of string prefix matching.
If you've used
nodeid=None, passnode=sessioninstead.This will be removed in pytest 10.
#14335: The method of configuring hooks using markers, deprecated since pytest 7.2, is now scheduled to be removed in pytest 10.
See
hook-markersfor more details.#14434: The
--pastebinoption is now deprecated.The same functionality is now available in an external plugin,
pytest-pastebin.See
pastebin-deprecatedfor more details.#14513: The private
FixtureDef.has_locationattribute is now deprecated and will be removed in pytest 10.See
fixturedef-has-location-deprecatedfor details.#1764:
pytest.console_mainis now deprecated and will be removed in pytest 10.It was never intended for programmatic use; use
pytest.maininstead.New features
#12376: Added
pytest.register_fixture()to register fixtures using an imperative interface.This is an advanced function intended for use by plugins.
Normally, fixtures should be registered declaratively using the
@pytest.fixture <pytest.fixture>decorator.Pytest looks for these fixture definitions during the collection phase and registers them automatically.
For some plugin usecases the declarative interface can be cumbersome or unviable, in which case this imperative interface can be used.
#14023: Added --report-chars long CLI option.
#14371: Added
--max-warningscommand-line option andmax_warningsconfiguration option to fail the test run when the number of warnings exceeds a given threshold -- bymiketheman.#6757: Added the
assertion_text_diff_styleconfiguration option, allowingstring equality failures to be rendered as separate
Left:andRight:blocks instead of
ndiffoutput.#8395: Added support for
~datetime.datetimeand~datetime.timedeltacomparisons withpytest.approx. An explicitabsorreltolerance as a~datetime.timedeltais required and relative tolerance is not supported for datetime comparisons -- byhamza-mobeen.Improvements in existing functionality
#11225:
pytest.warnsnow shows "Regex pattern did not match" instead of "DID NOT WARN" when warnings were emitted but thematchpattern did not match.#11295: Improved output of
--fixtures-per-testby excluding internal-implementation fixtures generated by@pytest.mark.parametrizeand similar.#13241:
pytest.raises,pytest.warnsandpytest.deprecated_callnow usesParamSpecfor the type hint to the (old and not recommended) callable overload, instead ofAny. This allows type checkers to raise errors when passing incorrect function parameters.funccan now also be passed as a kwarg, which the type hint previously showed as possible but didn't accept.#13862: Improved the readability of "DID NOT RAISE" error messages by using the exception type's name instead of its repr.
#14026: Added test coverage for compiled regex patterns in
pytest.raisesmatch parameter.#14137: pytest.ScopeName is now public to allow using it in function signatures.
#14342: Marked
yield_fixtureas deprecated to type checkers using thedeprecateddecorator. Note ithas originally been deprecated <yield-fixture-deprecated>in pytest 6.2 already.#14373: Added type annotations for
pytest.approx.#14430: When using
--setup-show, a space is now printed after the test name (and possibly used fixtures), to separate it from the test result.#14441: Reduced the default number of
gc.collect()passes in theunraisableexceptionplugin from 5 to 1 on CPython, where reference counting makes a single pass sufficient. PyPy retains 5 passes due to object resurrection via__del__. This can noticeably speed up test suites that trigger many pytester runs.#14461: Improved assertion failure explanations for equality comparisons between mapping objects that are not
dictinstances.#14513: The order in which fixture definitions overriding each other are resolved is now determined first by their visibility in the collection tree rather than by the order in which they are registered.
A fixture defined for a more specific node (e.g. a module or an item) now always takes precedence over one with the same name defined for a more general node (e.g. the session), even when the more general one was registered later.
Fixtures with non-comparable visibility or the same visibility keep the existing behavior of "last registered wins".
This change is supposed to only affect plugins which register multiple fixtures programmatically with the same name.
#14524: Add official Python 3.15 support.
#1764: Improved argparse program name to show
pytest,python -m pytest, orpytest.main()based on how pytest was invoked, making help and error messages clearer.#8265: Emit a
PytestCollectionWarningwhen a module-level__getattr__returnsNoneforpytestmarkinstead of raisingAttributeError.Previously this caused a cryptic
TypeError: got None instead of Markerror.Now pytest issues a helpful warning and continues collecting the module normally.
Bug fixes
#13192: Fixed | (pipe) not being treated as a regex meta-character that needs escaping in
pytest.raises(match=...) <pytest.raises>.#13484: Fixed
-Woption values being duplicated inConfig.known_args_namespace.#13626: Fixed function-scoped fixture values being kept alive after a test was interrupted by
KeyboardInterruptor early exit,allowing them to potentially be released more promptly.
#13784: Fixed
capteesysproducing doubled output when used with--capture=no(-s).#13817: Fixed a secondary AttributeError masking the original error when an option argument fails to initialize.
#13884: Fixed rare internal IndexError caused by builtins.compile being overridden in client code.
#13885: Fixed autouse fixtures defined inside a
unittest.TestCaseclass running even when the class is decorated withunittest.skiporunittest.skipIf-- regression since pytest 8.1.0.#13917:
unittest.SkipTestis no longer considered an interactive exception, i.e.pytest_exception_interactis no longer called for it.[#13963](https://redirect.github.com/pytest-dev/pyte
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.