{"id":12846,"name":"google-cloud-logging","ecosystem":"pip","repository_url":"https://github.com/googleapis/python-logging","issues_count":51,"created_at":"2025-06-06T23:20:57.413Z","updated_at":"2025-06-06T23:20:57.413Z","purl":"pkg:pypi/google-cloud-logging","metadata":{"id":425511,"name":"google-cloud-logging","ecosystem":"pypi","description":"Stackdriver Logging API client library","homepage":"https://github.com/googleapis/python-logging","licenses":"Apache 2.0","normalized_licenses":["Apache-2.0"],"repository_url":"https://github.com/googleapis/python-logging","keywords_array":[],"namespace":null,"versions_count":69,"first_release_published_at":"2023-08-28T03:05:54.347Z","latest_release_published_at":"2025-04-22T20:50:23.000Z","latest_release_number":"3.12.1","last_synced_at":"2025-06-04T23:37:11.757Z","created_at":"2022-04-06T18:28:22.413Z","updated_at":"2025-06-04T23:39:42.064Z","registry_url":"https://pypi.org/project/google-cloud-logging/","install_command":"pip install google-cloud-logging --index-url https://pypi.org/simple","documentation_url":"https://google-cloud-logging.readthedocs.io/","metadata":{"funding":null,"documentation":null,"classifiers":["Development Status :: 5 - Production/Stable","Intended Audience :: Developers","License :: OSI Approved :: Apache Software License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.10","Programming Language :: Python :: 3.11","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.7","Programming Language :: Python :: 3.8","Programming Language :: Python :: 3.9","Topic :: Internet"],"normalized_name":"google-cloud-logging"},"repo_metadata":{"id":37998148,"uuid":"226992562","full_name":"googleapis/python-logging","owner":"googleapis","description":null,"archived":false,"fork":false,"pushed_at":"2025-05-23T14:27:20.000Z","size":4585,"stargazers_count":138,"open_issues_count":30,"forks_count":56,"subscribers_count":46,"default_branch":"main","last_synced_at":"2025-05-28T18:51:22.330Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/googleapis.png","metadata":{"files":{"readme":"README.rst","changelog":"CHANGELOG.md","contributing":".github/CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2019-12-10T00:09:45.000Z","updated_at":"2025-05-25T23:40:25.000Z","dependencies_parsed_at":"2023-02-14T03:02:44.118Z","dependency_job_id":"3926e085-95c0-4bd8-8b33-9d138c58effc","html_url":"https://github.com/googleapis/python-logging","commit_stats":{"total_commits":833,"total_committers":73,"mean_commits":11.41095890410959,"dds":0.8259303721488596,"last_synced_commit":"8c2c5a798aa444ffa71d82a12428fbcd50395a7e"},"previous_names":[],"tags_count":67,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleapis","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":258077050,"owners_count":22647826,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"},"owner_record":{"login":"googleapis","name":"Google APIs","uuid":"16785467","kind":"organization","description":"Clients for Google APIs and tools that help produce them.","email":null,"website":"https://googleapis.github.io","location":null,"twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/16785467?v=4","repositories_count":781,"last_synced_at":"2023-04-09T04:55:29.167Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/googleapis","funding_links":[],"total_stars":null,"followers":null,"following":null,"created_at":"2022-11-02T16:20:18.651Z","updated_at":"2023-04-09T04:55:29.452Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleapis","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/googleapis/repositories"},"tags":[{"name":"v3.12.1","sha":"f4fb25ab6f123663ad63aa10baf79d59c0f77ba8","kind":"commit","published_at":"2025-04-22T20:39:55.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.12.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.12.1/manifests"},{"name":"v3.12.0","sha":"5f89b5f77d326652cf3e4a53967d140c71ad1074","kind":"commit","published_at":"2025-04-16T16:36:45.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.12.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.12.0/manifests"},{"name":"v3.11.4","sha":"c47946fee07f50d8772fd9c5a06224378e461317","kind":"commit","published_at":"2025-01-29T14:39:37.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.11.4","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.11.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.4/manifests"},{"name":"v3.11.3","sha":"55d038faae75c11b93be3770879e7dab7aae770a","kind":"commit","published_at":"2024-10-15T20:02:37.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.11.3","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.11.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.3/manifests"},{"name":"v3.11.2","sha":"89dd4c7c74596ef5dd13a82c782b563b68ff6b31","kind":"commit","published_at":"2024-08-20T17:16:36.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.11.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.11.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.2/manifests"},{"name":"v3.11.1","sha":"5fcdbb6e74b67149f9d4e32247aec924138f22b7","kind":"commit","published_at":"2024-08-06T22:08:09.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.11.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.11.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.1/manifests"},{"name":"v3.11.0","sha":"5bc9b448506c0c51d20ea2b475b5366afe921d05","kind":"commit","published_at":"2024-07-25T16:19:30.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.11.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.11.0/manifests"},{"name":"v3.10.0","sha":"0448d2ad0e0de33f72bd6aa08aa1e60e39448d7c","kind":"commit","published_at":"2024-03-14T18:15:16.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.10.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.10.0/manifests"},{"name":"v3.9.0","sha":"6d265bfb2d7af438be00626a5d5796796eeacfbf","kind":"commit","published_at":"2023-12-11T19:22:57.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.9.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.9.0/manifests"},{"name":"v3.9.0rc1","sha":"9638944219fc00a3457fb132fae4fd5ef7d42fe9","kind":"commit","published_at":"2023-12-11T15:56:24.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.9.0rc1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.9.0rc1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.9.0rc1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.9.0rc1/manifests"},{"name":"v3.8.0","sha":"0656474418db7c050d5ea8c9f431b2e4c344c04d","kind":"commit","published_at":"2023-10-04T21:56:13.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.8.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.8.0/manifests"},{"name":"v3.7.0","sha":"f25c119be7843ba24803a8ecdd6b790e0b795ab9","kind":"commit","published_at":"2023-09-25T22:39:15.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.7.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.7.0/manifests"},{"name":"v3.6.0","sha":"b6a76f5ec8f56a5132335bce5684c2a2edbe2799","kind":"commit","published_at":"2023-07-14T17:17:36.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.6.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.6.0/manifests"},{"name":"v3.5.0","sha":"4cb790a1b3fdef64ad589d74000712f358b19249","kind":"commit","published_at":"2023-01-24T23:44:09.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.5.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.5.0/manifests"},{"name":"v3.4.0","sha":"7b8965a1469423d2cd61e045399b3ec6f7e85cd6","kind":"commit","published_at":"2022-12-27T21:54:36.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.4.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.4.0/manifests"},{"name":"v3.3.1","sha":"55449987a1c8803a12c2c34e4d15f5d6bd7ae4e9","kind":"commit","published_at":"2022-12-07T00:06:19.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.3.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.3.1/manifests"},{"name":"v3.3.0","sha":"fd7ed4c78af6f954187b7edc55195d3e7b9e0302","kind":"commit","published_at":"2022-11-29T20:19:02.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.3.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.3.0/manifests"},{"name":"v3.2.5","sha":"12f3001d834e858dbbbcdaab5894ec25a14c6820","kind":"commit","published_at":"2022-10-07T20:50:54.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.5","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.5","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.5","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.5/manifests"},{"name":"v3.2.4","sha":"e12eae247da77726ec127ffba7608312ba893ff3","kind":"commit","published_at":"2022-10-04T01:13:55.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.4","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.4","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.4","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.4/manifests"},{"name":"v3.2.3","sha":"fbb5d5885d7057fa40e91ef8eb545a8e0dd3f535","kind":"commit","published_at":"2022-10-01T00:16:26.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.3","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.3/manifests"},{"name":"v3.2.2","sha":"cbc9846652b539a07d2ab8d6e4ddf4490bb420bf","kind":"commit","published_at":"2022-08-16T18:04:09.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.2/manifests"},{"name":"v3.2.1","sha":"ee2a66ebe04bd1ff624c89aa33a89737ff09d967","kind":"commit","published_at":"2022-07-14T13:31:58.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.1/manifests"},{"name":"v3.2.0","sha":"5b3dfd257596fa357260ec4465b5abf9af572b5c","kind":"commit","published_at":"2022-07-12T13:43:40.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.2.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.2.0/manifests"},{"name":"v2.7.2","sha":"5e09653a4292a73ad40999e10d0df13e54167ec5","kind":"commit","published_at":"2022-06-09T16:11:47.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.7.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.7.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.2/manifests"},{"name":"v1.15.3","sha":"7cd0a4509d3da0b5007863e0b2c3b78553e88026","kind":"commit","published_at":"2022-06-09T15:58:11.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.15.3","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.15.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.3/manifests"},{"name":"v3.1.2","sha":"d28900c610aaacad341efd5a852b3870f62e8341","kind":"commit","published_at":"2022-06-06T21:40:22.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.1.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.1.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.2/manifests"},{"name":"v3.1.1","sha":"366a20e72efd478608984d494bb84c0fdf2212ba","kind":"commit","published_at":"2022-05-23T21:01:50.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.1.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.1/manifests"},{"name":"v3.1.0","sha":"737a9e24ea0c070ecd34c899b47b8539c41da77d","kind":"commit","published_at":"2022-05-19T16:14:17.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.1.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.1.0/manifests"},{"name":"v2.7.1","sha":"c5d605b2d80c021139807b55464696d7bd98c772","kind":"commit","published_at":"2022-04-06T22:12:29.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.7.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.7.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.1/manifests"},{"name":"v1.15.2","sha":"93d7d8b8f2fb7564b6ebebf0e8eafdbf4973b6f0","kind":"commit","published_at":"2022-04-06T17:32:51.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.15.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.15.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.2/manifests"},{"name":"v3.0.0","sha":"10727ef3c8cca7e20484e58e6afdc79e81a4d4c9","kind":"commit","published_at":"2022-02-01T21:51:04.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v3.0.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v3.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v3.0.0/manifests"},{"name":"v2.7.0","sha":"9d3b954d6a7104873fb853ac7365493e88c32abf","kind":"commit","published_at":"2021-11-02T22:19:10.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.7.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.7.0/manifests"},{"name":"v2.6.0","sha":"e62de416cf4bcfac5ab30e1b6ca160eba1346968","kind":"commit","published_at":"2021-07-28T19:58:53.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.6.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.6.0/manifests"},{"name":"v2.5.0","sha":"392813d410b05ea5654c809cfcf22751473ca924","kind":"commit","published_at":"2021-06-15T19:05:45.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.5.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.5.0/manifests"},{"name":"v2.4.0","sha":"6d09912a0082e7ccad07be17f637d67aca87c218","kind":"commit","published_at":"2021-05-12T20:48:58.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.4.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.4.0/manifests"},{"name":"v2.3.1","sha":"6a1f19d9929137d4a5ec6bd4d758a16ec5b284e1","kind":"commit","published_at":"2021-03-24T20:41:59.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.3.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.3.1/manifests"},{"name":"v2.3.0","sha":"7a4b0543f9bc9f17ef7de071fb4ec6f2da642e45","kind":"commit","published_at":"2021-03-15T17:46:55.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.3.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.3.0/manifests"},{"name":"v2.2.0","sha":"2b5f9e3920ecf0842e7284c28fad4beb9dc6c6a4","kind":"commit","published_at":"2021-01-27T00:59:23.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.2.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.2.0/manifests"},{"name":"v2.1.1","sha":"9611810083e3184073b26ce5a143b70ce1324502","kind":"commit","published_at":"2021-01-14T20:01:51.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.1.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.1.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.1.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.1.1/manifests"},{"name":"v2.1.0","sha":"d1cd29bf60537878bbbace318d4f0157cd1c7637","kind":"commit","published_at":"2021-01-12T21:22:47.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.1.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.1.0/manifests"},{"name":"v2.0.2","sha":"2a36af63499728863631f3a767f369f8452e9e42","kind":"commit","published_at":"2020-12-16T19:07:42.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.0.2","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.0.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.2/manifests"},{"name":"v2.0.1","sha":"7f75f599a39af1fe5de97694c690d628ae0f2d0c","kind":"commit","published_at":"2020-12-02T22:17:37.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.0.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.0.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.1/manifests"},{"name":"v2.0.0","sha":"174f2243ca1e97e0b0b0b153c556b5308c9293f7","kind":"commit","published_at":"2020-11-19T00:34:05.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v2.0.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v2.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v2.0.0/manifests"},{"name":"v1.15.1","sha":"79da04264e3bf6a7a7c0e9617f89d2b1fd4a278f","kind":"commit","published_at":"2020-08-07T21:06:28.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.15.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.15.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.1/manifests"},{"name":"v1.15.0","sha":"6dbb56d16f361ae41d34b7763370ec403b19b1bf","kind":"commit","published_at":"2020-03-02T21:36:21.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.15.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.15.0/manifests"},{"name":"v1.14.0","sha":"6a6bad00e16902e2b29508d2a20a404a2707d4ab","kind":"commit","published_at":"2019-10-15T17:39:42.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.14.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.14.0/manifests"},{"name":"v1.13.0","sha":"f292270eaa73cb7a30b9f9cb187cd17a129c8cbe","kind":"commit","published_at":"2019-09-30T14:47:49.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.13.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.13.0/manifests"},{"name":"v1.12.1","sha":"47bca41a4b6b6a5566bcd6c65af5e750dd1e9b24","kind":"commit","published_at":"2019-08-01T17:12:52.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.12.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.12.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.12.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.12.1/manifests"},{"name":"v1.12.0","sha":"0d81b7df27b376ac963d9cf1e2e1dd01682dd186","kind":"commit","published_at":"2019-07-26T17:28:27.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.12.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.12.0/manifests"},{"name":"v1.11.0","sha":"924c8ca86226a0b5759be072733f4693cf8fb951","kind":"commit","published_at":"2019-05-16T21:11:15.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.11.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.11.0/manifests"},{"name":"v1.10.0","sha":"b5bb244480b28d1915624f3021dc1dcef03a5f51","kind":"commit","published_at":"2019-01-18T17:29:29.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.10.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.10.0/manifests"},{"name":"v1.9.1","sha":"62cbcf6904882dd21af0f3e1f1b28d03c59ae623","kind":"commit","published_at":"2018-12-19T18:04:03.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.9.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.9.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.9.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.9.1/manifests"},{"name":"v1.9.0","sha":"70b94f819dfe0d322d85a64f5a06d70bcb312bc6","kind":"commit","published_at":"2018-12-10T23:30:20.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.9.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.9.0/manifests"},{"name":"v1.8.0","sha":"4a8d52a90710782026afc7655e3bffac0462d789","kind":"commit","published_at":"2018-10-17T21:45:24.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.8.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.8.0/manifests"},{"name":"v1.7.0","sha":"6a7662c73ffbc81ad50569b3f00e989e2bc071d7","kind":"commit","published_at":"2018-09-11T20:19:38.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.7.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.7.0/manifests"},{"name":"v1.6.0","sha":"1a5ac3bdf23ddfface4a6ba55d0772647de98bce","kind":"commit","published_at":"2018-02-28T17:01:32.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.6.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.6.0/manifests"},{"name":"v1.5.0","sha":"1726fd60e89ce88672c64b8dc7e7103c5c19b2f5","kind":"commit","published_at":"2018-02-20T18:37:42.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.5.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.5.0/manifests"},{"name":"v1.4.0","sha":"4667e29bec36413e95cd7a43a735df673bd462ca","kind":"commit","published_at":"2017-10-31T21:28:55.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.4.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.4.0/manifests"},{"name":"v1.3.0","sha":"13e3a507e94327c5109583db602eabe653e3df88","kind":"commit","published_at":"2017-08-24T21:15:01.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.3.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.3.0/manifests"},{"name":"v1.2.0","sha":"e51822e648431ff6fda80a4f6dc8741390f1770b","kind":"commit","published_at":"2017-08-04T23:45:43.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.2.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.2.0/manifests"},{"name":"v1.1.0","sha":"8c9270de41447cd03280b650ec60b0508f5ad22b","kind":"tag","published_at":"2017-06-26T22:35:38.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.1.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.1.0/manifests"},{"name":"v1.0.0","sha":"7288fdcb92a87e0999d615c88a21bcf8a332adaa","kind":"commit","published_at":"2017-04-07T01:43:55.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v1.0.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v1.0.0/manifests"},{"name":"v0.24.0","sha":"ce8aa65161d8ad02a0bff74027e9050ba0868c35","kind":"commit","published_at":"2017-04-01T01:57:27.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v0.24.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v0.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.24.0/manifests"},{"name":"v0.23.1","sha":"826f9681c7d57af871799ce34b2461ba4920b709","kind":"commit","published_at":"2017-02-27T23:27:22.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v0.23.1","html_url":"https://github.com/googleapis/python-logging/releases/tag/v0.23.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.23.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.23.1/manifests"},{"name":"v0.23.0","sha":"899dea4fb584d68bed018b64a4bcb4610372329d","kind":"commit","published_at":"2017-02-24T22:45:56.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v0.23.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v0.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.23.0/manifests"},{"name":"v0.22.0","sha":"bc5d88856efa0ef16e69d23caa127698a2e01b78","kind":"commit","published_at":"2016-12-10T17:26:47.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v0.22.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v0.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.22.0/manifests"},{"name":"v0.21.0","sha":"9fa25ed1356f7c64d86ee5b6ef15d8e67632a251","kind":"commit","published_at":"2016-11-14T22:35:45.000Z","download_url":"https://codeload.github.com/googleapis/python-logging/tar.gz/v0.21.0","html_url":"https://github.com/googleapis/python-logging/releases/tag/v0.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/googleapis%2Fpython-logging/tags/v0.21.0/manifests"}]},"repo_metadata_updated_at":"2025-06-04T23:39:42.063Z","dependent_packages_count":117,"downloads":30900436,"downloads_period":"last-month","dependent_repos_count":1735,"rankings":{"downloads":0.09865550978666458,"dependent_repos_count":0.26688311318011,"dependent_packages_count":0.16860777876834585,"stargazers_count":6.804975623854396,"forks_count":5.624769445490259,"docker_downloads_count":0.47407869250085066,"average":2.2396616939301044},"purl":"pkg:pypi/google-cloud-logging","advisories":[],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/google-cloud-logging","docker_dependents_count":248,"docker_downloads_count":32405234,"usage_url":"https://repos.ecosyste.ms/usage/pypi/google-cloud-logging","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/google-cloud-logging/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/google-cloud-logging/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/google-cloud-logging/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/google-cloud-logging/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/google-cloud-logging/related_packages","maintainers":[{"uuid":"gcloudpypi","login":"gcloudpypi","name":null,"email":null,"url":null,"packages_count":352,"html_url":"https://pypi.org/user/gcloudpypi/","role":null,"created_at":"2022-11-14T18:34:32.062Z","updated_at":"2022-11-14T18:34:32.062Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/gcloudpypi/packages"},{"uuid":"google_opensource","login":"google_opensource","name":null,"email":null,"url":null,"packages_count":434,"html_url":"https://pypi.org/user/google_opensource/","role":null,"created_at":"2022-11-14T18:34:32.067Z","updated_at":"2022-11-14T18:34:32.067Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/google_opensource/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690419,"maintainers_count":292811,"namespaces_count":0,"keywords_count":228590,"github":"pypi","metadata":{"funded_packages_count":48950},"icon_url":"https://github.com/pypi.png","created_at":"2022-04-04T15:19:23.364Z","updated_at":"2025-06-06T05:32:09.692Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages","maintainers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers","namespaces_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/namespaces"}},"unique_repositories_count":30,"unique_repositories_count_past_30_days":1,"recent_issues":[{"uuid":"4609730176","node_id":"PR_kwDOSKhg787jvVND","number":14,"state":"open","title":"chore(deps)(deps): Bump the python-minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T03:10:39.000Z","updated_at":"2026-06-08T03:10:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Bump","group_name":"python-minor-and-patch","update_count":5,"packages":[{"name":"gcsfs","old_version":"2026.3.0","new_version":"2026.5.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-cloud-logging","old_version":"3.15.0","new_version":"3.16.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.32","new_version":"0.0.44","repository_url":"https://github.com/astral-sh/ty"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-and-patch group with 5 updates in the /coderank-reviewer directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2026.3.0` | `2026.5.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.15.0` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.32` | `0.0.44` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n\n\nUpdates `gcsfs` from 2026.3.0 to 2026.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/gcsfs/releases\"\u003egcsfs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix zonal documentation about finalized objects by \u003ca href=\"https://github.com/Mahalaxmibejugam\"\u003e\u003ccode\u003e@​Mahalaxmibejugam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/828\"\u003efsspec/gcsfs#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable branch wise tracking by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/819\"\u003efsspec/gcsfs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: adjust fsspec dependency version constraint by \u003ca href=\"https://github.com/zhixiangli\"\u003e\u003ccode\u003e@​zhixiangli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/834\"\u003efsspec/gcsfs#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for partial prefixes in find method for HNS buckets by \u003ca href=\"https://github.com/Mahalaxmibejugam\"\u003e\u003ccode\u003e@​Mahalaxmibejugam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/831\"\u003efsspec/gcsfs#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd workflow to automate PyPI package publishing on release by \u003ca href=\"https://github.com/Yonghui-Lee\"\u003e\u003ccode\u003e@​Yonghui-Lee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/824\"\u003efsspec/gcsfs#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HttpError message formatting and handle None content in validate_response by \u003ca href=\"https://github.com/zhixiangli\"\u003e\u003ccode\u003e@​zhixiangli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/835\"\u003efsspec/gcsfs#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntegrate prefetcher engine with zonal buckets by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/805\"\u003efsspec/gcsfs#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the benchmark config, and fix the block size propogation by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/808\"\u003efsspec/gcsfs#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pypi environment to release workflow by \u003ca href=\"https://github.com/Yonghui-Lee\"\u003e\u003ccode\u003e@​Yonghui-Lee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/836\"\u003efsspec/gcsfs#836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2026.4.0...2026.5.0\"\u003ehttps://github.com/fsspec/gcsfs/compare/2026.4.0...2026.5.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/255e4f866ae2c66dbca14a0aaa3dea024156997f\"\u003e\u003ccode\u003e255e4f8\u003c/code\u003e\u003c/a\u003e Add pypi environment to release workflow (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/2fa8b5a1c9d973e028a1939495cd640be923ed5d\"\u003e\u003ccode\u003e2fa8b5a\u003c/code\u003e\u003c/a\u003e Update the benchmark config, and fix the block size propogation (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/37b7f1a7a6be20ce71ae1d5db60143cee46519c5\"\u003e\u003ccode\u003e37b7f1a\u003c/code\u003e\u003c/a\u003e Integrate prefetcher engine with zonal buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b2af5b89fb1e39616d23725e95ec7292b10529cc\"\u003e\u003ccode\u003eb2af5b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/835\"\u003e#835\u003c/a\u003e from zhixiangli/fix-httperror-content-none\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b89bb899afcc753e40a6f29681c7764b77cbc661\"\u003e\u003ccode\u003eb89bb89\u003c/code\u003e\u003c/a\u003e Add workflow to automate PyPI package publishing on release (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14bb32a4b7ac1398d044e2b426441c2593b92196\"\u003e\u003ccode\u003e14bb32a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/831\"\u003e#831\u003c/a\u003e from ankitaluthra1/fix-find-partial-prefixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/820c0418861219b1e578736e5b18449e9ddebfb5\"\u003e\u003ccode\u003e820c041\u003c/code\u003e\u003c/a\u003e fix: adjust fsspec dependency version constraint (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/005cc2e478a8e9107164c21d1e2e5549cc287103\"\u003e\u003ccode\u003e005cc2e\u003c/code\u003e\u003c/a\u003e add more coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c54372993806e4c0e1a05107ffd08acbe41b0b1c\"\u003e\u003ccode\u003ec543729\u003c/code\u003e\u003c/a\u003e fix issue with special characters in rm method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/5cb0d32633f32dfd2fa15667e55127244a5b6a08\"\u003e\u003ccode\u003e5cb0d32\u003c/code\u003e\u003c/a\u003e Enable branch wise tracking (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2026.3.0...2026.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.15.0 to 3.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.16.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.15.0...google-cloud-logging-v3.16.0\"\u003ev3.16.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Python 3.7, 3.8, and 3.9 runtimes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17276\"\u003e#17276\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/014e951b\"\u003e014e951b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5accbb42b3f8372c4d03ef59a6b0000b165f2200\"\u003e\u003ccode\u003e5accbb4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260602T021047Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17336\"\u003e#17336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86e57cb9b6ec4266773e99e8a5f60eda78cd1e11\"\u003e\u003ccode\u003e86e57cb\u003c/code\u003e\u003c/a\u003e fix(spanner_dbapi): replace insecure pickle with json for partition deseriali...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6b62cb6fb3de94326b8944ae08a400c12529cad2\"\u003e\u003ccode\u003e6b62cb6\u003c/code\u003e\u003c/a\u003e feat(bigframes): Add ai_generate functions to the dataframe bq accessor (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17302\"\u003e#17302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/54fd04b618127ca20ae8f183734ea07add1af876\"\u003e\u003ccode\u003e54fd04b\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260529T145921Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17312\"\u003e#17312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c04f892621ceeefb5e2dcbf2b9ea0dddb1b9ad31\"\u003e\u003ccode\u003ec04f892\u003c/code\u003e\u003c/a\u003e chore: update googleapis and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17313\"\u003e#17313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1c2e24f3da44ecfdefe9acb099e28d41d66d46d2\"\u003e\u003ccode\u003e1c2e24f\u003c/code\u003e\u003c/a\u003e chore: generate google-cloud-monitoring-dashboards (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17309\"\u003e#17309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/06965d82a9676c6e0797bf20e616f2d14332c443\"\u003e\u003ccode\u003e06965d8\u003c/code\u003e\u003c/a\u003e chore: generate google-cloud-containeranalysis (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17308\"\u003e#17308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/20242246da615ef75d7ed64e0dfd2d6f72537583\"\u003e\u003ccode\u003e2024224\u003c/code\u003e\u003c/a\u003e chore: generate grafeas (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17307\"\u003e#17307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9f2ed920d6525f1a1dd51c1b09ca848a04c28c78\"\u003e\u003ccode\u003e9f2ed92\u003c/code\u003e\u003c/a\u003e chore(spanner): deprecate experimental host option/parameter to replace with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7813ca4e59dfc3d9e1546b9b5f0acba9e7536a8e\"\u003e\u003ccode\u003e7813ca4\u003c/code\u003e\u003c/a\u003e chore: add missing nox sessions and polish dependencies in sqlalchemy-spanner...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.15.0...google-cloud-logging-v3.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.32 to 0.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid treating \u003ccode\u003esys.implementation.version\u003c/code\u003e like \u003ccode\u003esys.version_info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix anchor point for override diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25621\"\u003e#25621\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReuse expression cache for TypedDict union inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25643\"\u003e#25643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable narrowing for unions of TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25188\"\u003e#25188\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pierrem964\"\u003e\u003ccode\u003e@​pierrem964\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Hugo-Polloli\"\u003e\u003ccode\u003e@​Hugo-Polloli\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.44\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.44/ty-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ty/releases/download/0.0.44/ty-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ty 0.0.44\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid treating \u003ccode\u003esys.implementation.version\u003c/code\u003e like \u003ccode\u003esys.version_info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix anchor point for override diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25621\"\u003e#25621\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReuse expression cache for TypedDict union inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25643\"\u003e#25643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable narrowing for unions of TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25188\"\u003e#25188\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pierrem964\"\u003e\u003ccode\u003e@​pierrem964\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Hugo-Polloli\"\u003e\u003ccode\u003e@​Hugo-Polloli\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-03.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't inject \u003ccode\u003eUnknown\u003c/code\u003e from non-callable elements of intersection call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25538\"\u003e#25538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't needlessly disambiguate the same type alias (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25563\"\u003e#25563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance inference for nested type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25567\"\u003e#25567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore rejected member annotations for synthesized bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25427\"\u003e#25427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize dynamic class literals in cycle recovery (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25558\"\u003e#25558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegister file roots for first-party search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25522\"\u003e#25522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat union-bound typevars like unions for \u003ccode\u003epossibly-missing-attribute\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25561\"\u003e#25561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress importable completions that are already in scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25479\"\u003e#25479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5523e256eb275c9b473f174aedc383e7b050c34\"\u003e\u003ccode\u003ef5523e2\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.44 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3667\"\u003e#3667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/29ce3146faa2d42867dadd7ecbda84759b8183be\"\u003e\u003ccode\u003e29ce314\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.43 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3648\"\u003e#3648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/794322d34624abc56301bd85ac354b94ca54fbb2\"\u003e\u003ccode\u003e794322d\u003c/code\u003e\u003c/a\u003e Update docker/build-push-action action to v7.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3629\"\u003e#3629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ce89685310383494c7dfec92bd2fc2dd2a46d074\"\u003e\u003ccode\u003ece89685\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3628\"\u003e#3628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/792fb71ca172f8d67fcfdb5fdd452a049724c8fd\"\u003e\u003ccode\u003e792fb71\u003c/code\u003e\u003c/a\u003e Update docker/login-action action to v4.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3630\"\u003e#3630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/5c377476823a4b77a903fb5340d77b51d68db389\"\u003e\u003ccode\u003e5c37747\u003c/code\u003e\u003c/a\u003e Update docker/metadata-action action to v6.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/5a3e1695ce1e2205070afc18d9a7449e0ed045d0\"\u003e\u003ccode\u003e5a3e169\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3632\"\u003e#3632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/c2500cc57e4aea85ae8e3287351538ad60a9ee00\"\u003e\u003ccode\u003ec2500cc\u003c/code\u003e\u003c/a\u003e Release: Force usage of PyPI as the index (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3616\"\u003e#3616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7f8cb6457e8d77178ae9204f9b81a516f44444ed\"\u003e\u003ccode\u003e7f8cb64\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.42 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/41bb0d24412ad97c214bd0019e602c463ae3feba\"\u003e\u003ccode\u003e41bb0d2\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.41 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.32...0.0.44\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/coderank-dev/coderank-pr/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderank-dev%2Fcoderank-pr/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4273397475","node_id":"PR_kwDOSDExC87S27kN","number":8,"state":"closed","title":"chore(deps-dev): update google-cloud-logging requirement from \u003e=3.0 to \u003e=3.15.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-16T05:26:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T05:12:32.000Z","updated_at":"2026-04-16T05:26:35.000Z","time_to_close":834,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"google-cloud-logging","old_version":"\u003e=3.0","new_version":"\u003e=3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [google-cloud-logging](https://github.com/googleapis/google-cloud-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.9.0...google-cloud-documentai-v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-02-12)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated comments for various fields and messages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\"\u003e5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/yshk-mxim/skiff-container-manager/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yshk-mxim%2Fskiff-container-manager/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"},{"uuid":"4265715668","node_id":"PR_kwDORYlKQs7SfQXJ","number":29,"state":"open","title":"build(deps): bump the production-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python","platform/backend","size/xl"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T01:39:55.000Z","updated_at":"2026-04-29T03:02:25.968Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":9,"packages":[{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"fastapi","old_version":"0.128.7","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"launchdarkly-server-sdk","old_version":"9.15.0","new_version":"9.15.1","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.28.0","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 9 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.7` | `0.135.3` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.15.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.15.0` | `9.15.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.0` | `2.28.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.44.0` |\n\n\nUpdates `cryptography` from 46.0.5 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.7 to 0.135.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f442c454f2f74c7419f83c203e6333955399528\"\u003e\u003ccode\u003e1f442c4\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f5d1577b471f389f6cdea878d40a1497fda7746\"\u003e\u003ccode\u003e8f5d157\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428452a710338334ae11043a48b06d52d9b3edba\"\u003e\u003ccode\u003e428452a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/70580da818722cce68b7a88928d67bd0f64f42c5\"\u003e\u003ccode\u003e70580da\u003c/code\u003e\u003c/a\u003e ✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15280\"\u003e#15280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ee87478d821171139264cd9cd17cbd2232934ce\"\u003e\u003ccode\u003e6ee8747\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e72c09a2abfe9e1b55eede6a297cb1847126e49\"\u003e\u003ccode\u003e3e72c09\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96df35f7a4337d612811483d8ade74f91cce2d61\"\u003e\u003ccode\u003e96df35f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c8112555bd86f21cfee8500140dca094ad26e20\"\u003e\u003ccode\u003e6c81125\u003c/code\u003e\u003c/a\u003e ⬆ Bump orjson from 3.11.7 to 3.11.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15276\"\u003e#15276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428f82c93616b52aee2fcee03484a855135c07e5\"\u003e\u003ccode\u003e428f82c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5599c59b9e7112109f04b63a58034fb95833f514\"\u003e\u003ccode\u003e5599c59\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.0 to 0.15.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15277\"\u003e#15277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.7...0.135.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.15.0 to 9.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.15.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003e9.15.1\u003c/a\u003e (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove fallback behavior when using custom data system configuration (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e60272b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003e9.15.1\u003c/a\u003e (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove fallback behavior when using custom data system configuration (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e60272b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/1c700b48ebf714f1992f3005f1385a751093a8e4\"\u003e\u003ccode\u003e1c700b4\u003c/code\u003e\u003c/a\u003e chore(main): release 9.15.1 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/bb8dd18f009fe83a2312cd874653e0ba8bea786d\"\u003e\u003ccode\u003ebb8dd18\u003c/code\u003e\u003c/a\u003e chore: Adding missing permissions to stale workflow (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/9fd4ab5cbe4aa03dba64912177e47f00d38f91b9\"\u003e\u003ccode\u003e9fd4ab5\u003c/code\u003e\u003c/a\u003e ci: implement immutable releases support with actions/attest (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/8116d2061a354e4260a045faaa4fafe8482bc7db\"\u003e\u003ccode\u003e8116d20\u003c/code\u003e\u003c/a\u003e chore: pin third-party GitHub Actions to commit SHAs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d05fccff098422f141ba31f62b97acf6b5599e38\"\u003e\u003ccode\u003ed05fccf\u003c/code\u003e\u003c/a\u003e chore: Support flag change listeners in contract tests (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e\u003ccode\u003e60272b2\u003c/code\u003e\u003c/a\u003e fix: Improve fallback behavior when using custom data system configuration (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/b0acfb2fe4833f83b2bd130a4439fa10bb491422\"\u003e\u003ccode\u003eb0acfb2\u003c/code\u003e\u003c/a\u003e chore: Update fetch-depth comment (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.0 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/30188494ea44ce67b51d9566095ec11c90e7522d\"\u003e\u003ccode\u003e3018849\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e\u003ccode\u003e32843cf\u003c/code\u003e\u003c/a\u003e fix(auth): fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/8584419cbfac152a16e601e9cd724af04da6c24f\"\u003e\u003ccode\u003e8584419\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e\u003ccode\u003e81041a4\u003c/code\u003e\u003c/a\u003e fix(postgrest): remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e\u003ccode\u003e08bdf38\u003c/code\u003e\u003c/a\u003e fix(auth): prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e\u003ccode\u003e51b86be\u003c/code\u003e\u003c/a\u003e fix(postgrest): comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c77b21a45d4fb93015554e87bcc627d58309d668\"\u003e\u003ccode\u003ec77b21a\u003c/code\u003e\u003c/a\u003e chore(deps): bump cryptography from 46.0.2 to 46.0.5 in the uv group across 1...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d528...\n\n_Description has been truncated_","html_url":"https://github.com/QAkeepitTESTorg/AutoGPT/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAkeepitTESTorg%2FAutoGPT/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"},{"uuid":"4258482150","node_id":"PR_kwDOQX9Kc87SJXBa","number":243,"state":"open","title":"chore(python)(deps): bump google-cloud-logging from 3.10.0 to 3.15.0 in /src/functions/scoring","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:30:50.000Z","updated_at":"2026-04-14T01:24:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps)","packages":[{"name":"google-cloud-logging","old_version":"3.10.0","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":"/src/functions/scoring","ecosystem":"pip"},"body":"Bumps [google-cloud-logging](https://github.com/googleapis/google-cloud-python) from 3.10.0 to 3.15.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.10.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/nakayamaryo0731/wedding_smile_catcher/pull/243","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakayamaryo0731%2Fwedding_smile_catcher/issues/243","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/243/packages"},{"uuid":"4251012630","node_id":"PR_kwDOPPRKpM7R2uL2","number":112,"state":"open","title":"build(deps): Update google-cloud-logging requirement from ^3.7.0 to ^3.15.0 in /libs/common_logging","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T03:14:43.000Z","updated_at":"2026-04-13T03:18:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"google-cloud-logging","old_version":"^3.7.0","new_version":"^3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":"/libs/common_logging","ecosystem":"pip"},"body":"Updates the requirements on [google-cloud-logging](https://github.com/googleapis/google-cloud-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.9.0...google-cloud-documentai-v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-02-12)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated comments for various fields and messages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\"\u003e5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/davidasnider/home-agent-suite/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidasnider%2Fhome-agent-suite/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"},{"uuid":"4250828438","node_id":"PR_kwDORXp-JM7R2Sh9","number":52,"state":"open","title":"chore(deps): bump the all-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:19:06.000Z","updated_at":"2026-05-25T05:03:40.109Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.29.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.41.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [google-adk](https://github.com/google/adk-python), [google-cloud-logging](https://github.com/googleapis/google-cloud-python), [google-cloud-aiplatform[adk,agent-engines]](https://github.com/googleapis/python-aiplatform), [pillow](https://github.com/python-pillow/Pillow), [pytest](https://github.com/pytest-dev/pytest), [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack), [ruff](https://github.com/astral-sh/ruff), [mypy](https://github.com/python/mypy), [codespell](https://github.com/codespell-project/codespell), [types-pyyaml](https://github.com/python/typeshed) and [types-requests](https://github.com/python/typeshed) to permit the latest version.\nUpdates `google-adk` from 1.18.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.29.0\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e fix package references (\u003ca href=\"https://github.com/google/adk-python/commit/add8e8664bd2ae9257c8b37a5e602d0c7aae7625\"\u003eadd8e86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RemoteA2AAgent deepcopy errors (\u003ca href=\"https://github.com/google/adk-python/commit/6f29775f4bf7172b1378b17856534f95b9d4eeb6\"\u003e6f29775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes for initializing RemoteA2aAgent - passing in preferred transport, protocol version, and auth headers (\u003ca href=\"https://github.com/google/adk-python/commit/0f3850f56c857dfb86c7ad8de372bcc7fe495968\"\u003e0f3850f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/d98ff2337779c69dcc07c70a9d4bec037030e1eb\"\u003e\u003ccode\u003ed98ff23\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40e050b930007402aa4684537782910912b8b3ce\"\u003e\u003ccode\u003e40e050b\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.29.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/5231\"\u003e#5231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003e\u003ccode\u003eede8a56\u003c/code\u003e\u003c/a\u003e fix: avoid load all agents in adk web server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6b1600fbf53bcf634c5fe4793f02921bc0b75125\"\u003e\u003ccode\u003e6b1600f\u003c/code\u003e\u003c/a\u003e fix(live): Handle live session resumption and GoAway signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6fd0f85191dea17b7c6b033473bd39764250265b\"\u003e\u003ccode\u003e6fd0f85\u003c/code\u003e\u003c/a\u003e fix: move BigQueryAgentAnalyticsPlugin import inside get_runner_async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e\u003ccode\u003e2074889\u003c/code\u003e\u003c/a\u003e feat: Support loading agents from Visual Builder with BigQuery-powered logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e\u003ccode\u003e9e73ab8\u003c/code\u003e\u003c/a\u003e feat(skill): Standardize skill tools and make script arguments flexible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e\u003ccode\u003e23bd95b\u003c/code\u003e\u003c/a\u003e feat: Add blacklist for shell metacharacters in BashTool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ccac461b2ab6291ecd09577ca0553833eaff71b9\"\u003e\u003ccode\u003eccac461\u003c/code\u003e\u003c/a\u003e docs(adk): clean up remote triggers README to remove internal references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/e2d970ff9428a76ea21db6ec951ddf7af3a986ad\"\u003e\u003ccode\u003ee2d970f\u003c/code\u003e\u003c/a\u003e feat: add ADK trigger endpoints to ADK Web Server\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-aiplatform[adk,agent-engines]` to 1.147.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/releases\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.147.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.145.0...v1.146.0\"\u003e1.146.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eto_bigframes\u003c/code\u003e has been removed from the datasets module and moved into the \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. Instead of \u003ccode\u003edataframe = client.datasets.to_bigframes(multimodal_dataset=multimodal_dataset)\u003c/code\u003e, use \u003ccode\u003edataframe = multimodal_dataset.to_bigframes()\u003c/code\u003e to create a BigFrame instance from a multimodal dataset.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd consolidation customization to Memory Bank (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8948c4dfcc65b73ea579b93f8c36baa65817f25\"\u003ea8948c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for custom result parsing in LLM-based evaluation metrics (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/3e0ddff2f5c306d601bf325618b9136f7713ff68\"\u003e3e0ddff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals) - add core data models and code-gen mapping for auto-loss analysis (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/09794ba83746377b1a94ed00f7c41f6b9d647cd6\"\u003e09794ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Apply default user persona 'Evaluator' in multi-turn agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/7002dc5452032d3189eabae9b0952decd73fb8eb\"\u003e7002dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn run_query_job, rename gcs_bucket to gcs_uri and allow the case that user sets the filename for the output. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/f302d1f99b79b862a61a41c729ae56a22307bf11\"\u003ef302d1f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass state from first bidi_stream_query request to async_create_session (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/37b5a0f796984e3af69f8036ca235e096d64e7d1\"\u003e37b5a0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Move \u003ccode\u003eto_bigframes\u003c/code\u003e method to \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/6874b8db7adfa4022972e0eba2c3ccaffd523cf2\"\u003e6874b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease 1.146.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/aab457dcf8f0552b0e378c5b4d693e4aa8a2e2f1\"\u003eaab457d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.144.0...v1.145.0\"\u003e1.145.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4c28b3440ee42cb6f673d023bea2d8858f31636a\"\u003e\u003ccode\u003e4c28b34\u003c/code\u003e\u003c/a\u003e chore(main): release 1.147.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-aiplatform/issues/6558\"\u003e#6558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e\u003ccode\u003e2f2a211\u003c/code\u003e\u003c/a\u003e feat: add the delete method for the Agent Engine Task Store Service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003e\u003ccode\u003ee2e81c9\u003c/code\u003e\u003c/a\u003e feat: GenAI Client(evals):  Route gemini-3 model traffic to global region in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e\u003ccode\u003e4a11370\u003c/code\u003e\u003c/a\u003e chore: release 1.147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4d7a15fd85cf8529b649b88239e504e3cafc7b18\"\u003e\u003ccode\u003e4d7a15f\u003c/code\u003e\u003c/a\u003e chore: remove unused kokoro configs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0653ff92f45ef47192582d0eea569d28e0e3b30b\"\u003e\u003ccode\u003e0653ff9\u003c/code\u003e\u003c/a\u003e chore: update SDK serialization logic within response handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003e\u003ccode\u003ebd4983b\u003c/code\u003e\u003c/a\u003e fix: Add SDK workaround for double-wrapped Any response in async_retrieve_con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003e\u003ccode\u003ea196cda\u003c/code\u003e\u003c/a\u003e feat: Add system_labels parameter to Model Garden deploy methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e\u003ccode\u003e0e5037d\u003c/code\u003e\u003c/a\u003e feat: GenAI SDK client(multimodal) - Add single_turn_template helper to Gemin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/8016cb6cdbf216ed9b9a8f01e2a37ec1d626ac44\"\u003e\u003ccode\u003e8016cb6\u003c/code\u003e\u003c/a\u003e chore: Update the discoverydoc in v1beta1 for agent engine related changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.147.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Update BQ analytics table name to agent_events by \u003ca href=\"https://github.com/Nannan-Su\"\u003e\u003ccode\u003e@​Nannan-Su\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/924\"\u003eGoogleCloudPlatform/agent-starter-pack#924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: change default region from us-central1 to us-west1 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/936\"\u003eGoogleCloudPlatform/agent-starter-pack#936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.41.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/937\"\u003eGoogleCloudPlatform/agent-starter-pack#937\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.1...v0.41.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.1...v0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.40.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add adk-py@ shortcut for google/adk-python contributing samples by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/918\"\u003eGoogleCloudPlatform/agent-starter-pack#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use valid model name for Vertex AI connectivity check by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/919\"\u003eGoogleCloudPlatform/agent-starter-pack#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.1 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/920\"\u003eGoogleCloudPlatform/agent-starter-pack#920\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.0...v0.40.1\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.0...v0.40.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: use treeless sparse checkout for remote template cloning by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/899\"\u003eGoogleCloudPlatform/agent-starter-pack#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/904\"\u003eGoogleCloudPlatform/agent-starter-pack#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: filter Gemini Enterprise apps by \u003ccode\u003eappType\u003c/code\u003e in \u003ccode\u003elist_gemini_enterprise_apps\u003c/code\u003e function by \u003ca href=\"https://github.com/holtskinner\"\u003e\u003ccode\u003e@​holtskinner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/912\"\u003eGoogleCloudPlatform/agent-starter-pack#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: regenerate uv lock files by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/906\"\u003eGoogleCloudPlatform/agent-starter-pack#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: revert version and exclude service_outputs.tf for adk_live by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/915\"\u003eGoogleCloudPlatform/agent-starter-pack#915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/916\"\u003eGoogleCloudPlatform/agent-starter-pack#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holtskinner\"\u003e\u003ccode\u003e@​holtskinner\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/912\"\u003eGoogleCloudPlatform/agent-starter-pack#912\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.6...v0.40.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.6...v0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.39.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(cli): honor bq_analytics config in create command by \u003ca href=\"https://github.com/Nannan-Su\"\u003e\u003ccode\u003e@​Nannan-Su\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/881\"\u003eGoogleCloudPlatform/agent-starter-pack#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve ruff linting errors across tests and templates by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/885\"\u003eGoogleCloudPlatform/agent-starter-pack#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cloudbuild invalid argument for gke by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/887\"\u003eGoogleCloudPlatform/agent-starter-pack#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve GKE e2e issues for Go/TS agents and upgrade gemini by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/889\"\u003eGoogleCloudPlatform/agent-starter-pack#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: langgraph deployment timeout issue by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/891\"\u003eGoogleCloudPlatform/agent-starter-pack#891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.5 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/893\"\u003eGoogleCloudPlatform/agent-starter-pack#893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove obsolete SDK version check in register-gemini-enterprise by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/897\"\u003eGoogleCloudPlatform/agent-starter-pack#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.6 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/898\"\u003eGoogleCloudPlatform/agent-starter-pack#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.4...v0.39.6\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.4...v0.39.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.39.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: inject datastore env vars in GKE CI/CD pipelines and update probes by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/877\"\u003eGoogleCloudPlatform/agent-starter-pack#877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: safe incremental ingestion with create-before-delete strategy by \u003ca href=\"https://github.com/lspataroG\"\u003e\u003ccode\u003e@​lspataroG\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/878\"\u003eGoogleCloudPlatform/agent-starter-pack#878\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/eb55be129538de708f25f2cce49cf2f97d2da4d5\"\u003e\u003ccode\u003eeb55be1\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.41.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/00acdf8922a46d6a796415629fc368ed13dbd978\"\u003e\u003ccode\u003e00acdf8\u003c/code\u003e\u003c/a\u003e chore: change default region from us-central1 to us-west1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/746378ba9871b0d12f54565f47a8e27f2d318784\"\u003e\u003ccode\u003e746378b\u003c/code\u003e\u003c/a\u003e docs: Update BQ analytics table name to agent_events (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/ce1d182ff82368ebde1e10bc9e21a5bf7b3add51\"\u003e\u003ccode\u003ece1d182\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.40.1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/4859b9655cd04b02a939b7c5c7db323d4f3f4844\"\u003e\u003ccode\u003e4859b96\u003c/code\u003e\u003c/a\u003e fix: use valid model name for Vertex AI connectivity check (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/12a447f2b06b93c90710a509dfb2ef34c6a2d3f1\"\u003e\u003ccode\u003e12a447f\u003c/code\u003e\u003c/a\u003e feat: add adk-py@ shortcut for google/adk-python contributing samples (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/07ab369fe718fe27a3b885b4c23c74e95d6d9a11\"\u003e\u003ccode\u003e07ab369\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.40.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/20d4fca1d037e6f2fe261aa86221374853b6c340\"\u003e\u003ccode\u003e20d4fca\u003c/code\u003e\u003c/a\u003e fix: revert version and exclude service_outputs.tf for adk_live (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/7e98de930c7622b9d261907ac1ab16db9118d76c\"\u003e\u003ccode\u003e7e98de9\u003c/code\u003e\u003c/a\u003e chore: regenerate uv lock files (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/0e622d972d081dd8829bddea1587e56f268a4fd5\"\u003e\u003ccode\u003e0e622d9\u003c/code\u003e\u003c/a\u003e feat: filter Gemini Enterprise apps by \u003ccode\u003eappType\u003c/code\u003e in `list_gemini_enterprise_a...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extens...\n\n_Description has been truncated_","html_url":"https://github.com/gsimeon/adk-samples/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"},{"uuid":"4250820850","node_id":"PR_kwDOQ3KMMs7R2Rb6","number":12,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/image-scoring with 12 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:17:02.000Z","updated_at":"2026-04-13T02:17:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":12,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.29.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"}],"path":"/python/agents/image-scoring","ecosystem":"pip"},"body":"Updates the requirements on [google-adk](https://github.com/google/adk-python), [google-cloud-logging](https://github.com/googleapis/google-cloud-python), [google-cloud-aiplatform[adk,agent-engines]](https://github.com/googleapis/python-aiplatform), [pillow](https://github.com/python-pillow/Pillow), [ruff](https://github.com/astral-sh/ruff), [mypy](https://github.com/python/mypy), [codespell](https://github.com/codespell-project/codespell), [types-pyyaml](https://github.com/python/typeshed), [types-requests](https://github.com/python/typeshed), [pytest](https://github.com/pytest-dev/pytest), [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) and [uv-build](https://github.com/astral-sh/uv) to permit the latest version.\nUpdates `google-adk` from 1.18.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.29.0\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e fix package references (\u003ca href=\"https://github.com/google/adk-python/commit/add8e8664bd2ae9257c8b37a5e602d0c7aae7625\"\u003eadd8e86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RemoteA2AAgent deepcopy errors (\u003ca href=\"https://github.com/google/adk-python/commit/6f29775f4bf7172b1378b17856534f95b9d4eeb6\"\u003e6f29775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes for initializing RemoteA2aAgent - passing in preferred transport, protocol version, and auth headers (\u003ca href=\"https://github.com/google/adk-python/commit/0f3850f56c857dfb86c7ad8de372bcc7fe495968\"\u003e0f3850f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/d98ff2337779c69dcc07c70a9d4bec037030e1eb\"\u003e\u003ccode\u003ed98ff23\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40e050b930007402aa4684537782910912b8b3ce\"\u003e\u003ccode\u003e40e050b\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.29.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/5231\"\u003e#5231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003e\u003ccode\u003eede8a56\u003c/code\u003e\u003c/a\u003e fix: avoid load all agents in adk web server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6b1600fbf53bcf634c5fe4793f02921bc0b75125\"\u003e\u003ccode\u003e6b1600f\u003c/code\u003e\u003c/a\u003e fix(live): Handle live session resumption and GoAway signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6fd0f85191dea17b7c6b033473bd39764250265b\"\u003e\u003ccode\u003e6fd0f85\u003c/code\u003e\u003c/a\u003e fix: move BigQueryAgentAnalyticsPlugin import inside get_runner_async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e\u003ccode\u003e2074889\u003c/code\u003e\u003c/a\u003e feat: Support loading agents from Visual Builder with BigQuery-powered logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e\u003ccode\u003e9e73ab8\u003c/code\u003e\u003c/a\u003e feat(skill): Standardize skill tools and make script arguments flexible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e\u003ccode\u003e23bd95b\u003c/code\u003e\u003c/a\u003e feat: Add blacklist for shell metacharacters in BashTool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ccac461b2ab6291ecd09577ca0553833eaff71b9\"\u003e\u003ccode\u003eccac461\u003c/code\u003e\u003c/a\u003e docs(adk): clean up remote triggers README to remove internal references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/e2d970ff9428a76ea21db6ec951ddf7af3a986ad\"\u003e\u003ccode\u003ee2d970f\u003c/code\u003e\u003c/a\u003e feat: add ADK trigger endpoints to ADK Web Server\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-aiplatform[adk,agent-engines]` to 1.147.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/releases\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.147.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.145.0...v1.146.0\"\u003e1.146.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eto_bigframes\u003c/code\u003e has been removed from the datasets module and moved into the \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. Instead of \u003ccode\u003edataframe = client.datasets.to_bigframes(multimodal_dataset=multimodal_dataset)\u003c/code\u003e, use \u003ccode\u003edataframe = multimodal_dataset.to_bigframes()\u003c/code\u003e to create a BigFrame instance from a multimodal dataset.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd consolidation customization to Memory Bank (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8948c4dfcc65b73ea579b93f8c36baa65817f25\"\u003ea8948c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for custom result parsing in LLM-based evaluation metrics (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/3e0ddff2f5c306d601bf325618b9136f7713ff68\"\u003e3e0ddff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals) - add core data models and code-gen mapping for auto-loss analysis (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/09794ba83746377b1a94ed00f7c41f6b9d647cd6\"\u003e09794ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Apply default user persona 'Evaluator' in multi-turn agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/7002dc5452032d3189eabae9b0952decd73fb8eb\"\u003e7002dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn run_query_job, rename gcs_bucket to gcs_uri and allow the case that user sets the filename for the output. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/f302d1f99b79b862a61a41c729ae56a22307bf11\"\u003ef302d1f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass state from first bidi_stream_query request to async_create_session (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/37b5a0f796984e3af69f8036ca235e096d64e7d1\"\u003e37b5a0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Move \u003ccode\u003eto_bigframes\u003c/code\u003e method to \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/6874b8db7adfa4022972e0eba2c3ccaffd523cf2\"\u003e6874b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease 1.146.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/aab457dcf8f0552b0e378c5b4d693e4aa8a2e2f1\"\u003eaab457d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.144.0...v1.145.0\"\u003e1.145.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4c28b3440ee42cb6f673d023bea2d8858f31636a\"\u003e\u003ccode\u003e4c28b34\u003c/code\u003e\u003c/a\u003e chore(main): release 1.147.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-aiplatform/issues/6558\"\u003e#6558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e\u003ccode\u003e2f2a211\u003c/code\u003e\u003c/a\u003e feat: add the delete method for the Agent Engine Task Store Service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003e\u003ccode\u003ee2e81c9\u003c/code\u003e\u003c/a\u003e feat: GenAI Client(evals):  Route gemini-3 model traffic to global region in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e\u003ccode\u003e4a11370\u003c/code\u003e\u003c/a\u003e chore: release 1.147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4d7a15fd85cf8529b649b88239e504e3cafc7b18\"\u003e\u003ccode\u003e4d7a15f\u003c/code\u003e\u003c/a\u003e chore: remove unused kokoro configs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0653ff92f45ef47192582d0eea569d28e0e3b30b\"\u003e\u003ccode\u003e0653ff9\u003c/code\u003e\u003c/a\u003e chore: update SDK serialization logic within response handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003e\u003ccode\u003ebd4983b\u003c/code\u003e\u003c/a\u003e fix: Add SDK workaround for double-wrapped Any response in async_retrieve_con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003e\u003ccode\u003ea196cda\u003c/code\u003e\u003c/a\u003e feat: Add system_labels parameter to Model Garden deploy methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e\u003ccode\u003e0e5037d\u003c/code\u003e\u003c/a\u003e feat: GenAI SDK client(multimodal) - Add single_turn_template helper to Gemin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/8016cb6cdbf216ed9b9a8f01e2a37ec1d626ac44\"\u003e\u003ccode\u003e8016cb6\u003c/code\u003e\u003c/a\u003e chore: Update the discoverydoc in v1beta1 for agent engine related changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.147.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 1.20\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.20.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePlanned Changes to Defaults and Flags in Mypy 2.0\u003c/h3\u003e\n\u003cp\u003eAs a reminder, we are planning to enable \u003ccode\u003e--local-partial-types\u003c/code\u003e by default in mypy 2.0, which\nwill likely be the next feature release. This will often require at least minor code changes. This\noption is implicitly enabled by mypy daemon, so this makes the behavior of daemon and non-daemon\nmodes consistent.\u003c/p\u003e\n\u003cp\u003eNote that this release improves the compatibility of \u003ccode\u003e--local-partial-types\u003c/code\u003e significantly to\nmake the switch easier (see below for more).\u003c/p\u003e\n\u003cp\u003eThis can also be configured in a mypy configuration file (use \u003ccode\u003eFalse\u003c/code\u003e to disable):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003elocal_partial_types = True\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-local-partial-types\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe will also enable \u003ccode\u003e--strict-bytes\u003c/code\u003e by default in mypy 2.0. This usually requires at most\nminor code changes to adopt. For more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict-bytes\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode\u003e--allow-redefinition-new\u003c/code\u003e will be renamed to \u003ccode\u003e--allow-redefinition\u003c/code\u003e. If you want\nto continue using the older \u003ccode\u003e--allow-redefinition\u003c/code\u003e semantics which are less flexible (e.g.\nlimited support for conditional redefinitions), you can switch to \u003ccode\u003e--allow-redefinition-old\u003c/code\u003e,\nwhich is currently supported as an alias to the legacy \u003ccode\u003e--allow-redefinition\u003c/code\u003e behavior.\nTo use \u003ccode\u003e--allow-redefinition\u003c/code\u003e in the upcoming mypy 2.0, you can't use \u003ccode\u003e--no-local-partial-types\u003c/code\u003e.\nFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-allow-redefinition-new\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBetter Type Narrowing\u003c/h3\u003e\n\u003cp\u003eMypy's implementation of narrowing has been substantially reworked. Mypy will now narrow more\naggressively, more consistently, and more correctly. In particular, you are likely to notice new\nnarrowing behavior in equality expressions (\u003ccode\u003e==\u003c/code\u003e), containment expressions (\u003ccode\u003ein\u003c/code\u003e),\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/770d3ca4997032dc3a1c4f0b468e9f58e8f38505\"\u003e\u003ccode\u003e770d3ca\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4738ffafc56a0d175cba06e893ffa62e756fc7e0\"\u003e\u003ccode\u003e4738ffa\u003c/code\u003e\u003c/a\u003e Changelog updates for 1.20 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21109\"\u003e#21109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b4f07a717c3a239a9c77808c5550fff5f2638c96\"\u003e\u003ccode\u003eb4f07a7\u003c/code\u003e\u003c/a\u003e Use 'native-parser' instead of 'native-parse' for optional dependency (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21115\"\u003e#21115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7bec7b7f791790b1c925cdcc573ced564fbbf065\"\u003e\u003ccode\u003e7bec7b7\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt and librt.base64 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21114\"\u003e#21114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c4825969450385cf3eb91a4fc02f273b369bc301\"\u003e\u003ccode\u003ec482596\u003c/code\u003e\u003c/a\u003e --allow-redefinition-new is no longer experimental (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21110\"\u003e#21110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c916ca3fa79d9324dcbe130b18e24e2b5e2d1eb5\"\u003e\u003ccode\u003ec916ca3\u003c/code\u003e\u003c/a\u003e sdist: include \u003ccode\u003emisc/{diff-cache,apply-cache-diff}.py\u003c/code\u003e for `mypy/test/test_di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b137e4ed41d6178f6dbd0e609db56b8c1ad5384a\"\u003e\u003ccode\u003eb137e4e\u003c/code\u003e\u003c/a\u003e [mypyc] Speed up native-to-native imports within the same group (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/978b711c21adadf5dae4db80127ddf270d79af5f\"\u003e\u003ccode\u003e978b711\u003c/code\u003e\u003c/a\u003e [mypyc] Fix range loop variable off-by-one after loop exit (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21098\"\u003e#21098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/67ada30918d1a32e1935e9ac468113e0aa002b79\"\u003e\u003ccode\u003e67ada30\u003c/code\u003e\u003c/a\u003e [stubtest] Check runtime availability of private types not marked `@type_chec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/bdef6ef8734af07cab1bf0acadc1d8ab9add93c3\"\u003e\u003ccode\u003ebdef6ef\u003c/code\u003e\u003c/a\u003e librt cache tests: build respecting MYPY_TEST_PREFIX (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href...\n\n_Description has been truncated_","html_url":"https://github.com/junglebabydev/google-adk/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/junglebabydev%2Fgoogle-adk/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"},{"uuid":"4207719088","node_id":"PR_kwDOQFJwNM7QDQV8","number":4,"state":"closed","title":"chore(deps): bump google-cloud-logging from 3.12.1 to 3.15.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-05T15:13:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-05T14:41:08.000Z","updated_at":"2026-04-05T15:13:09.000Z","time_to_close":1920,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [google-cloud-logging](https://github.com/googleapis/google-cloud-python) from 3.12.1 to 3.15.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google-cloud-logging\u0026package-manager=uv\u0026previous-version=3.12.1\u0026new-version=3.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ssfuno/python-template/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssfuno%2Fpython-template/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"},{"uuid":"4092363377","node_id":"PR_kwDOQ54Gg87LZ5jo","number":10,"state":"closed","title":"Bump the uv-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-01T02:51:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T02:50:17.000Z","updated_at":"2026-04-01T02:51:08.000Z","time_to_close":1209650,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv-dependencies","update_count":17,"packages":[{"name":"google-adk","old_version":"1.21.0","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-instrumentation-google-genai","old_version":"0.5b0","new_version":"0.7b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"gcsfs","old_version":"2025.12.0","new_version":"2026.2.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"debugpy","old_version":"1.8.19","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"greenlet","old_version":"3.3.0","new_version":"3.3.2","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"poethepoet","old_version":"0.40.0","new_version":"0.42.1","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ruff","old_version":"0.14.10","new_version":"0.15.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tombi","old_version":"0.7.14","new_version":"0.9.4","repository_url":"https://github.com/tombi-toml/tombi"},{"name":"uv","old_version":"0.9.21","new_version":"0.10.9","repository_url":"https://github.com/astral-sh/uv"},{"name":"wemake-python-styleguide","old_version":"1.5.0","new_version":"1.6.1","repository_url":"https://github.com/wemake-services/wemake-python-styleguide"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.21.0` | `1.26.0` |\n| [opentelemetry-instrumentation-google-genai](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.5b0` | `0.7b0` |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.12.0` | `2026.2.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.19` | `1.8.20` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.0` | `3.3.2` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.40.0` | `0.42.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.15.5` |\n| [tombi](https://github.com/tombi-toml/tombi) | `0.7.14` | `0.9.4` |\n| [uv](https://github.com/astral-sh/uv) | `0.9.21` | `0.10.9` |\n| [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) | `1.5.0` | `1.6.1` |\n| [codespell](https://github.com/codespell-project/codespell) | `2.4.1` | `2.4.2` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\n\nUpdates `google-adk` from 1.21.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.21.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-google-genai` from 0.5b0 to 0.7b0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/releases\"\u003eopentelemetry-instrumentation-google-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-google-genai 0.7b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug in how tokens are counted when using the streaming \u003ccode\u003egenerateContent\u003c/code\u003e method.  (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4152\"\u003e#4152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute to \u003ccode\u003egen_ai.client.inference.operation.details\u003c/code\u003e log event (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4142\"\u003e#4142\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.tool_definitions\u003c/code\u003e to completion hook (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4181\"\u003e#4181\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-google-genai 0.6b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the addition of custom attributes to the \u003ccode\u003egenerate_content {model.name}\u003c/code\u003e span via the Context API. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3961\"\u003e#3961\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnable the addition of custom attributes to \u003ccode\u003egen_ai.client.inference.operation.details\u003c/code\u003e log events (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4103\"\u003e#4103\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-google-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asgi\u003c/code\u003e: Add exemplars for \u003ccode\u003ehttp.server.request.duration\u003c/code\u003e and \u003ccode\u003ehttp.server.duration\u003c/code\u003e metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3739\"\u003e#3739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-wsgi\u003c/code\u003e: Add exemplars for \u003ccode\u003ehttp.server.request.duration\u003c/code\u003e and \u003ccode\u003ehttp.server.duration\u003c/code\u003e metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3739\"\u003e#3739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiohttp-client\u003c/code\u003e: add ability to capture custom headers\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-requests\u003c/code\u003e: add ability to capture custom headers\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gcsfs` from 2025.12.0 to 2026.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/427354db3d4833cc7623ce359c398610f6601219\"\u003e\u003ccode\u003e427354d\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/757\"\u003e#757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/6e4efb8ea553ee5d92b295bfe8a359f79b550358\"\u003e\u003ccode\u003e6e4efb8\u003c/code\u003e\u003c/a\u003e Remove cache_type option from ExtendedGCSFSFileSystem._open (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9f20436237d8f9ffe3ae6ad7fe0181c23ad905d6\"\u003e\u003ccode\u003e9f20436\u003c/code\u003e\u003c/a\u003e Fix for recent breaking changes introduced in python sdk  (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/98af30083031c22c7781934a8263f3b5b778fc64\"\u003e\u003ccode\u003e98af300\u003c/code\u003e\u003c/a\u003e Adds test coverage check in repo (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/68\"\u003e#68\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/752\"\u003e#752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/fcefacb3401f72cf5cc3ff4ae1392d7464c10a6e\"\u003e\u003ccode\u003efcefacb\u003c/code\u003e\u003c/a\u003e Add the new readahead_v2 cache (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e0c0a9fe1c4190aaf71200eb9fa0958d74a267f7\"\u003e\u003ccode\u003ee0c0a9f\u003c/code\u003e\u003c/a\u003e rm override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/73c37dcd4370591dca143851454ba7d13960371c\"\u003e\u003ccode\u003e73c37dc\u003c/code\u003e\u003c/a\u003e Ignore benchmark folders (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/a586d0b70ca0400eca4164ea9962fe2bd30a2a73\"\u003e\u003ccode\u003ea586d0b\u003c/code\u003e\u003c/a\u003e adds info() integration tests for HNS (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/57baa54db055dca11f061ce0c471c1fb18863ba8\"\u003e\u003ccode\u003e57baa54\u003c/code\u003e\u003c/a\u003e change errors to warning in ZonalFile commit (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b43958088bf5ccfe5552e79cfe6f1f8570b848c3\"\u003e\u003ccode\u003eb439580\u003c/code\u003e\u003c/a\u003e find Method Implementation for HNS Buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.12.0...2026.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e1.4.0 (2026-01-08)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR :pr:\u003ccode\u003e921\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e1.3.0 (2025-08-01)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e,\n:pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e1.2.2 (2024-09-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requires_for_build\u003c/code\u003e's static types (PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release (PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e (PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e (PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs (PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests (PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.19 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.19...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.3.0 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2026-02-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix a crash on Python 3.10 if there are active greenlets during\ninterpreter shutdown. See \u003ccode\u003ePR 495 \u0026lt;https://github.com/python-greenlet/greenlet/pull/495\u0026gt;\u003c/code\u003e_ by Nicolas\nBouvrette.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel.\u003c/li\u003e\n\u003cli\u003eSwitch from Appveyor for Windows to Github Actions.\u003c/li\u003e\n\u003cli\u003eFix compilation on MIPS with GCC 15 and binutils 2.45. See \u003ccode\u003ePR 487 by Rosen Penev \u0026lt;https://github.com/python-greenlet/greenlet/pull/487\u0026gt;\u003c/code\u003e_. Note that\nthis is not a platform tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eMove most project metadata into the static \u003ccode\u003epyproject.toml\u003c/code\u003e file.\nThis updates licensing information to use the modern\n\u003ccode\u003eLicense-Expression\u003c/code\u003e field. See \u003ccode\u003ePR 480 by mrbean-bremen \u0026lt;https://github.com/python-greenlet/greenlet/pull/480/\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/a62f331fd74d0d17ab64b509ad9fb685d5cfeaec\"\u003e\u003ccode\u003ea62f331\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c73a2c6d055b8328e204b9b0b7597d3c92b3ad18\"\u003e\u003ccode\u003ec73a2c6\u003c/code\u003e\u003c/a\u003e Pull in change note for 3.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/4eb47c89d1936f15055119f3452e2a92cfb77653\"\u003e\u003ccode\u003e4eb47c8\u003c/code\u003e\u003c/a\u003e test_untracked_memory_doesnt_increase_unfinished_thread_dealloc_in_main: A ch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/53ac405e7ea428dce99317765dd7ef3e68d59f60\"\u003e\u003ccode\u003e53ac405\u003c/code\u003e\u003c/a\u003e Add change note for \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/495\"\u003e#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b85158f65488e54f6c63bc8aa0ea4a8c0b7094\"\u003e\u003ccode\u003ed5b8515\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/495\"\u003e#495\u003c/a\u003e from nbouvrette/fix/safe-finalization-py310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e0625d78d3b4dc76756fb6a506a02ef6a98b6fb3\"\u003e\u003ccode\u003ee0625d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/494\"\u003e#494\u003c/a\u003e from daniel7an/fix/issue-492-spdx-license\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/292e126fb3ee3bf4a639100d5791fd76dc560eeb\"\u003e\u003ccode\u003e292e126\u003c/code\u003e\u003c/a\u003e Fix SIGSEGV/SIGABRT during interpreter shutdown on Python \u0026lt; 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/77e65f089aae346e363dc2fa7bd78e00f83104a5\"\u003e\u003ccode\u003e77e65f0\u003c/code\u003e\u003c/a\u003e Fix SPDX license identifier: Python-2.0 → PSF-2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4606efcf80c7fc81473cb173b9d6745572de090\"\u003e\u003ccode\u003ed4606ef\u003c/code\u003e\u003c/a\u003e leak tests: do a better job skipping if uss isn't available. Fixes \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/74a11b86b495d35b60967565319c36e648dfd7e5\"\u003e\u003ccode\u003e74a11b8\u003c/code\u003e\u003c/a\u003e Back to development: 3.3.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.3.0...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` from 0.40.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd exact option for uv executor by \u003ca href=\"https://github.com/charlesbmi\"\u003e\u003ccode\u003e@​charlesbmi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/365\"\u003enat-n/poethepoet#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCompletion script fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate zsh completion task options from global options by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/364\"\u003enat-n/poethepoet#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion script edge case handling by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/366\"\u003enat-n/poethepoet#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the completion script fixes\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charlesbmi\"\u003e\u003ccode\u003e@​charlesbmi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/365\"\u003enat-n/poethepoet#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.42.0...v0.42.1\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.42.0...v0.42.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBetter zsh completion caaching with max hits per cache and proper TTL before refresh by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/360\"\u003enat-n/poethepoet#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOfficially Support Python 3.14 by \u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd completion script for PowerShell by \u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the enhancements for zsh or PowerShell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.41.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFull shell completions for global and task arguments in zsh and bash by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/355\"\u003enat-n/poethepoet#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.40.0...v0.41.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.40.0...v0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the revamped tab completion covering task arguments.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/49792724526b9e740f3c76a6ece2e1039d76b8ea\"\u003e\u003ccode\u003e4979272\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/1f40807b1791d5a71d0952eb0ad0da70cea4cfc2\"\u003e\u003ccode\u003e1f40807\u003c/code\u003e\u003c/a\u003e fix: completion script edge case handling (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/c67a8586791f2bbcb7d9f85f024f1b77d949734e\"\u003e\u003ccode\u003ec67a858\u003c/code\u003e\u003c/a\u003e feat(uv): add exact option for uv executor (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/8f4d5c4c4735645275ccbe367bb56ab728c5b4ee\"\u003e\u003ccode\u003e8f4d5c4\u003c/code\u003e\u003c/a\u003e fix: isolate zsh completion task options from global options (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/b1589da0a5f00f5a2a4d2deef1dbdf368d4e0697\"\u003e\u003ccode\u003eb1589da\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethe...\n\n_Description has been truncated_","html_url":"https://github.com/donvargax/adk-ddd/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/donvargax%2Fadk-ddd/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"4084043450","node_id":"PR_kwDOJKSTjM7LAG4-","number":12441,"state":"open","title":"chore(libs/deps): bump the production-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["size/l","dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-16T18:17:22.000Z","updated_at":"2026-03-24T01:56:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(libs/deps): bump","group_name":"production-dependencies","update_count":6,"packages":[{"name":"fastapi","old_version":"0.128.7","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.28.0","new_version":"2.28.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the production-dependencies group with 6 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.7` | `0.135.1` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.0` | `2.28.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.42.0` |\n\n\nUpdates `fastapi` from 0.128.7 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.7...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.0 to 2.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/30188494ea44ce67b51d9566095ec11c90e7522d\"\u003e\u003ccode\u003e3018849\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e\u003ccode\u003e32843cf\u003c/code\u003e\u003c/a\u003e fix(auth): fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/8584419cbfac152a16e601e9cd724af04da6c24f\"\u003e\u003ccode\u003e8584419\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e\u003ccode\u003e81041a4\u003c/code\u003e\u003c/a\u003e fix(postgrest): remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e\u003ccode\u003e08bdf38\u003c/code\u003e\u003c/a\u003e fix(auth): prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e\u003ccode\u003e51b86be\u003c/code\u003e\u003c/a\u003e fix(postgrest): comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c77b21a45d4fb93015554e87bcc627d58309d668\"\u003e\u003ccode\u003ec77b21a\u003c/code\u003e\u003c/a\u003e chore(deps): bump cryptography from 46.0.2 to 46.0.5 in the uv group across 1...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/02bed6f8c38e74f684bb0e572977a9bfdc1f6fea\"\u003e\u003ccode\u003e02bed6f\u003c/code\u003e\u003c/a\u003e Version 0.42.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d8f25013161d8206e129e39bf48432d3a85e1744\"\u003e\u003ccode\u003ed8f2501\u003c/code\u003e\u003c/a\u003e chore: pre-create Config objects in benchmarks to measure protocol hot paths ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9dbb7836bb0fdb446d083ecd8dc5a2a95bb96b98\"\u003e\u003ccode\u003e9dbb783\u003c/code\u003e\u003c/a\u003e Add WebSocket protocol benchmarks for wsproto and websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2849\"\u003e#2849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b3c69da8c1a36e1834e614abe38243671e156077\"\u003e\u003ccode\u003eb3c69da\u003c/code\u003e\u003c/a\u003e Use bytearray for request body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3f3ebee20f46504a3f7279dd72f9c24ce9070b11\"\u003e\u003ccode\u003e3f3ebee\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003epytest-xdist\u003c/code\u003e for CodSpeed benchmark runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d072de754f825bee4710363dd49d41efd5285dcc\"\u003e\u003ccode\u003ed072de7\u003c/code\u003e\u003c/a\u003e Add fragmented body benchmark for chunked body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2846\"\u003e#2846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e300c2c75d71bea6f8d1799ca6f182f1e5583aaa\"\u003e\u003ccode\u003ee300c2c\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for HTTP protocol hot paths (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1fa697651bacf10d72f74de104ead814ce6fcdc0\"\u003e\u003ccode\u003e1fa6976\u003c/code\u003e\u003c/a\u003e Escape brackets and backslash in httptools HEADER_RE regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/59ec1de7a4f07afbd139812f033f3af8b784de74\"\u003e\u003ccode\u003e59ec1de\u003c/code\u003e\u003c/a\u003e Fix multiple issues in websockets sansio implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2fc0efcdd958abd3adbe6ea19682408d6b2e1b18\"\u003e\u003ccode\u003e2fc0efc\u003c/code\u003e\u003c/a\u003e Clarify Windows asyncio event loop selection in docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2843\"\u003e#2843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Significant-Gravitas/AutoGPT/pull/12441","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Significant-Gravitas%2FAutoGPT/issues/12441","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12441/packages"},{"uuid":"4044667682","node_id":"PR_kwDOPCK6hs7JBoRT","number":115,"state":"closed","title":"build(deps): bump the production-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","size/l","python","platform/backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T10:59:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-09T10:12:33.000Z","updated_at":"2026-04-20T10:59:30.000Z","time_to_close":3631615,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":7,"packages":[{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.27.2","new_version":"2.28.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"launchdarkly-server-sdk","old_version":"9.14.1","new_version":"9.15.0","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 7 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.27.2` | `2.28.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.14.1` | `9.15.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.41.0` |\n\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.27.2 to 2.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.3...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e259f4ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add missing is_sso_user, deleted_at, banned_until to User model (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1375\"\u003e#1375\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e7f84a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e0923314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use pop with default in _handle_message to prevent KeyError (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1388\"\u003e#1388\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003ebaea26f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage3:\u003c/strong\u003e replace print() with warnings.warn() for trailing slash notice (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1380\"\u003e#1380\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e50b099f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.3...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e259f4ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add missing is_sso_user, deleted_at, banned_until to User model (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1375\"\u003e#1375\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e7f84a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e0923314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use pop with default in _handle_message to prevent KeyError (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1388\"\u003e#1388\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003ebaea26f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage3:\u003c/strong\u003e replace print() with warnings.warn() for trailing slash notice (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1380\"\u003e#1380\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e50b099f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/59e338400b4455b81ce7aebc2a8d35c13f1dec0c\"\u003e\u003ccode\u003e59e3384\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.0 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1378\"\u003e#1378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003e\u003ccode\u003ebaea26f\u003c/code\u003e\u003c/a\u003e fix(realtime): use pop with default in _handle_message to prevent KeyError (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e\u003ccode\u003e259f4ad\u003c/code\u003e\u003c/a\u003e feat(storage): add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e\u003ccode\u003e50b099f\u003c/code\u003e\u003c/a\u003e fix(storage3): replace print() with warnings.warn() for trailing slash notice...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e\u003ccode\u003e0923314\u003c/code\u003e\u003c/a\u003e fix(realtime): ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e\u003ccode\u003e7f84a62\u003c/code\u003e\u003c/a\u003e fix(auth): add missing is_sso_user, deleted_at, banned_until to User model (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/57dd6e21958358a2373520aeb7fb20812dcd5c9b\"\u003e\u003ccode\u003e57dd6e2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c357def6703b969bca47626a9f297058c3c2dd2a\"\u003e\u003ccode\u003ec357def\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e\u003ccode\u003e4267ff1\u003c/code\u003e\u003c/a\u003e fix: ensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003e\u003ccode\u003ecc72ed7\u003c/code\u003e\u003c/a\u003e fix: deprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.14.1 to 9.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.15.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003e9.15.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/393\"\u003e#393\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5b761bd306e1e6973b59cea3f7657463de0204d1\"\u003e5b761bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e5dc4f81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd context manager for clearer, safer locks (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/beca0fa4985f385cb3328408528e14696ec7c70f\"\u003ebeca0fa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddress potential race condition in FeatureStore update_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/391\"\u003e#391\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/31cf4875c35f08177105a16f65140acabe93d3da\"\u003e31cf487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003ed78079e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003ee471ccc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003eda565a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedis store is considered initialized when \u003ccode\u003e$inited\u003c/code\u003e key is written (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop FeatureStoreClientWrapper poller on close (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/397\"\u003e#397\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/468afdfef32f74f7cc82cb61f01f5674054da9db\"\u003e468afdf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003ec73ad14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003ecbfc3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Redis to write missing \u003ccode\u003e$inited\u003c/code\u003e key (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003e9.15.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e The following breaking changes apply only to FDv2 (Flag Delivery v2) early access features, which are not subject to semantic versioning and may change without a major version bump.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e5dc4f81\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eChangeSetBuilder.finish()\u003c/code\u003e method now requires a \u003ccode\u003eSelector\u003c/code\u003e parameter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003ec73ad14\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eDataSystemConfig.synchronizers\u003c/code\u003e field now accepts a list of synchronizers, and the \u003ccode\u003eConfigBuilder.synchronizers()\u003c/code\u003e method accepts variadic arguments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/393\"\u003e#393\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5b761bd306e1e6973b59cea3f7657463de0204d1\"\u003e5b761bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd context manager for clearer, safer locks (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/beca0fa4985f385cb3328408528e14696ec7c70f\"\u003ebeca0fa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddress potential race condition in FeatureStore update_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/391\"\u003e#391\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/31cf4875c35f08177105a16f65140acabe93d3da\"\u003e31cf487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003ed78079e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003ee471ccc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003eda565a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedis store is considered initialized when \u003ccode\u003e$inited\u003c/code\u003e key is written (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop FeatureStoreClientWrapper poller on close (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/397\"\u003e#397\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/468afdfef32f74f7cc82cb61f01f5674054da9db\"\u003e468afdf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003ecbfc3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Redis to write missing \u003ccode\u003e$inited\u003c/code\u003e key (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e542f737a69e29c168a6d5a5877074aba6ce3353\"\u003e\u003ccode\u003ee542f73\u003c/code\u003e\u003c/a\u003e chore(main): release 9.15.0 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003e\u003ccode\u003ee471ccc\u003c/code\u003e\u003c/a\u003e fix: Mark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e\u003ccode\u003e5dc4f81\u003c/code\u003e\u003c/a\u003e feat: Update ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/f20fffeb1e2990dacada5cfdb51bf17626252448\"\u003e\u003ccode\u003ef20fffe\u003c/code\u003e\u003c/a\u003e chore: Remove dead code, clarify names, other cleanup (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003e\u003ccode\u003ec73ad14\u003c/code\u003e\u003c/a\u003e fix: Update DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003e\u003ccode\u003ed78079e\u003c/code\u003e\u003c/a\u003e fix: Allow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003e\u003ccode\u003ee99a27d\u003c/code\u003e\u003c/a\u003e chore: Support persistent data store verification in contract tests (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003e\u003ccode\u003ecbfc3dd\u003c/code\u003e\u003c/a\u003e fix: Update reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5a1adbb2de85bc31d5bd337ac773cc7f6e4b4cfa\"\u003e\u003ccode\u003e5a1adbb\u003c/code\u003e\u003c/a\u003e chore: Update sdk_metadata features (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003e\u003ccode\u003eda565a2\u003c/code\u003e\u003c/a\u003e fix: Prevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/co...\n\n_Description has been truncated_","html_url":"https://github.com/Musab1khan/AutoGPT/pull/115","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Musab1khan%2FAutoGPT/issues/115","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/115/packages"},{"uuid":"4043403341","node_id":"PR_kwDORiAyHc7I9eC6","number":14,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T05:13:59.000Z","updated_at":"2026-04-13T02:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.26.0` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type ch...\n\n_Description has been truncated_","html_url":"https://github.com/nakedeyent-art/adk/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakedeyent-art%2Fadk/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"},{"uuid":"4042968925","node_id":"PR_kwDORdKHYs7I8E8p","number":24,"state":"open","title":"chore(deps): bump the all-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T02:36:51.000Z","updated_at":"2026-03-09T02:36:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":9,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.39.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 9 updates in the /python/agents/image-scoring directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.18.0` | `1.26.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) | `0.20.4` | `0.39.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.15.5` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [codespell](https://github.com/codespell-project/codespell) | `2.4.1` | `2.4.2` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\n\nUpdates `google-adk` from 1.18.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow clearing secrets from deployed Agent Engine by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/836\"\u003eGoogleCloudPlatform/agent-starter-pack#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Looker Studio Dashboard instructions by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/789\"\u003eGoogleCloudPlatform/agent-starter-pack#789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify ADK skills reference in guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/850\"\u003eGoogleCloudPlatform/agent-starter-pack#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate introduction video date in README by \u003ca href=\"https://github.com/DracoBlue\"\u003e\u003ccode\u003e@​DracoBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/845\"\u003eGoogleCloudPlatform/agent-starter-pack#845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add GKE as deployment target by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/833\"\u003eGoogleCloudPlatform/agent-starter-pack#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/854\"\u003eGoogleCloudPlatform/agent-starter-pack#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gke e2e test issues by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/859\"\u003eGoogleCloudPlatform/agent-starter-pack#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: default prototype mode to deployment_target='none' by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/855\"\u003eGoogleCloudPlatform/agent-starter-pack#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: redesign CLI welcome banner with ASP logo by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/860\"\u003eGoogleCloudPlatform/agent-starter-pack#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/861\"\u003eGoogleCloudPlatform/agent-starter-pack#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: more gke e2e issues by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/862\"\u003eGoogleCloudPlatform/agent-starter-pack#862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: broaden E2E test coverage on release commits by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/863\"\u003eGoogleCloudPlatform/agent-starter-pack#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/864\"\u003eGoogleCloudPlatform/agent-starter-pack#864\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DracoBlue\"\u003e\u003ccode\u003e@​DracoBlue\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/845\"\u003eGoogleCloudPlatform/agent-starter-pack#845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.38.0...v0.39.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.38.0...v0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump fast-xml-parser from 5.3.5 to 5.3.6 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/818\"\u003eGoogleCloudPlatform/agent-starter-pack#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use gemini-3-flash-preview as eval judge model by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/820\"\u003eGoogleCloudPlatform/agent-starter-pack#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve enhance command with bug fixes and UX improvements by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/828\"\u003eGoogleCloudPlatform/agent-starter-pack#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: slim down Python guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/830\"\u003eGoogleCloudPlatform/agent-starter-pack#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Github Action per b/485167538 by \u003ca href=\"https://github.com/google-admin\"\u003e\u003ccode\u003e@​google-admin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/829\"\u003eGoogleCloudPlatform/agent-starter-pack#829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.38.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/831\"\u003eGoogleCloudPlatform/agent-starter-pack#831\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump cryptography from 45.0.7 to 46.0.5 in /agent_starter_pack/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/778\"\u003eGoogleCloudPlatform/agent-starter-pack#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update for adk java by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/785\"\u003eGoogleCloudPlatform/agent-starter-pack#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add smart-merge to enhance command by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/784\"\u003eGoogleCloudPlatform/agent-starter-pack#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: group non-Python agents under Other Languages in selection menu by \u003ca href=\"https://github.com/elia-secchi\"\u003e\u003ccode\u003e@​elia-secchi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/790\"\u003eGoogleCloudPlatform/agent-starter-pack#790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Vertex AI Search and Vector Search data connectors for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/791\"\u003eGoogleCloudPlatform/agent-starter-pack#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump langchain-text-splitters from 0.3.8 to 0.3.9 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/794\"\u003eGoogleCloudPlatform/agent-starter-pack#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump qs from 6.14.1 to 6.14.2 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/786\"\u003eGoogleCloudPlatform/agent-starter-pack#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable agent guidance filename with smart merge by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/783\"\u003eGoogleCloudPlatform/agent-starter-pack#783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: refresh dependency locks and handle missing terraform in setup-cicd by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/796\"\u003eGoogleCloudPlatform/agent-starter-pack#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump requests from 2.32.3 to 2.32.4 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/795\"\u003eGoogleCloudPlatform/agent-starter-pack#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: delete unused datastore terraform files in agentic_rag projects by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/797\"\u003eGoogleCloudPlatform/agent-starter-pack#797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use *\u003cem\u003e/\u003c/em\u003e glob pattern for agentic_rag and adk_live E2E triggers by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/798\"\u003eGoogleCloudPlatform/agent-starter-pack#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use europe-west4 region for agentic_rag E2E tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/799\"\u003eGoogleCloudPlatform/agent-starter-pack#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add RAG projects to scheduled cleanup by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/800\"\u003eGoogleCloudPlatform/agent-starter-pack#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update makefile snapshots and hashes for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/802\"\u003eGoogleCloudPlatform/agent-starter-pack#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/27a6f38fb2de5babdfbdc42b5cb789b081d85edd\"\u003e\u003ccode\u003e27a6f38\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/d5e1957a6a3bb1b8cd7d6cf6b8214afe20c81be1\"\u003e\u003ccode\u003ed5e1957\u003c/code\u003e\u003c/a\u003e feat: broaden E2E test coverage on release commits (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a7072df78dcde0f0034d55f5ddc63996ccdb4016\"\u003e\u003ccode\u003ea7072df\u003c/code\u003e\u003c/a\u003e fix: more gke e2e issues (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/862\"\u003e#862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/46629c00eda9e0ccbf6f208fb08b51155fc52518\"\u003e\u003ccode\u003e46629c0\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/8f97c9e2ea3111c8326974c5e5ff6b52ee158dcb\"\u003e\u003ccode\u003e8f97c9e\u003c/code\u003e\u003c/a\u003e feat: redesign CLI welcome banner with ASP logo (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/860\"\u003e#860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/6eafeeacd4435eafd3e9aa4b2c079a10c94c84b7\"\u003e\u003ccode\u003e6eafeea\u003c/code\u003e\u003c/a\u003e fix: default prototype mode to deployment_target='none' (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/855\"\u003e#855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/7d288033c05551fe24fa93b9e4b8c03b8a7a1a29\"\u003e\u003ccode\u003e7d28803\u003c/code\u003e\u003c/a\u003e fix: gke e2e test issues (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/cc1bd2ab5929094557014b125907f816eb5a663d\"\u003e\u003ccode\u003ecc1bd2a\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a73948e3811941ce8c6caba7355ed8caac437533\"\u003e\u003ccode\u003ea73948e\u003c/code\u003e\u003c/a\u003e feat: add GKE as deployment target (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/617951f7de1b49783b37840ed0348cc0b21756e1\"\u003e\u003ccode\u003e617951f\u003c/code\u003e\u003c/a\u003e Update introduction video date in README (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/845\"\u003e#845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-05.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover Markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Extend \u003ccode\u003ePERF102\u003c/code\u003e to comprehensions and generators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23473\"\u003e#23473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e false positives when I/O variable is used later (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23542\"\u003e#23542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add fix for \u003ccode\u003enone-not-at-end-of-union\u003c/code\u003e (\u003ccode\u003eRUF036\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22829\"\u003e#22829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for \u003ccode\u003ere.split\u003c/code\u003e with empty string pattern (\u003ccode\u003eRUF055\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23634\"\u003e#23634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle callable class dependencies with \u003ccode\u003e__call__\u003c/code\u003e method (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23553\"\u003e#23553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix numpy section ordering (\u003ccode\u003eD420\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23685\"\u003e#23685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for names shadowing re-exports (\u003ccode\u003eF811\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23356\"\u003e#23356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid inserting redundant \u003ccode\u003eNone\u003c/code\u003e elements in \u003ccode\u003eUP045\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23459\"\u003e#23459\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument extension mapping for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23574\"\u003e#23574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate default Python version examples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23605\"\u003e#23605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish releases to Astral mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23616\"\u003e#23616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bxff\"\u003e\u003ccode\u003e@​bxff\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kar-ganap\"\u003e\u003ccode\u003e@​kar-ganap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-05.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover Markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Extend \u003ccode\u003ePERF102\u003c/code\u003e to comprehensions and generators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23473\"\u003e#23473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e false positives when I/O variable is used later (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23542\"\u003e#23542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add fix for \u003ccode\u003enone-not-at-end-of-union\u003c/code\u003e (\u003ccode\u003eRUF036\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22829\"\u003e#22829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for \u003ccode\u003ere.split\u003c/code\u003e with empty string pattern (\u003ccode\u003eRUF055\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23634\"\u003e#23634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle callable class dependencies with \u003ccode\u003e__call__\u003c/code\u003e method (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23553\"\u003e#23553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix numpy section ordering (\u003ccode\u003eD420\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23685\"\u003e#23685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for names shadowing re-exports (\u003ccode\u003eF811\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23356\"\u003e#23356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid inserting redundant \u003ccode\u003eNone\u003c/code\u003e elements in \u003ccode\u003eUP045\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23459\"\u003e#23459\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument extension mapping for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23574\"\u003e#23574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate default Python version examples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23605\"\u003e#23605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish releases to Astral mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23616\"\u003e#23616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bxff\"\u003e\u003ccode\u003e@​bxff\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kar-ganap\"\u003e\u003ccode\u003e@​kar-ganap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e4a3d9c3b381df20f6a52caef0f56ed0ebc74be\"\u003e\u003ccode\u003e5e4a3d9\u003c/code\u003e\u003c/a\u003e Bump 0.15.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23743\"\u003e#23743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/69c23cc5a3a6cb08d81b01c7d1c2ba0482c3a3b1\"\u003e\u003ccode\u003e69c23cc\u003c/code\u003e\u003c/a\u003e [ty] Render all changed diagnostics in conformance.py (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23613\"\u003e#23613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4926bd58204839cb75a8ed1397e824bbc8f644ca\"\u003e\u003ccode\u003e4926bd5\u003c/code\u003e\u003c/a\u003e [ty] Split deferred checks out of \u003ccode\u003etypes/infer/builder.rs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23740\"\u003e#23740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9a70f5eb2fb0180953418cd6ac037cb3d531e77b\"\u003e\u003ccode\u003e9a70f5e\u003c/code\u003e\u003c/a\u003e Discover markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3dc78b0a84ee231afb1c3329e11bfc912c236366\"\u003e\u003ccode\u003e3dc78b0\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003eHasOptionalDefinition\u003c/code\u003e for \u003ccode\u003eexcept\u003c/code\u003e handlers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23739\"\u003e#23739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a6a5e8d10b8a5185049827be0a304db522b91c9a\"\u003e\u003ccode\u003ea6a5e8d\u003c/code\u003e\u003c/a\u003e [ty] Fix precedence of \u003ccode\u003eall\u003c/code\u003e selector in TOML configurations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23723\"\u003e#23723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2a5384b0b6e22ab511aec6f8dbb11648befda887\"\u003e\u003ccode\u003e2a5384b\u003c/code\u003e\u003c/a\u003e [ty] Make \u003ccode\u003eall\u003c/code\u003e selector case sensitive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23713\"\u003e#23713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/db77d7b2ae3da8deed64d8889a5cbcea287b52a6\"\u003e\u003ccode\u003edb77d7b\u003c/code\u003e\u003c/a\u003e [ty] Add a diagnostic if a \u003ccode\u003eTypeVar\u003c/code\u003e is used to specialize a \u003ccode\u003eParamSpec\u003c/code\u003e, or ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/db2849068f7d6a1f42cdafec46a7c2c83d39ece3\"\u003e\u003ccode\u003edb28490\u003c/code\u003e\u003c/a\u003e [ty] Override home directory in ty tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23724\"\u003e#23724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5f0fd91a230972bb9d1e4545ebaed2b7d09158a2\"\u003e\u003ccode\u003e5f0fd91\u003c/code\u003e\u003c/a\u003e [ty] More type-variable default validation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23639\"\u003e#23639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/d3kum1d0r1y4100/hydra-sandbox-bc8e8ca3abc1/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3kum1d0r1y4100%2Fhydra-sandbox-bc8e8ca3abc1/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"},{"uuid":"4042955872","node_id":"PR_kwDORdKHYc7I8CTk","number":19,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T02:32:01.000Z","updated_at":"2026-04-13T02:29:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.26.0` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type ch...\n\n_Description has been truncated_","html_url":"https://github.com/d3kum1d0r1y4100/hydra-sandbox-c0c626ae2889/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3kum1d0r1y4100%2Fhydra-sandbox-c0c626ae2889/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"},{"uuid":"4010205919","node_id":"PR_kwDOPTwklM7HRsyg","number":423,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-02T09:27:17.000Z","updated_at":"2026-03-02T09:29:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":7,"packages":[{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"werkzeug","old_version":"3.1.5","new_version":"3.1.6","repository_url":"https://github.com/pallets/werkzeug"},{"name":"authlib","old_version":"1.6.8","new_version":"1.6.9","repository_url":"https://github.com/authlib/authlib"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"nltk","old_version":"3.9.2","new_version":"3.9.3","repository_url":"https://github.com/nltk/nltk"},{"name":"scipy","old_version":"1.17.0","new_version":"1.17.1","repository_url":"https://github.com/scipy/scipy"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 7 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.5` | `3.1.6` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.8` | `1.6.9` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.2` | `3.9.3` |\n| [scipy](https://github.com/scipy/scipy) | `1.17.0` | `1.17.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.5 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.6 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.6/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in multi-segment paths. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-29vq-49wr-vm6x\"\u003eGHSA-29vq-49wr-vm6x\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in\nmulti-segment paths. :ghsa:\u003ccode\u003e29vq-49wr-vm6x\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/04da1b5221b7a7b57e82246e4b5741d37a6b2e56\"\u003e\u003ccode\u003e04da1b5\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f407712fdc60a09c2b3f4fe7db557703e5d9338d\"\u003e\u003ccode\u003ef407712\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f54fe98026253e70fbbcd35a6b52fb67cfff1c03\"\u003e\u003ccode\u003ef54fe98\u003c/code\u003e\u003c/a\u003e safe_join prevents Windows special device names in multi-segment paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d005985ef69ffe3275eda8fb6fb25e074dbe871b\"\u003e\u003ccode\u003ed005985\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/8565c2cbd6681ae8463e77d4fc0795324a7fdae7\"\u003e\u003ccode\u003e8565c2c\u003c/code\u003e\u003c/a\u003e document rule priority (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3febc7e90072bffe04c27e6b7478dfc4f88930df\"\u003e\u003ccode\u003e3febc7e\u003c/code\u003e\u003c/a\u003e document rule priority\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2525b827646c10ab7adb334664e6a4af1b769181\"\u003e\u003ccode\u003e2525b82\u003c/code\u003e\u003c/a\u003e remove state machine docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/4abfbd553cdeb6d4e6fa693340d52b13c884079f\"\u003e\u003ccode\u003e4abfbd5\u003c/code\u003e\u003c/a\u003e rewrite build docstring (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/161c18b2a8800ae6ef377fb3cbdb933a878fea67\"\u003e\u003ccode\u003e161c18b\u003c/code\u003e\u003c/a\u003e rewrite build docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/86e11c29e44726dae524cd9db11549b3b1ad681d\"\u003e\u003ccode\u003e86e11c2\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.5...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.8 to 1.6.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in \u003ccode\u003ejose\u003c/code\u003e module\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNot using header's \u003ccode\u003ejwk\u003c/code\u003e automatically\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eES256K\u003c/code\u003e into default jwt algorithms\u003c/li\u003e\n\u003cli\u003eRemove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003eGenerate random \u003ccode\u003ecek\u003c/code\u003e when \u003ccode\u003ecek\u003c/code\u003e length doesn't match\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/9266eaa2227ad7e21dc731b2a4a01909aabd934b\"\u003e\u003ccode\u003e9266eaa\u003c/code\u003e\u003c/a\u003e chore: release 1.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b\"\u003e\u003ccode\u003eb9bb2b2\u003c/code\u003e\u003c/a\u003e fix(oidc): fail close at validating c_hash and at_hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/1b0a1d988842bff7347c4ec0a70e45c3ba55504e\"\u003e\u003ccode\u003e1b0a1d9\u003c/code\u003e\u003c/a\u003e fix(jose): generate random cek when cek length doesn't match\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5be3c518794b7322375bae2bf1871713d9b5c2fb\"\u003e\u003ccode\u003e5be3c51\u003c/code\u003e\u003c/a\u003e fix(jose): add ES256K into default jwt algorithms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/48b345f29f6c459f11c6a40162b6c0b742ef2e22\"\u003e\u003ccode\u003e48b345f\u003c/code\u003e\u003c/a\u003e fix(jose): remove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a5d4b2d4c9e46bfa11c82f85fdc2bcc0b50ae681\"\u003e\u003ccode\u003ea5d4b2d\u003c/code\u003e\u003c/a\u003e fix(jose): do not use header's jwk automatically\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/v3.13.0/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nltk` from 3.9.2 to 3.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nltk/nltk/blob/develop/ChangeLog\"\u003enltk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.9.3 2026-02-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix CVE-2025-14009: secure ZIP extraction in nltk.downloader (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3468\"\u003e#3468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBlock path traversal/arbitrary reads in nltk.data for protocol-less refs (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3467\"\u003e#3467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBlock path traversal/abs paths in corpus readers and FS pointers (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3479\"\u003e#3479\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3480\"\u003e#3480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate external StanfordSegmenter JARs using SHA256 (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3477\"\u003e#3477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd optional sandbox enforcement for filestring() (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMaintenance: downloader/zipped models, CI/tooling updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.3:\nChris Clauss, Eric Kafe, HyperPS, purificant, Shivansh-Game, Christopher Smith\u003c/p\u003e\n\u003cp\u003eVersion 3.9.2 2025-10-01\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate download checksums to use SHA256 in built index\u003c/li\u003e\n\u003cli\u003eFix percentage escape in new-style string formatting\u003c/li\u003e\n\u003cli\u003ereplace shortened URLs using goo.gl\u003c/li\u003e\n\u003cli\u003eMake Wordnet interoperable with various taggers and tagged corpora\u003c/li\u003e\n\u003cli\u003eFix saving PerceptronTagger\u003c/li\u003e\n\u003cli\u003eDocument how to reproduce old Wordnet studies\u003c/li\u003e\n\u003cli\u003eproperly initialize Portuguese corpus reader\u003c/li\u003e\n\u003cli\u003esupport for mixed rules conversion into Chomsky Normal Form\u003c/li\u003e\n\u003cli\u003eonly import tkinter if a GUI is needed\u003c/li\u003e\n\u003cli\u003eissue \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/2112\"\u003e#2112\u003c/a\u003e with Corenlp\u003c/li\u003e\n\u003cli\u003enew environment variable NLTK_DOWNLOADER_FORCE_INTERACTIVE_SHELL\u003c/li\u003e\n\u003cli\u003eLesk defaults to most frequent sense in case of ties\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.2:\nJose Cols, Peter de Blanc, GeneralPoxter, Eric Kafe, William LaCroix, Jason Liu,\nSamer Masterson, Mike014, purificant, Andrew Ernest Ritz, samertm, Ikram Ul Haq,\nChristopher Smith, Ryan Mannion\u003c/p\u003e\n\u003cp\u003eVersion 3.9.1 2024-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug that prevented wordnet from loading\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.9 2024-08-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix security vulnerability CVE-2024-39705 (breaking change)\u003c/li\u003e\n\u003cli\u003eReplace pickled models (punkt, chunker, taggers) by new pickle-free \u0026quot;_tab\u0026quot; packages\u003c/li\u003e\n\u003cli\u003eNo longer sort Wordnet synsets and relations (sort in calling function when required)\u003c/li\u003e\n\u003cli\u003eOnly strip the last suffix in Wordnet Morphy, thus restricting synsets() results\u003c/li\u003e\n\u003cli\u003eAdd Python 3.12 support\u003c/li\u003e\n\u003cli\u003eMany other minor fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.8.2:\nTom Aarsen, Cat Lee Ball, Veralara Bernhard, Carlos Brandt, Konstantin Chernyshev, Michael Higgins,\nEric Kafe, Vivek Kalyan, David Lukes, Rob Malouf, purificant, Alex Rudnick, Liling Tan, Akihiro Yamazaki.\u003c/p\u003e\n\u003cp\u003eVersion 3.8.1 2023-01-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eResolve RCE vulnerability in localhost WordNet Browser (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/4154eb85e832f266660a09286c7e37e308292284\"\u003e\u003ccode\u003e4154eb8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3503\"\u003e#3503\u003c/a\u003e from ekaf/hotfix-3501\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7a710cbc8b914628252e9cf2518afe9ba9b13c80\"\u003e\u003ccode\u003e7a710cb\u003c/code\u003e\u003c/a\u003e Prepare release 3.9.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/1056b323af6462455571302e766b67cf300aea18\"\u003e\u003ccode\u003e1056b32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3468\"\u003e#3468\u003c/a\u003e from HyperPS/fix/secure-unzip-rce\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7dc5baa98f03b4c36300c408a7a66ffc8ea3934f\"\u003e\u003ccode\u003e7dc5baa\u003c/code\u003e\u003c/a\u003e Resolve merge conflict in tag mapping using normalized nltk resource URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7ef38b8aa6055ef3f82c7f8da490297cc12032b1\"\u003e\u003ccode\u003e7ef38b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3467\"\u003e#3467\u003c/a\u003e from HyperPS/develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/b2e1164bf89277f79b65406c829b99fb20ca1974\"\u003e\u003ccode\u003eb2e1164\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3485\"\u003e#3485\u003c/a\u003e from HyperPS/fix-filestring-sandbox-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/ac0ce55daa487401f8215a409cef50eae6a4ac98\"\u003e\u003ccode\u003eac0ce55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3480\"\u003e#3480\u003c/a\u003e from HyperPS/fix/filesystem-sandbox-security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/603e34d25a2cad4612185ebfa6bc1c0dcfcfb2ab\"\u003e\u003ccode\u003e603e34d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3479\"\u003e#3479\u003c/a\u003e from HyperPS/fix/corpusreader-path-traversal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/b63a5014aace4d22fe9a713473d2598d409eece4\"\u003e\u003ccode\u003eb63a501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3477\"\u003e#3477\u003c/a\u003e from HyperPS/fix/stanford-segmenter-rce-sha256\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/df38955e506a9fcaa8aba006984a11babd87cec0\"\u003e\u003ccode\u003edf38955\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3494\"\u003e#3494\u003c/a\u003e from ekaf/ewnv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nltk/nltk/compare/3.9.2...3.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.17.0 to 1.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.1\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.17.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski (5)\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eChristoph Gohlke (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (5)\u003c/li\u003e\n\u003cli\u003eMatthias Koeppe (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (10)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (44)\u003c/li\u003e\n\u003cli\u003eMartin Schuck (3)\u003c/li\u003e\n\u003cli\u003eDan Schult (3)\u003c/li\u003e\n\u003cli\u003estratakis (1) +\u003c/li\u003e\n\u003cli\u003eਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (1)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 13 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eComplete issue list, PR list, and release asset hashes are available in the associated \u003ca href=\"https://github.com/scipy/scipy/releases/download/v1.17.1/README.txt\"\u003e\u003ccode\u003eREADME.txt\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/527eb7fd7953a1de068f94bf8b322f249b9405ae\"\u003e\u003ccode\u003e527eb7f\u003c/code\u003e\u003c/a\u003e REL: 1.17.1 release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f11663bf044f1cb5a0112a28ac238f902ae36eea\"\u003e\u003ccode\u003ef11663b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24584\"\u003e#24584\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/2c49e68b634d2657380ca7b65207c6122e83cb72\"\u003e\u003ccode\u003e2c49e68\u003c/code\u003e\u003c/a\u003e DOC: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/400fa15ed6f9fece4c3848e9eade0e7d5e5aece0\"\u003e\u003ccode\u003e400fa15\u003c/code\u003e\u003c/a\u003e safely convert index dtypes to intc for csgraph and superLU\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c704044ab6f8f3e94295f354dbadfcab9139837\"\u003e\u003ccode\u003e8c70404\u003c/code\u003e\u003c/a\u003e MAINT: PR 24584 revisions [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/6dda8c13c534a61bc56c7b11bb5841efbd37d9dd\"\u003e\u003ccode\u003e6dda8c1\u003c/code\u003e\u003c/a\u003e BUG: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4a187e59ea9cde1f79b4fae9dbd8177adcf0ddf3\"\u003e\u003ccode\u003e4a187e5\u003c/code\u003e\u003c/a\u003e DOC: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/463ee9f72a5f1afe3363e86344a55eea1c1ba477\"\u003e\u003ccode\u003e463ee9f\u003c/code\u003e\u003c/a\u003e ENH: linalg/inv: re-enable overwrite_a for 2D inputs (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24442\"\u003e#24442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df746eed5eae0243969fd8de07770c4ace1dc65c\"\u003e\u003ccode\u003edf746ee\u003c/code\u003e\u003c/a\u003e BUG: linalg: restore dtypes in inv, solve, det\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/246bfeecbe56200ae4e265a70e06ccc64daee9c2\"\u003e\u003ccode\u003e246bfee\u003c/code\u003e\u003c/a\u003e MAINT:optimize: Enable multi-phase init to DIRECT\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.17.0...v1.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/423","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/423","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/423/packages"},{"uuid":"3983310875","node_id":"PR_kwDORXp-JM7F6VxZ","number":9,"state":"closed","title":"chore(deps): bump the all-dependencies group in /python/agents/image-scoring with 8 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-09T02:17:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-24T12:03:21.000Z","updated_at":"2026-03-09T02:17:50.000Z","time_to_close":1088068,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":8,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.25.1","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.38.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/python/agents/image-scoring","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/image-scoring with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.18.0` | `1.25.1` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) | `0.20.4` | `0.38.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.15.2` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `google-adk` from 1.18.0 to 1.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace check of instance for LlmAgent with hasAttribute check (\u003ca href=\"https://github.com/google/adk-python/commit/7110336788662abb8c9bbbb0a53a50cc09130d5e\"\u003e7110336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLog exception details before re-raising in MCP session execution (\u003ca href=\"https://github.com/google/adk-python/commit/de79bf12b564a4eefc7e6a2568dbe0f08bb6efeb\"\u003ede79bf1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7a6b62da62f56e327a7782b123129247ba1e68f7\"\u003e\u003ccode\u003e7a6b62d\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/3a1d459cd4702eda5d4267e03ad0717bd534b0c8\"\u003e\u003ccode\u003e3a1d459\u003c/code\u003e\u003c/a\u003e fix: Fix pickling lock errors in McpSessionManager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8cd22fb746f2ddac83ba31f7679138557a914925\"\u003e\u003ccode\u003e8cd22fb\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/079f7a38be5c2dcae604a93a8dabc2fd60af79db\"\u003e\u003ccode\u003e079f7a3\u003c/code\u003e\u003c/a\u003e fix: Support escaped curly braces in instruction templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e\u003ccode\u003e34da2d5\u003c/code\u003e\u003c/a\u003e feat: enable dependency injection for agent loader in FastAPI app gen\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003e\u003ccode\u003ebcbfeba\u003c/code\u003e\u003c/a\u003e feat: pass trace context in MCP tool call's _meta field with Otel propagator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9dccd6a69223925ed1c452189b33a922e6934643\"\u003e\u003ccode\u003e9dccd6a\u003c/code\u003e\u003c/a\u003e feat(conformance): read report's version info from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/38b4869c414c3e84616db81aafac49f41dd12fa9\"\u003e\u003ccode\u003e38b4869\u003c/code\u003e\u003c/a\u003e chore(ci): migrate release pipeline from release-please App to GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/657acfadbbb6f81fd489aec11061715adce7c07f\"\u003e\u003ccode\u003e657acfa\u003c/code\u003e\u003c/a\u003e docs: Add PostgreSQL session storage sample and documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/61c329f8ce7659574410744ab3868ca002946ed8\"\u003e\u003ccode\u003e61c329f\u003c/code\u003e\u003c/a\u003e ci: match the environment with internal ones for pyink/isort/unittest\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump fast-xml-parser from 5.3.5 to 5.3.6 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/818\"\u003eGoogleCloudPlatform/agent-starter-pack#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use gemini-3-flash-preview as eval judge model by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/820\"\u003eGoogleCloudPlatform/agent-starter-pack#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve enhance command with bug fixes and UX improvements by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/828\"\u003eGoogleCloudPlatform/agent-starter-pack#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: slim down Python guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/830\"\u003eGoogleCloudPlatform/agent-starter-pack#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Github Action per b/485167538 by \u003ca href=\"https://github.com/google-admin\"\u003e\u003ccode\u003e@​google-admin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/829\"\u003eGoogleCloudPlatform/agent-starter-pack#829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.38.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/831\"\u003eGoogleCloudPlatform/agent-starter-pack#831\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump cryptography from 45.0.7 to 46.0.5 in /agent_starter_pack/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/778\"\u003eGoogleCloudPlatform/agent-starter-pack#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update for adk java by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/785\"\u003eGoogleCloudPlatform/agent-starter-pack#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add smart-merge to enhance command by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/784\"\u003eGoogleCloudPlatform/agent-starter-pack#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: group non-Python agents under Other Languages in selection menu by \u003ca href=\"https://github.com/elia-secchi\"\u003e\u003ccode\u003e@​elia-secchi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/790\"\u003eGoogleCloudPlatform/agent-starter-pack#790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Vertex AI Search and Vector Search data connectors for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/791\"\u003eGoogleCloudPlatform/agent-starter-pack#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump langchain-text-splitters from 0.3.8 to 0.3.9 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/794\"\u003eGoogleCloudPlatform/agent-starter-pack#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump qs from 6.14.1 to 6.14.2 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/786\"\u003eGoogleCloudPlatform/agent-starter-pack#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable agent guidance filename with smart merge by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/783\"\u003eGoogleCloudPlatform/agent-starter-pack#783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: refresh dependency locks and handle missing terraform in setup-cicd by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/796\"\u003eGoogleCloudPlatform/agent-starter-pack#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump requests from 2.32.3 to 2.32.4 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/795\"\u003eGoogleCloudPlatform/agent-starter-pack#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: delete unused datastore terraform files in agentic_rag projects by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/797\"\u003eGoogleCloudPlatform/agent-starter-pack#797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use *\u003cem\u003e/\u003c/em\u003e glob pattern for agentic_rag and adk_live E2E triggers by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/798\"\u003eGoogleCloudPlatform/agent-starter-pack#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use europe-west4 region for agentic_rag E2E tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/799\"\u003eGoogleCloudPlatform/agent-starter-pack#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add RAG projects to scheduled cleanup by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/800\"\u003eGoogleCloudPlatform/agent-starter-pack#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update makefile snapshots and hashes for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/802\"\u003eGoogleCloudPlatform/agent-starter-pack#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump urllib3 from 1.26.20 to 2.6.3 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/793\"\u003eGoogleCloudPlatform/agent-starter-pack#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.37.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/803\"\u003eGoogleCloudPlatform/agent-starter-pack#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: mock Vertex AI Search/Vector Search in agentic_rag integration tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/804\"\u003eGoogleCloudPlatform/agent-starter-pack#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: optimize data processing containers and sync with pyproject.toml by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/805\"\u003eGoogleCloudPlatform/agent-starter-pack#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange project version to 0.36.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/806\"\u003eGoogleCloudPlatform/agent-starter-pack#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.37.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/807\"\u003eGoogleCloudPlatform/agent-starter-pack#807\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.36.0...v0.37.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.36.0...v0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump nbconvert from 7.16.6 to 7.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/768\"\u003eGoogleCloudPlatform/agent-starter-pack#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump protobuf from 5.29.5 to 5.29.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/764\"\u003eGoogleCloudPlatform/agent-starter-pack#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: correct import ordering in agentic_rag bq_analytics template  by \u003ca href=\"https://github.com/haiyuan-eng-google\"\u003e\u003ccode\u003e@​haiyuan-eng-google\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/777\"\u003eGoogleCloudPlatform/agent-starter-pack#777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add TypeScript ADK agent template (adk_ts) by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/731\"\u003eGoogleCloudPlatform/agent-starter-pack#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align zod version with \u003ccode\u003e@​google/adk\u003c/code\u003e dependency in TypeScript template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/779\"\u003eGoogleCloudPlatform/agent-starter-pack#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.36.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/780\"\u003eGoogleCloudPlatform/agent-starter-pack#780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haiyuan-eng-google\"\u003e\u003ccode\u003e@​haiyuan-eng-google\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/777\"\u003eGoogleCloudPlatform/agent-starter-pack#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a107bc9b67128329a72564f898568a6bfebe66ac\"\u003e\u003ccode\u003ea107bc9\u003c/code\u003e\u003c/a\u003e chore: release v0.38.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/831\"\u003e#831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a202a6cd16c6f49cbe0e30d540e33ed8379f2cd3\"\u003e\u003ccode\u003ea202a6c\u003c/code\u003e\u003c/a\u003e Refactor Github Action per b/485167538 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/829\"\u003e#829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/671a8f213aad80003b53ef81a08a607937247f2d\"\u003e\u003ccode\u003e671a8f2\u003c/code\u003e\u003c/a\u003e refactor: slim down Python guidance template (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/830\"\u003e#830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/dab55e89bcffa5e7fad16c8c3a4572b9fb479dda\"\u003e\u003ccode\u003edab55e8\u003c/code\u003e\u003c/a\u003e fix: improve enhance command with bug fixes and UX improvements (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/78608760e4e1347f73d1ff84a25f8908d8cef9c7\"\u003e\u003ccode\u003e7860876\u003c/code\u003e\u003c/a\u003e fix: use gemini-3-flash-preview as eval judge model with numSamples=1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/8d80885c5edc1eab6adf0af6770298f9d7ea9de3\"\u003e\u003ccode\u003e8d80885\u003c/code\u003e\u003c/a\u003e build(deps): bump fast-xml-parser (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/82594b0ff0bd075a05681f860feaad9265705f11\"\u003e\u003ccode\u003e82594b0\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.37.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/807\"\u003e#807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/99cb74cda39e94f6a4ac0e36d80ce3e9c31419e9\"\u003e\u003ccode\u003e99cb74c\u003c/code\u003e\u003c/a\u003e Change project version to 0.36.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/806\"\u003e#806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/5cf4473f217e5aeb20a41e4de5d2f678ea8ad5eb\"\u003e\u003ccode\u003e5cf4473\u003c/code\u003e\u003c/a\u003e feat: optimize data processing containers and sync with pyproject.toml (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/accdeaa606877665b80108b89bd66107018ecdf9\"\u003e\u003ccode\u003eaccdeaa\u003c/code\u003e\u003c/a\u003e fix: mock Vertex AI Search/Vector Search in agentic_rag integration tests (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/gsimeon/adk-samples/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"},{"uuid":"3983307190","node_id":"PR_kwDORXp-JM7F6U9Z","number":5,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-24T12:02:41.000Z","updated_at":"2026-05-11T02:32:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.25.1","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.133.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.25.1` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.133.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace check of instance for LlmAgent with hasAttribute check (\u003ca href=\"https://github.com/google/adk-python/commit/7110336788662abb8c9bbbb0a53a50cc09130d5e\"\u003e7110336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLog exception details before re-raising in MCP session execution (\u003ca href=\"https://github.com/google/adk-python/commit/de79bf12b564a4eefc7e6a2568dbe0f08bb6efeb\"\u003ede79bf1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7a6b62da62f56e327a7782b123129247ba1e68f7\"\u003e\u003ccode\u003e7a6b62d\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/3a1d459cd4702eda5d4267e03ad0717bd534b0c8\"\u003e\u003ccode\u003e3a1d459\u003c/code\u003e\u003c/a\u003e fix: Fix pickling lock errors in McpSessionManager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8cd22fb746f2ddac83ba31f7679138557a914925\"\u003e\u003ccode\u003e8cd22fb\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/079f7a38be5c2dcae604a93a8dabc2fd60af79db\"\u003e\u003ccode\u003e079f7a3\u003c/code\u003e\u003c/a\u003e fix: Support escaped curly braces in instruction templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e\u003ccode\u003e34da2d5\u003c/code\u003e\u003c/a\u003e feat: enable dependency injection for agent loader in FastAPI app gen\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003e\u003ccode\u003ebcbfeba\u003c/code\u003e\u003c/a\u003e feat: pass trace context in MCP tool call's _meta field with Otel propagator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9dccd6a69223925ed1c452189b33a922e6934643\"\u003e\u003ccode\u003e9dccd6a\u003c/code\u003e\u003c/a\u003e feat(conformance): read report's version info from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/38b4869c414c3e84616db81aafac49f41dd12fa9\"\u003e\u003ccode\u003e38b4869\u003c/code\u003e\u003c/a\u003e chore(ci): migrate release pipeline from release-please App to GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/657acfadbbb6f81fd489aec11061715adce7c07f\"\u003e\u003ccode\u003e657acfa\u003c/code\u003e\u003c/a\u003e docs: Add PostgreSQL session storage sample and documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/61c329f8ce7659574410744ab3868ca002946ed8\"\u003e\u003ccode\u003e61c329f\u003c/code\u003e\u003c/a\u003e ci: match the environment with internal ones for pyink/isort/unittest\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.133.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.133.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Starlette 1.0.0+. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14987\"\u003e#14987\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14986\"\u003e#14986\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14972\"\u003e#14972\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Allow skipping \u003ccode\u003ebenchmark\u003c/code\u003e job in \u003ccode\u003etest\u003c/code\u003e workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14974\"\u003e#14974\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔒️ Add \u003ccode\u003estrict_content_type\u003c/code\u003e checking for JSON requests. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14978\"\u003e#14978\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNow FastAPI checks, by default, that JSON requests have a \u003ccode\u003eContent-Type\u003c/code\u003e header with a valid JSON value, like \u003ccode\u003eapplication/json\u003c/code\u003e, and rejects requests that don't.\u003c/li\u003e\n\u003cli\u003eIf the clients for your app don't send a valid \u003ccode\u003eContent-Type\u003c/code\u003e header you can disable this with \u003ccode\u003estrict_content_type=False\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCheck the new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/strict-content-type/\"\u003eStrict Content-Type Checking\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump flask from 3.1.2 to 3.1.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14949\"\u003e#14949\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update all dependencies to use \u003ccode\u003egriffelib\u003c/code\u003e instead of \u003ccode\u003egriffe\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14973\"\u003e#14973\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Fix \u003ccode\u003eFastAPI People\u003c/code\u003e workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14951\"\u003e#14951\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Do not run codspeed with coverage as it's not tracked. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14966\"\u003e#14966\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Do not include benchmark tests in coverage to speed up coverage processing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14965\"\u003e#14965\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.131.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🗑️ Deprecate \u003ccode\u003eORJSONResponse\u003c/code\u003e and \u003ccode\u003eUJSONResponse\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14964\"\u003e#14964\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.130.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14962\"\u003e#14962\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis results in 2x (or more) performance increase for JSON responses.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/custom-response/#json-performance\"\u003eCustom Response - JSON Performance\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.129.2\u003c/h2\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade pytest. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14959\"\u003e#14959\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix CI, do not attempt to publish \u003ccode\u003efastapi-slim\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14958\"\u003e#14958\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003efastapi-slim\u003c/code\u003e, no more versions will be released, use only \u003ccode\u003e\u0026quot;fastapi[standard]\u0026quot;\u003c/code\u003e or \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14957\"\u003e#14957\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update pyproject.toml, remove unneeded lines. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14956\"\u003e#14956\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/daba0aa328c862dd15589ea5e3157e07aaa9679d\"\u003e\u003ccode\u003edaba0aa\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.133.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0c3581d5c45dd7603b01a2401c7783a2abfb362e\"\u003e\u003ccode\u003e0c3581d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c73bc945374cdabc6ce84bff7b172a2e7056350e\"\u003e\u003ccode\u003ec73bc94\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Starlette 1.0.0+ (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14987\"\u003e#14987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c6883861516ac680485549053f389185e704394\"\u003e\u003ccode\u003e6c68838\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.132.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/29d082ba24cbf0911c677c657e84a3674a688c00\"\u003e\u003ccode\u003e29d082b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2686c7fbbf9abb17902a2981a9d9fca01f5117b8\"\u003e\u003ccode\u003e2686c7f\u003c/code\u003e\u003c/a\u003e ♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14986\"\u003e#14986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2f9c914d440e99fe8b62646b51e4d24c5bcd858b\"\u003e\u003ccode\u003e2f9c914\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0cf27ecf8826ab8d1c8c21a4b9883ddae480d2a8\"\u003e\u003ccode\u003e0cf27ec\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14972\"\u003e#14972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3f30ca1a5e2ed4cca1f8102b39a40e56151a018e\"\u003e\u003ccode\u003e3f30ca1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6af38321261afde391dd28f60ec0dab9c15f0629\"\u003e\u003ccode\u003e6af3832\u003c/code\u003e\u003c/a\u003e 👷 Allow skipping \u003ccode\u003ebenchmark\u003c/code\u003e job in \u003ccode\u003etest\u003c/code\u003e workflow (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14974\"\u003e#14974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.133.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkiv...\n\n_Description has been truncated_","html_url":"https://github.com/gsimeon/adk-samples/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"3915453234","node_id":"PR_kwDOPTwklM7CbxSd","number":384,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T09:44:24.000Z","updated_at":"2026-02-17T13:47:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":17,"packages":[{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.2.2","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"numpy","old_version":"2.3.5","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"authlib","old_version":"1.6.6","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"google-cloud-monitoring","old_version":"2.28.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"opencv-python","old_version":"4.12.0.88","new_version":"4.13.0.92","repository_url":"https://github.com/opencv/opencv-python"},{"name":"scipy","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"supabase","old_version":"2.25.1","new_version":"2.27.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"pytest-asyncio","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"celery","old_version":"5.6.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.9.1","new_version":"2.10.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"fastapi","old_version":"0.124.4","new_version":"0.128.5","repository_url":"https://github.com/fastapi/fastapi"},{"name":"torchvision","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/pytorch/vision"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.2.2` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.4.2` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.6` | `1.6.7` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.4` |\n| [google-cloud-monitoring](https://github.com/googleapis/google-cloud-python) | `2.28.0` | `2.29.1` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [opencv-python](https://github.com/opencv/opencv-python) | `4.12.0.88` | `4.13.0.92` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.3` | `1.17.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.25.1` | `2.27.3` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.25.2` | `0.26.0` |\n| [celery](https://github.com/celery/celery) | `5.6.0` | `5.6.2` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.9.1` | `2.10.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.4` | `0.128.5` |\n| [torchvision](https://github.com/pytorch/vision) | `0.24.1` | `0.25.0` |\n\n\nUpdates `werkzeug` from 3.1.4 to 3.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.5/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/43?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/43?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless of extension or surrounding spaces. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-87hc-h4r5-73f7\"\u003eGHSA-87hc-h4r5-73f7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary. This fixes the previous attempt, which caused incorrect content lengths. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3077\"\u003e#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with \u003ccode\u003epin_security=False\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3075\"\u003e#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2026-01-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless\nof extension or surrounding spaces. :ghsa:\u003ccode\u003e87hc-h4r5-73f7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary.\nThis fixes the previous attempt, which caused incorrect content lengths.\n:issue:\u003ccode\u003e3065\u003c/code\u003e :issue:\u003ccode\u003e3077\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with\n\u003ccode\u003epin_security=False\u003c/code\u003e. :issue:\u003ccode\u003e3075\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/e3d06f4b1f7ff40a63eba78f81d9cda18f805d6d\"\u003e\u003ccode\u003ee3d06f4\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7ae1d254e04a0c33e241ac1cca4783ce6c875ca3\"\u003e\u003ccode\u003e7ae1d25\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/37797aba260022c871718e0908b472727d366d09\"\u003e\u003ccode\u003e37797ab\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esafe_join\u003c/code\u003e prevents windows special device names with compound extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3db44c79caa74c00848ceefb0bd3d608e3d09cea\"\u003e\u003ccode\u003e3db44c7\u003c/code\u003e\u003c/a\u003e fix duplicate reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/a40f8fa05ff1108ba1096e7cd359d0599f5cd386\"\u003e\u003ccode\u003ea40f8fa\u003c/code\u003e\u003c/a\u003e fix class name typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/0f76c353b10afc2f8129aa3684ccc3262516a0c0\"\u003e\u003ccode\u003e0f76c35\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3081\"\u003e#3081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/1049dd6b2a363e1ef302b4161c340fb8582f627a\"\u003e\u003ccode\u003e1049dd6\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b48878cf16dfca3c89ac58aca47ab1ecfcb71354\"\u003e\u003ccode\u003eb48878c\u003c/code\u003e\u003c/a\u003e initialize \u003ccode\u003e_pin\u003c/code\u003e in debugger (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/fa0f4f2710b8eaffef7f2b3fbc58fc3ca55247fb\"\u003e\u003ccode\u003efa0f4f2\u003c/code\u003e\u003c/a\u003e initialize _pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f637275bfa68ebd80bec1da9173211ce2dc4fa33\"\u003e\u003ccode\u003ef637275\u003c/code\u003e\u003c/a\u003e start version 3.1.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.4...3.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.2.0 to 5.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.2 - Replace mandatory \u003ccode\u003erequests\u003c/code\u003e dependency with optional \u003ccode\u003ehttpx\u003c/code\u003e dependency\u003c/h2\u003e\n\u003cp\u003eThis patch release replaces mandatory \u003ccode\u003erequests\u003c/code\u003e dependency with an optional \u003ccode\u003ehttpx\u003c/code\u003e dependency.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\npip install sentence-transformers[train]==5.2.2\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.2.2\npip install sentence-transformers[onnx-gpu]==5.2.2\npip install sentence-transformers[onnx]==5.2.2\npip install sentence-transformers[openvino]==5.2.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eTransformers v5 Support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/huggingface/transformers/releases/tag/v5.0.0\"\u003eTransformers v5.0\u003c/a\u003e and its required \u003ccode\u003ehuggingface_hub\u003c/code\u003e versions have dropped support of \u003ccode\u003erequests\u003c/code\u003e in favor of \u003ccode\u003ehttpx\u003c/code\u003e. The former was also used in \u003ccode\u003esentence-transformers\u003c/code\u003e, but not listed explicitly as a dependency. This patch removes the use of \u003ccode\u003erequests\u003c/code\u003e in favor of \u003ccode\u003ehttpx\u003c/code\u003e, although it's now optional and not automatically imported. This should also save some import time.\u003c/p\u003e\n\u003cp\u003eImporting Sentence Transformers should now not crash if \u003ccode\u003erequests\u003c/code\u003e is not installed.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003edeps\u003c/code\u003e] Replace requests dependency with optional httpx dependency by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3618\"\u003ehuggingface/sentence-transformers#3618\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.1...v5.2.2\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.2.1...v5.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.2.1 - Joint Transformers v4 and v5 compatibility\u003c/h2\u003e\n\u003cp\u003eThis patch release adds support for the full \u003ca href=\"https://github.com/huggingface/transformers/releases/tag/v5.0.0\"\u003eTransformers v5 release\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\npip install sentence-transformers[train]==5.2.1\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.2.1\npip install sentence-transformers[onnx-gpu]==5.2.1\npip install sentence-transformers[onnx]==5.2.1\npip install sentence-transformers[openvino]==5.2.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eTransformers v5 Support\u003c/h2\u003e\n\u003cp\u003eSentence Transformers v5.2.0 already introduced support for the Transformers v5.0 release candidates, but this release is adding support for the full release. The intention is to maintain backward compatibility with v4.x. The library includes dual CI testing for both version for now, allowing users to upgrade to the newest Transformers features when ready. In future versions, Sentence Transformers may start requiring Transformers v5.0 or higher.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce compatibility with transformers 5.0.0rc01 by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3597\"\u003ehuggingface/sentence-transformers#3597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpecify numpy manually in dependencies, as it's directly used/imported by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3608\"\u003ehuggingface/sentence-transformers#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand test suite to full transformers v5 by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3615\"\u003ehuggingface/sentence-transformers#3615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f7f750689c83a1148b85ddf1ba5f4bea09e8ceaf\"\u003e\u003ccode\u003ef7f7506\u003c/code\u003e\u003c/a\u003e Release v5.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/c78ecf35a1b4beee64100629b34d55d459dd22fa\"\u003e\u003ccode\u003ec78ecf3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edeps\u003c/code\u003e] Replace requests dependency with optional httpx dependency (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3618\"\u003e#3618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/18ec0d60b5d4a4fb6d83476c095ca0641a363c25\"\u003e\u003ccode\u003e18ec0d6\u003c/code\u003e\u003c/a\u003e Release v5.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9db10fe097194c0486899ec6b563943248d332d0\"\u003e\u003ccode\u003e9db10fe\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003ecompat\u003c/code\u003e] Expand test suite to full transformers v5 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/a1ed1ef9c053b88a29205810b11d7fda2c268fb1\"\u003e\u003ccode\u003ea1ed1ef\u003c/code\u003e\u003c/a\u003e Specify numpy manually in dependencies, as it's directly used/imported (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3608\"\u003e#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/08cada09277a6a03357b0c6440ea534ebd72951f\"\u003e\u003ccode\u003e08cada0\u003c/code\u003e\u003c/a\u003e docs: fix typo in custom models: reemain -\u0026gt; remain (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3596\"\u003e#3596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/236620339d21bcae57334c70a9bbf3212751abb2\"\u003e\u003ccode\u003e2366203\u003c/code\u003e\u003c/a\u003e Introduce compatibility with transformers 5.0.0rc01 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3597\"\u003e#3597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/631b085ccbee4bf895855e5a52f88b0146b3eecc\"\u003e\u003ccode\u003e631b085\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.2-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/0277f4bc1f2e109c385d8978cbe1632ec7bdb562\"\u003e\u003ccode\u003e0277f4b\u003c/code\u003e\u003c/a\u003e Turn mine_hard_negatives into a clickable link in index.rst (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3593\"\u003e#3593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.0...v5.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.2 (Feb 1, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.2 is a patch release that fixes bugs discovered after the\n2.4.1 release. Highlights are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixes memory leaks\u003c/li\u003e\n\u003cli\u003eUpdates OpenBLAS to fix hangs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Tang +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKumar Aditya\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eVikram Kumar +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 12 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30629\"\u003e#30629\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30636\"\u003e#30636\u003c/a\u003e: TYP: \u003ccode\u003earange\u003c/code\u003e: accept datetime strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30657\"\u003e#30657\u003c/a\u003e: MAINT: avoid possible race condition by not touching \u003ccode\u003eos.environ\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30700\"\u003e#30700\u003c/a\u003e: BUG: validate contraction axes in tensordot (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30521\"\u003e#30521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30701\"\u003e#30701\u003c/a\u003e: DOC: __array_namespace__info__: set_module not __module__ (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30679\"\u003e#30679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30702\"\u003e#30702\u003c/a\u003e: BUG: fix free-threaded PyObject layout in replace_scalar_type_names...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30703\"\u003e#30703\u003c/a\u003e: TST: fix limited API example in tests for latest Cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30709\"\u003e#30709\u003c/a\u003e: BUG: Fix some bugs found via valgrind (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30680\"\u003e#30680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30712\"\u003e#30712\u003c/a\u003e: MAINT: replace ob_type access with Py_TYPE in PyArray_CheckExact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30713\"\u003e#30713\u003c/a\u003e: BUG: Fixup the quantile promotion fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30736\"\u003e#30736\u003c/a\u003e: BUG: fix thread safety of \u003ccode\u003earray_getbuffer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30667\"\u003e#30667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30737\"\u003e#30737\u003c/a\u003e: backport scipy-openblas version change\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003cli\u003eYou can use the \u003ccode\u003ekeyring\u003c/code\u003e app to store the PyPI password for twine. See the\nonline twine documentation for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003cp\u003eCheck the numpy-release repo\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/c81c49f77451340651a751e76bca607d85e4fd55\"\u003e\u003ccode\u003ec81c49f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30757\"\u003e#30757\u003c/a\u003e from charris/prepare-2.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b3ae9c59de627110458653836f1be81280222f85\"\u003e\u003ccode\u003eb3ae9c5\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9de89843c3918fa133f1aab9fb4435c38a3b0ba6\"\u003e\u003ccode\u003e9de8984\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30737\"\u003e#30737\u003c/a\u003e from mattip/scipy-openblas-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b7be329895e32de44578742b2745fb307cdf8625\"\u003e\u003ccode\u003eb7be329\u003c/code\u003e\u003c/a\u003e backport scipy-openblas version change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7ff98637f80dc1ff7a18fce8025ffabdded76094\"\u003e\u003ccode\u003e7ff9863\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30736\"\u003e#30736\u003c/a\u003e from charris/backport-30667\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/431fffbe91d86c04738f039e0048441f8f9b5fff\"\u003e\u003ccode\u003e431fffb\u003c/code\u003e\u003c/a\u003e MAINT: Skip tests that require \u003cstrong\u003ebuffer\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/127235fcd9b2e80764da8f6c64f942a6bddb093a\"\u003e\u003ccode\u003e127235f\u003c/code\u003e\u003c/a\u003e BUG: fix thread safety of \u003ccode\u003earray_getbuffer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30667\"\u003e#30667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/18bdb2e675b68daa5afc3250c41982ff77b3867f\"\u003e\u003ccode\u003e18bdb2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30713\"\u003e#30713\u003c/a\u003e from charris/backport-30710\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/41dd7512de6dc3dd665b71d4e3a321aa1150dc48\"\u003e\u003ccode\u003e41dd751\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30712\"\u003e#30712\u003c/a\u003e from charris/backport-30705\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7a278da99943376313b8f631905c3baaa7a82a30\"\u003e\u003ccode\u003e7a278da\u003c/code\u003e\u003c/a\u003e BUG: Fixup the quantile promotion fixup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.6 to 1.6.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSet supported algorithms for the default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUnreleased\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eOpenID Connect RP-Initiated Logout 1.0 \u0026lt;https://openid.net/specs/openid-connect-rpinitiated-1_0.html\u0026gt;\u003c/code\u003e_.\nSee :ref:\u003ccode\u003especs/rpinitiated\u003c/code\u003e for details. :issue:\u003ccode\u003e500\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePer RFC 6749 Section 3.3, the \u003ccode\u003escope\u003c/code\u003e parameter is now optional at both\nauthorization and token endpoints. \u003ccode\u003eclient.get_allowed_scope()\u003c/code\u003e is called\nto determine the default scope when omitted. :issue:\u003ccode\u003e845\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9, start support Python 3.14. :pr:\u003ccode\u003e850\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAuthorizationServerMetadata.validate()\u003c/code\u003e to compose with RFC extension classes.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eexpires_at=0\u003c/code\u003e being incorrectly treated as \u003ccode\u003eNone\u003c/code\u003e. :issue:\u003ccode\u003e530\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eResourceProtector\u003c/code\u003e decorator to be used without parentheses. :issue:\u003ccode\u003e604\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/38e872a3f5b97d2658507acc8762a4e18adaa50e\"\u003e\u003ccode\u003e38e872a\u003c/code\u003e\u003c/a\u003e chore: release 1.6.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b87c32ed07b8ae7f805873e1c9cafd1016761df7\"\u003e\u003ccode\u003eb87c32e\u003c/code\u003e\u003c/a\u003e fix: remove \u0026quot;none\u0026quot; algorithm from default jwt instance\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* `Dropped support for win_arm64 wheels`_.\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\n\u003cp\u003e.. _v46-0-3:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-monitoring` from 2.28.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-monitoring's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-monitoring 2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.29.0...google-cloud-monitoring-v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-02-05)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix mypy errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15494\"\u003e#15494\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1f4c2862\"\u003e1f4c2862\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-monitoring's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.29.0...google-cloud-documentai-v2.29.1\"\u003e2.29.1\u003c/a\u003e (2024-06-24)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the comment to add a note about \u003ccode\u003edocumentai.processors.create\u003c/code\u003e permission (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9318d94ce12bd7a2e242f1ac9cbe491307c84ea6\"\u003e9318d94\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.28.0...google-cloud-documentai-v2.29.0\"\u003e2.29.0\u003c/a\u003e (2024-06-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-documentai] Make Layout Parser generally available in V1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/12762\"\u003e#12762\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9fd16ad8837e31c3b06475b195c70c45f6979f6c\"\u003e9fd16ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b99ac6a8b113311d1ae8e5a5f00ffce0e7eb3f2d\"\u003e\u003ccode\u003eb99ac6a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260205T080503Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15528\"\u003e#15528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/34ac70dc34ea4634193ac5f300a7fb3e94d29564\"\u003e\u003ccode\u003e34ac70d\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260204T231539Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15526\"\u003e#15526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6837229965debe3aeb713104767a183f6e2f5b2d\"\u003e\u003ccode\u003e6837229\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260204T073039Z (google-cloud-apiregi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fe0a0b4638a8f5301c30be43fd2f2898ddc6db37\"\u003e\u003ccode\u003efe0a0b4\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260204T082423Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15521\"\u003e#15521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4997475aadea9e3df262ff640b2383e2bf8aa47e\"\u003e\u003ccode\u003e4997475\u003c/code\u003e\u003c/a\u003e feat: generate libraries (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15502\"\u003e#15502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4daf9cc283e66f49904b74c1067d245ba43e833a\"\u003e\u003ccode\u003e4daf9cc\u003c/code\u003e\u003c/a\u003e fix: fix mypy (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15496\"\u003e#15496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1f4c2862d77afa893f7a968af57e7adf54d49d0e\"\u003e\u003ccode\u003e1f4c286\u003c/code\u003e\u003c/a\u003e fix: fix mypy errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15494\"\u003e#15494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ca15a7e691a1f66e1b3beaa9b88a2e450a6947f5\"\u003e\u003ccode\u003eca15a7e\u003c/code\u003e\u003c/a\u003e fix: fix mypy errors in google-cloud-monitoring-dashboards/google/monitoring ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0d24b06a330c578479c34ee0ca7bc1ba7fc6b3ab\"\u003e\u003ccode\u003e0d24b06\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260129T080803Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15492\"\u003e#15492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7260dd490bb261f0f6bb2f4833bd9a3ce6b3d386\"\u003e\u003ccode\u003e7260dd4\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260127T190835Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15489\"\u003e#15489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.28.0...google-cloud-monitoring-v2.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opencv-python` from 4.12.0.88 to 4.13.0.92\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0.92\u003c/h2\u003e\n\u003cp\u003eFollow up release for 4.13.0 with X server dependency fix. See \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28438\"\u003e#28438\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e4.13.0.90\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.13.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython specific:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManylinux 2_28 support, Numpy 2.4 support, Python 3.14 support\u003c/li\u003e\n\u003cli\u003eTuned Python bindings for logging \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27812\"\u003e#27812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMarked Feature2D.detectAndCompute mask as optional in Python type stubs \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27544\"\u003e#27544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMarked distCoeffs/R/D as optional in calib3d functions \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27564\"\u003e#27564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded DLPACK support \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27581\"\u003e#27581\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27861\"\u003e#27861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed memory leaks in pybindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27738\"\u003e#27738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PathLike type hints for args annotated with CV_WRAP_FILE_PATH \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27767\"\u003e#27767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed memory leak in pyopencv_to for path-like objects \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28047\"\u003e#28047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTunned Python bindings: use export_name as resolved typename for AliasTypeNode \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27997\"\u003e#27997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epython: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28093\"\u003e#28093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed python scalar typing issues \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27620\"\u003e#27620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed bug in ifdef state machine in header parser for bindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27393\"\u003e#27393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap GridType field in cv::findCirclesGrid parameters structure \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27689\"\u003e#27689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.3 to 1.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.0\u003c/code\u003e is the culmination of 6 months of hard work. It contains\nmany new features, numerous bug-fixes, improved test coverage and better\ndocumentation. There have been a number of deprecations and API changes\nin this release, which are documented below. All users are encouraged to\nupgrade to this release, as there are a large number of bug-fixes and\noptimizations. Before upgrading, we recommend that users check that\ntheir own code does not use deprecated SciPy functionality (to do so,\nrun your code with \u003ccode\u003epython -Wd\u003c/code\u003e and check for \u003ccode\u003eDeprecationWarning\u003c/code\u003e s).\nOur development attention will now shift to bug-fix releases on the\n\u003ccode\u003e1.17.x\u003c/code\u003e branch, and on adding new features on the main branch.\u003c/p\u003e\n\u003cp\u003eThis release requires Python \u003ccode\u003e3.11\u003c/code\u003e-\u003ccode\u003e3.14\u003c/code\u003e and NumPy \u003ccode\u003e1.26.4\u003c/code\u003e or greater.\u003c/p\u003e\n\u003ch1\u003eHighlights of this release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMany SciPy functions have gained native support for batching of N-dimensional\narray input and additional support for the array API standard. An overall\nsummary of the latter is now available in a \u003ca href=\"https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage\"\u003eset of tables\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.sparse\u003c/code\u003e, \u003ccode\u003ecoo_array\u003c/code\u003e now supports indexing. This includes integers,\nslices, arrays, \u003ccode\u003enp.newaxis\u003c/code\u003e, \u003ccode\u003eEllipsis\u003c/code\u003e, in 1D, 2D and the relatively\nnew nD. In \u003ccode\u003escipy.sparse.linalg\u003c/code\u003e, ARPACK and PROPACK rewrites from Fortran77\nto C now empower the use of external pseudorandom number generators, e.g.\nfrom numpy.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.spatial\u003c/code\u003e, \u003ccode\u003etransform.Rotation\u003c/code\u003e and \u003ccode\u003etransform.RigidTransform\u003c/code\u003e\nhave been extended to support N-D arrays. \u003ccode\u003egeometric_slerp\u003c/code\u003e now has support\nfor extrapolation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.stats\u003c/code\u003e has gained the matrix t and logistic distributions and many\nperformance and accuracy improvements.\u003c/li\u003e\n\u003cli\u003eInitial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has\nbeen added, including for MKL and Apple Accelerate. Please report any issues with\nILP64 you encounter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew features\u003c/h1\u003e\n\u003ch1\u003e\u003ccode\u003escipy.integrate\u003c/code\u003e improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThe integration routines \u003ccode\u003edopri5\u003c/code\u003e, \u003ccode\u003edopri853\u003c/code\u003e, \u003ccode\u003eLSODA\u003c/code\u003e, \u003ccode\u003evode\u003c/code\u003e, and\n\u003ccode\u003ezvode\u003c/code\u003e have been ported from Fortran77 to C.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.integrate.quad\u003c/code\u003e now has a fast path for returning 0 when the integration\ninterval is empty.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eBDF\u003c/code\u003e, \u003ccode\u003eDOP853\u003c/code\u003e, \u003ccode\u003eRK23\u003c/code\u003e, \u003ccode\u003eRK45\u003c/code\u003e, \u003ccode\u003eOdeSolver\u003c/code\u003e, \u003ccode\u003eDenseOutput\u003c/code\u003e,\n\u003ccode\u003eode\u003c/code\u003e, and \u003ccode\u003ecomplex_ode\u003c/code\u003e classes now support subscription, making them\ngeneric types, for compatibility with \u003ccode\u003escipy-stubs\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c75ae75176236f233824e9a0483c26a69e6dfec\"\u003e\u003ccode\u003e8c75ae7\u003c/code\u003e\u003c/a\u003e REL: 1.17.0 \u0026quot;final\u0026quot; release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9d7f110540b5f054cfd99820b5eb02b56a7f2aab\"\u003e\u003ccode\u003e9d7f110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24298\"\u003e#24298\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.0_final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/94373b602e384cf613e1287b209609a7908c6f5e\"\u003e\u003ccode\u003e94373b6\u003c/code\u003e\u003c/a\u003e MAINT: test wheels [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/723f4e2f83214c237d6afa8a9761f4ef1e00c1fe\"\u003e\u003ccode\u003e723f4e2\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 relnotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bf042f043f1f59a1856827c249453d899abc12fc\"\u003e\u003ccode\u003ebf042f0\u003c/code\u003e\u003c/a\u003e CI: ensure we use pinned scipy-openblas version also in ILP64 job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3e00a04941ca2e7cacf6130fd9c28a8aeeefcad8\"\u003e\u003ccode\u003e3e00a04\u003c/code\u003e\u003c/a\u003e CI: fix issue with ILP64 job; point to fixed numpy/meson commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/39bceab6f85ae717595c2291f6efe0ca29c53ee0\"\u003e\u003ccode\u003e39bceab\u003c/code\u003e\u003c/a\u003e BUG: stats: fix va_args memory corruption bug\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8f563872fa61c891fede2b547c02190413ec9858\"\u003e\u003ccode\u003e8f56387\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/c50e9c03eafec0bb7703acafffc948deb78a567c\"\u003e\u003ccode\u003ec50e9c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24304\"\u003e#24304\u003c/a\u003e from ev-br/edit_relnotes_for_ILP64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/b204495c6122f3670c67000ae29963676024be87\"\u003e\u003ccode\u003eb204495\u003c/code\u003e\u003c/a\u003e DOC: clarify ILP64 support caveats in the release notes, remove mentions of O...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.3...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.25.1 to 2.27.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/384","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/384","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/384/packages"},{"uuid":"3888203792","node_id":"PR_kwDOJKSTjM7BCE1L","number":11934,"state":"open","title":"chore(libs/deps): bump the production-dependencies group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["size/xl","dependencies","python"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-03T00:00:10.000Z","updated_at":"2026-02-07T00:01:10.385Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(libs/deps): bump","group_name":"production-dependencies","update_count":8,"packages":[{"name":"fastapi","old_version":"0.116.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"launchdarkly-server-sdk","old_version":"9.12.0","new_version":"9.14.1","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.16.0","new_version":"2.27.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 8 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.116.1` | `0.128.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.12.0` | `9.14.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.12.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.16.0` | `2.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n\n\nUpdates `fastapi` from 0.116.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.116.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.12.0 to 9.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.14.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1\"\u003e9.14.1\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e441a5ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0\"\u003e9.14.0\u003c/a\u003e (2025-12-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadding data system option to create file datasource intializer (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003ee5b121f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e3700d1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003ee6395fa\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/386\"\u003e#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emodified initializer behavior to spec (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e064f65c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.13.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1\"\u003e9.13.1\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude ldclient.datasystem in docs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/379\"\u003e#379\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/318c6fea0738d296713768afc8e08ee9b2360dc2\"\u003e318c6fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0\"\u003e9.13.0\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1\"\u003e9.14.1\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e441a5ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0\"\u003e9.14.0\u003c/a\u003e (2025-12-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadding data system option to create file datasource intializer (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003ee5b121f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e3700d1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003ee6395fa\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/386\"\u003e#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emodified initializer behavior to spec (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e064f65c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1\"\u003e9.13.1\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude ldclient.datasystem in docs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/379\"\u003e#379\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/318c6fea0738d296713768afc8e08ee9b2360dc2\"\u003e318c6fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0\"\u003e9.13.0\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Release EAP support for FDv2 data system (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/376\"\u003e#376\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/0e7c32b4df12daef25e9b2e9b637225c3e74a2dd\"\u003e0e7c32b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.2...9.12.3\"\u003e9.12.3\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix overly generic type hint on File data source (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/365\"\u003e#365\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/52a7499f7cf1d4311f89fa98e65bca670e127aa6\"\u003e52a7499\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.1...9.12.2\"\u003e9.12.2\u003c/a\u003e (2025-10-27)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect event count in failure message (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/359\"\u003e#359\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/91f416329bd3e53a622ce58caa63cdd6cdcc8896\"\u003e91f4163\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.12.1\"\u003e9.12.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/54e62cc706443035e828fa6d9042950239544239\"\u003e\u003ccode\u003e54e62cc\u003c/code\u003e\u003c/a\u003e chore(main): release 9.14.1 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e\u003ccode\u003e441a5ec\u003c/code\u003e\u003c/a\u003e fix: Remove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/7bb537827ffdee0cc3b89c6e57115968649551b2\"\u003e\u003ccode\u003e7bb5378\u003c/code\u003e\u003c/a\u003e chore(main): release 9.14.0 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003e\u003ccode\u003ee6395fa\u003c/code\u003e\u003c/a\u003e fix: Add warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/45786a9a7e6608d19f4dd0ac185d3c4aaf1bbf83\"\u003e\u003ccode\u003e45786a9\u003c/code\u003e\u003c/a\u003e chore: Expose flag change listeners from data system (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/2b7eedc83618ba430ae4f501a32f678c252cb0fa\"\u003e\u003ccode\u003e2b7eedc\u003c/code\u003e\u003c/a\u003e chore: Clean up unused _data_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e\u003ccode\u003e3700d1d\u003c/code\u003e\u003c/a\u003e feat: adding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/04a2c538e5d0f1f87f35feaaa949ae55d3cb8716\"\u003e\u003ccode\u003e04a2c53\u003c/code\u003e\u003c/a\u003e chore: PR comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e\u003ccode\u003e064f65c\u003c/code\u003e\u003c/a\u003e fix: modified initializer behavior to spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003e\u003ccode\u003ee5b121f\u003c/code\u003e\u003c/a\u003e feat: adding data system option to create file datasource intializer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.7 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.16.0 to 2.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26....\n\n_Description has been truncated_","html_url":"https://github.com/Significant-Gravitas/AutoGPT/pull/11934","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Significant-Gravitas%2FAutoGPT/issues/11934","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11934/packages"},{"uuid":"3855233586","node_id":"PR_kwDOPTwklM6_VBmR","number":369,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T09:47:17.000Z","updated_at":"2026-02-02T10:41:02.707Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"numpy","old_version":"2.3.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"google-cloud-monitoring","old_version":"2.28.0","new_version":"2.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"opencv-python","old_version":"4.12.0.88","new_version":"4.13.0.90","repository_url":"https://github.com/opencv/opencv-python"},{"name":"scipy","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"supabase","old_version":"2.25.1","new_version":"2.27.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"pytest-asyncio","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"celery","old_version":"5.6.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.9.1","new_version":"2.10.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"fastapi","old_version":"0.124.4","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"torchvision","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/pytorch/vision"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.4.1` |\n| [google-cloud-monitoring](https://github.com/googleapis/google-cloud-python) | `2.28.0` | `2.29.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [opencv-python](https://github.com/opencv/opencv-python) | `4.12.0.88` | `4.13.0.90` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.3` | `1.17.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.25.1` | `2.27.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.25.2` | `0.26.0` |\n| [celery](https://github.com/celery/celery) | `5.6.0` | `5.6.2` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.9.1` | `2.10.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.4` | `0.128.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.24.1` | `0.25.0` |\n\n\nUpdates `werkzeug` from 3.1.4 to 3.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.5/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/43?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/43?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless of extension or surrounding spaces. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-87hc-h4r5-73f7\"\u003eGHSA-87hc-h4r5-73f7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary. This fixes the previous attempt, which caused incorrect content lengths. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3077\"\u003e#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with \u003ccode\u003epin_security=False\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3075\"\u003e#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2026-01-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless\nof extension or surrounding spaces. :ghsa:\u003ccode\u003e87hc-h4r5-73f7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary.\nThis fixes the previous attempt, which caused incorrect content lengths.\n:issue:\u003ccode\u003e3065\u003c/code\u003e :issue:\u003ccode\u003e3077\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with\n\u003ccode\u003epin_security=False\u003c/code\u003e. :issue:\u003ccode\u003e3075\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/e3d06f4b1f7ff40a63eba78f81d9cda18f805d6d\"\u003e\u003ccode\u003ee3d06f4\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7ae1d254e04a0c33e241ac1cca4783ce6c875ca3\"\u003e\u003ccode\u003e7ae1d25\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/37797aba260022c871718e0908b472727d366d09\"\u003e\u003ccode\u003e37797ab\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esafe_join\u003c/code\u003e prevents windows special device names with compound extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3db44c79caa74c00848ceefb0bd3d608e3d09cea\"\u003e\u003ccode\u003e3db44c7\u003c/code\u003e\u003c/a\u003e fix duplicate reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/a40f8fa05ff1108ba1096e7cd359d0599f5cd386\"\u003e\u003ccode\u003ea40f8fa\u003c/code\u003e\u003c/a\u003e fix class name typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/0f76c353b10afc2f8129aa3684ccc3262516a0c0\"\u003e\u003ccode\u003e0f76c35\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3081\"\u003e#3081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/1049dd6b2a363e1ef302b4161c340fb8582f627a\"\u003e\u003ccode\u003e1049dd6\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b48878cf16dfca3c89ac58aca47ab1ecfcb71354\"\u003e\u003ccode\u003eb48878c\u003c/code\u003e\u003c/a\u003e initialize \u003ccode\u003e_pin\u003c/code\u003e in debugger (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/fa0f4f2710b8eaffef7f2b3fbc58fc3ca55247fb\"\u003e\u003ccode\u003efa0f4f2\u003c/code\u003e\u003c/a\u003e initialize _pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f637275bfa68ebd80bec1da9173211ce2dc4fa33\"\u003e\u003ccode\u003ef637275\u003c/code\u003e\u003c/a\u003e start version 3.1.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.4...3.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak in flat assignment iterator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30516\"\u003e#30516\u003c/a\u003e: BUG: fix heap overflow in fixed-width string multiply (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30511\"\u003e#30511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30523\"\u003e#30523\u003c/a\u003e: BUG: Ensure summed weights returned by np.average always are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30527\"\u003e#30527\u003c/a\u003e: TYP: Fix return type of histogram2d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30594\"\u003e#30594\u003c/a\u003e: MAINT: avoid passing ints to random functions that take double...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30595\"\u003e#30595\u003c/a\u003e: BLD: Avoiding conflict with pygit2 for static build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30596\"\u003e#30596\u003c/a\u003e: MAINT: Fix msvccompiler missing error on FreeBSD\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30608\"\u003e#30608\u003c/a\u003e: BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30620\"\u003e#30620\u003c/a\u003e: ENH: use more fine-grained critical sections in array coercion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30623\"\u003e#30623\u003c/a\u003e: BUG: Undo result type change of quantile/percentile but keep...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003cli\u003eYou can use the \u003ccode\u003ekeyring\u003c/code\u003e app to store the PyPI password for twine. See the\nonline twine documentation for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003cp\u003eCheck the numpy-release repo\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d24bb7f48d3b0e3471c68f1309c130d0b65ee72a\"\u003e\u003ccode\u003ed24bb7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30624\"\u003e#30624\u003c/a\u003e from charris/prepare-for-2.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d3bfd6d61d8b5a9429aebe2b58070381a289aeac\"\u003e\u003ccode\u003ed3bfd6d\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/abe3d863a1e945183f173cf29428699965c10b1c\"\u003e\u003ccode\u003eabe3d86\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30623\"\u003e#30623\u003c/a\u003e from charris/backport-30601\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5d8907855c225864d7d741254d48448119b41a84\"\u003e\u003ccode\u003e5d89078\u003c/code\u003e\u003c/a\u003e TST: Add test showing that q promotes (for \u0026quot;interpolating ones\u0026quot;)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/16890cea47e717ae3d7cea546797f1e4a1959c75\"\u003e\u003ccode\u003e16890ce\u003c/code\u003e\u003c/a\u003e BUG: Fix result type change and make weak q safe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bf7ef0be8532985cd5d05424e0f7747a4750f7cc\"\u003e\u003ccode\u003ebf7ef0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30620\"\u003e#30620\u003c/a\u003e from charris/backport-30514\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3d3af25fe7830f66fbf903aebd765999404376c4\"\u003e\u003ccode\u003e3d3af25\u003c/code\u003e\u003c/a\u003e ENH: use more fine-grained critical sections in array coercion internals (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30\"\u003e#30\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8b7f19798e654c572d1a918da35f73933b6d6047\"\u003e\u003ccode\u003e8b7f197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30608\"\u003e#30608\u003c/a\u003e from charris/update-vendored-meson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/30999f623181dc4b8c71cf359463484b9aab4157\"\u003e\u003ccode\u003e30999f6\u003c/code\u003e\u003c/a\u003e BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e6bea65b639820b5672a5dced69a231ed5f01176\"\u003e\u003ccode\u003ee6bea65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30596\"\u003e#30596\u003c/a\u003e from charris/remove-msvccompiler-check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-monitoring` from 2.28.0 to 2.29.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-monitoring's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.28.0...google-cloud-documentai-v2.29.0\"\u003e2.29.0\u003c/a\u003e (2024-06-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-documentai] Make Layout Parser generally available in V1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/12762\"\u003e#12762\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9fd16ad8837e31c3b06475b195c70c45f6979f6c\"\u003e9fd16ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/34fcd0469b1ee749329a59ccb3b93c760bd01f52\"\u003e\u003ccode\u003e34fcd04\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260109T154410Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15014\"\u003e#15014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bfa895cf4364e1633fe1d5a819637599d9014a38\"\u003e\u003ccode\u003ebfa895c\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260108T223611Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15011\"\u003e#15011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/63cc1cdfdc37c409bf13260147aef028adace2b2\"\u003e\u003ccode\u003e63cc1cd\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260108T222925Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15010\"\u003e#15010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.28.0...google-cloud-monitoring-v2.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opencv-python` from 4.12.0.88 to 4.13.0.90\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0.90\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.13.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython specific:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManylinux 2_28 support, Numpy 2.4 support, Python 3.14 support\u003c/li\u003e\n\u003cli\u003eTuned Python bindings for logging \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27812\"\u003e#27812\u003c/a\u003e\nMarked Feature2D.detectAndCompute mask as optional in Python type stubs \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27544\"\u003e#27544\u003c/a\u003e\nMarked distCoeffs/R/D as optional in calib3d functions \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27564\"\u003e#27564\u003c/a\u003e\nAdded DLPACK support \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27581\"\u003e#27581\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27861\"\u003e#27861\u003c/a\u003e\nFixed memory leaks in pybindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27738\"\u003e#27738\u003c/a\u003e\nAdd PathLike type hints for args annotated with CV_WRAP_FILE_PATH \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27767\"\u003e#27767\u003c/a\u003e\nFixed memory leak in pyopencv_to for path-like objects \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28047\"\u003e#28047\u003c/a\u003e\nTunned Python bindings: use export_name as resolved typename for AliasTypeNode \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27997\"\u003e#27997\u003c/a\u003e\npython: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28093\"\u003e#28093\u003c/a\u003e\nFixed python scalar typing issues \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27620\"\u003e#27620\u003c/a\u003e\nFixed bug in ifdef state machine in header parser for bindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27393\"\u003e#27393\u003c/a\u003e\nWrap GridType field in cv::findCirclesGrid parameters structure \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27689\"\u003e#27689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.3 to 1.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.0\u003c/code\u003e is the culmination of 6 months of hard work. It contains\nmany new features, numerous bug-fixes, improved test coverage and better\ndocumentation. There have been a number of deprecations and API changes\nin this release, which are documented below. All users are encouraged to\nupgrade to this release, as there are a large number of bug-fixes and\noptimizations. Before upgrading, we recommend that users check that\ntheir own code does not use deprecated SciPy functionality (to do so,\nrun your code with \u003ccode\u003epython -Wd\u003c/code\u003e and check for \u003ccode\u003eDeprecationWarning\u003c/code\u003e s).\nOur development attention will now shift to bug-fix releases on the\n\u003ccode\u003e1.17.x\u003c/code\u003e branch, and on adding new features on the main branch.\u003c/p\u003e\n\u003cp\u003eThis release requires Python \u003ccode\u003e3.11\u003c/code\u003e-\u003ccode\u003e3.14\u003c/code\u003e and NumPy \u003ccode\u003e1.26.4\u003c/code\u003e or greater.\u003c/p\u003e\n\u003ch1\u003eHighlights of this release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMany SciPy functions have gained native support for batching of N-dimensional\narray input and additional support for the array API standard. An overall\nsummary of the latter is now available in a \u003ca href=\"https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage\"\u003eset of tables\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.sparse\u003c/code\u003e, \u003ccode\u003ecoo_array\u003c/code\u003e now supports indexing. This includes integers,\nslices, arrays, \u003ccode\u003enp.newaxis\u003c/code\u003e, \u003ccode\u003eEllipsis\u003c/code\u003e, in 1D, 2D and the relatively\nnew nD. In \u003ccode\u003escipy.sparse.linalg\u003c/code\u003e, ARPACK and PROPACK rewrites from Fortran77\nto C now empower the use of external pseudorandom number generators, e.g.\nfrom numpy.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.spatial\u003c/code\u003e, \u003ccode\u003etransform.Rotation\u003c/code\u003e and \u003ccode\u003etransform.RigidTransform\u003c/code\u003e\nhave been extended to support N-D arrays. \u003ccode\u003egeometric_slerp\u003c/code\u003e now has support\nfor extrapolation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.stats\u003c/code\u003e has gained the matrix t and logistic distributions and many\nperformance and accuracy improvements.\u003c/li\u003e\n\u003cli\u003eInitial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has\nbeen added, including for MKL and Apple Accelerate. Please report any issues with\nILP64 you encounter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew features\u003c/h1\u003e\n\u003ch1\u003e\u003ccode\u003escipy.integrate\u003c/code\u003e improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThe integration routines \u003ccode\u003edopri5\u003c/code\u003e, \u003ccode\u003edopri853\u003c/code\u003e, \u003ccode\u003eLSODA\u003c/code\u003e, \u003ccode\u003evode\u003c/code\u003e, and\n\u003ccode\u003ezvode\u003c/code\u003e have been ported from Fortran77 to C.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.integrate.quad\u003c/code\u003e now has a fast path for returning 0 when the integration\ninterval is empty.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eBDF\u003c/code\u003e, \u003ccode\u003eDOP853\u003c/code\u003e, \u003ccode\u003eRK23\u003c/code\u003e, \u003ccode\u003eRK45\u003c/code\u003e, \u003ccode\u003eOdeSolver\u003c/code\u003e, \u003ccode\u003eDenseOutput\u003c/code\u003e,\n\u003ccode\u003eode\u003c/code\u003e, and \u003ccode\u003ecomplex_ode\u003c/code\u003e classes now support subscription, making them\ngeneric types, for compatibility with \u003ccode\u003escipy-stubs\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c75ae75176236f233824e9a0483c26a69e6dfec\"\u003e\u003ccode\u003e8c75ae7\u003c/code\u003e\u003c/a\u003e REL: 1.17.0 \u0026quot;final\u0026quot; release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9d7f110540b5f054cfd99820b5eb02b56a7f2aab\"\u003e\u003ccode\u003e9d7f110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24298\"\u003e#24298\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.0_final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/94373b602e384cf613e1287b209609a7908c6f5e\"\u003e\u003ccode\u003e94373b6\u003c/code\u003e\u003c/a\u003e MAINT: test wheels [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/723f4e2f83214c237d6afa8a9761f4ef1e00c1fe\"\u003e\u003ccode\u003e723f4e2\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 relnotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bf042f043f1f59a1856827c249453d899abc12fc\"\u003e\u003ccode\u003ebf042f0\u003c/code\u003e\u003c/a\u003e CI: ensure we use pinned scipy-openblas version also in ILP64 job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3e00a04941ca2e7cacf6130fd9c28a8aeeefcad8\"\u003e\u003ccode\u003e3e00a04\u003c/code\u003e\u003c/a\u003e CI: fix issue with ILP64 job; point to fixed numpy/meson commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/39bceab6f85ae717595c2291f6efe0ca29c53ee0\"\u003e\u003ccode\u003e39bceab\u003c/code\u003e\u003c/a\u003e BUG: stats: fix va_args memory corruption bug\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8f563872fa61c891fede2b547c02190413ec9858\"\u003e\u003ccode\u003e8f56387\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/c50e9c03eafec0bb7703acafffc948deb78a567c\"\u003e\u003ccode\u003ec50e9c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24304\"\u003e#24304\u003c/a\u003e from ev-br/edit_relnotes_for_ILP64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/b204495c6122f3670c67000ae29963676024be87\"\u003e\u003ccode\u003eb204495\u003c/code\u003e\u003c/a\u003e DOC: clarify ILP64 support caveats in the release notes, remove mentions of O...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.3...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.25.1 to 2.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e remove v1 from path concatenation (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1330\"\u003e#1330\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/e3ddf408293caa318f25fc2c3048373442ac6edc\"\u003ee3ddf40\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e remove v1 from path concatenation (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1330\"\u003e#1330\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/e3ddf408293caa318f25fc2c3048373442ac6edc\"\u003ee3ddf40\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81729ca6e329844ca917742aa23ed4041fe91b9d\"\u003e\u003ccode\u003e81729ca\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1350\"\u003e#1350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003e\u003ccode\u003ea221aac\u003c/code\u003e\u003c/a\u003e fix(ci): run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003e\u003ccode\u003ec2ad37f\u003c/code\u003e\u003c/a\u003e fix(ci): generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003e\u003ccode\u003ecfbe594\u003c/code\u003e\u003c/a\u003e fix(realtime): ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/ad047a5d3059457e581fbcd1de33bfac183e9ffa\"\u003e\u003ccode\u003ead047a5\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1343\"\u003e#1343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003e\u003ccode\u003eddb5054\u003c/code\u003e\u003c/a\u003e fix(storage): catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003e\u003ccode\u003ec1e7986\u003c/code\u003e\u003c/a\u003e fix(realtime): use 'event' instead of 'events' in postgres_changes protocol (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/64a0483cd3a56a302b5f46ad4010e96c92c6db94\"\u003e\u003ccode\u003e64a0483\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.0 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e\u003ccode\u003e6df3545\u003c/code\u003e\u003c/a\u003e fix(storage): replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003e\u003ccode\u003ef600f96\u003c/code\u003e\u003c/a\u003e feat(auth): add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.25.2 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 0.26.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds configuration option that sets default event loop scope for all tests \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/793\"\u003e#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved type annotations for \u003ccode\u003epytest_asyncio.fixture\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/pull/1045\"\u003e#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003etyping-extensions\u003c/code\u003e as additional dependency for Python \u003ccode\u003e\u0026lt;3.10\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/pull/1045\"\u003e#1045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 0.25.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid errors in cleanup of async generators when event loop is already closed \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1040\"\u003e#1040\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4f8ce457b0a52eba1233349e740ca9e7fb400804\"\u003e\u003ccode\u003e4f8ce45\u003c/code\u003e\u003c/a\u003e docs: Prepare release of v0.26.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/498e8a7786b85027bd8e9992f8af6a05a90e3786\"\u003e\u003ccode\u003e498e8a7\u003c/code\u003e\u003c/a\u003e Build(deps): Bump attrs from 25.1.0 to 25.3.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/01c22ffb63f3bdd158b7d35bd14f8a45ba35338e\"\u003e\u003ccode\u003e01c22ff\u003c/code\u003e\u003c/a\u003e build:  Update project metadata to use SPDX license identifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/78191c98ed4792cd9352bfff0885cc041ee2b1ed\"\u003e\u003ccode\u003e78191c9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/9a455516ea423fd29c3f45878713ca1715b899e6\"\u003e\u003ccode\u003e9a45551\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/66804094397afc7b4c905c113209a89e4df7a3d5\"\u003e\u003ccode\u003e6680409\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.7.0 to 7.7.1 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/aa82c574feae8611170150222b41bd4c1e72855d\"\u003e\u003ccode\u003eaa82c57\u003c/code\u003e\u003c/a\u003e Build(deps): Bump iniconfig from 2.0.0 to 2.1.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cca587ea4f2c09b1b25b56cb4a22c44677cf27fc\"\u003e\u003ccode\u003ecca587e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/5d90b296218ef8c3d2bbafd70736bece18eeb984\"\u003e\u003ccode\u003e5d90b29\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/c2622628b6ca1f2d583df375cc370070c2c0c54e\"\u003e\u003ccode\u003ec262262\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.6.12 to 7.7.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.6.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.50.0 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.50.0...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.9.1 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.10.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the \u003ca href=\"https://pytorch.org/blog/pytorch-2-10-release-blog/\"\u003erelease blogpost\u003c/a\u003e. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eDataloader Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved unused \u003ccode\u003edata_source\u003c/code\u003e argument from Sampler (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/163134\"\u003e#163134\u003c/a\u003e). This is a no-op, unless you have a custom sampler that uses this argument. Please update your custom sampler accordingly.\u003c/li\u003e\n\u003cli\u003eRemoved deprecated imports for torch.utils.data.datapipes.iter.grouping (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/163438\"\u003e#163438\u003c/a\u003e). \u003ccode\u003efrom torch.utils.data.datapipes.iter.grouping import SHARDING_PRIORITIES, ShardingFilterIterDataPipe\u003c/code\u003e is no longer supported. Please import from \u003ccode\u003etorch.utils.data.datapipes.iter.sharding\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Nested Jagged Tensor support from \u003ccode\u003enn.attention.flex_attention\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/161734\"\u003e#161734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449b1768410104d3ed79d3bcfe4ba1d65c7f22c0\"\u003e\u003ccode\u003e449b176\u003c/code\u003e\u003c/a\u003e Add Joe Spisak to Core maintainers list (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172585\"\u003e#172585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f6e6c0aeccd2fc6cc1a5551760285c716144f54b\"\u003e\u003ccode\u003ef6e6c0a\u003c/code\u003e\u003c/a\u003e [Graph Partition] Improve support for mutation ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172577\"\u003e#172577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99cb42467a3109be40378c0b3814ccc4c2815790\"\u003e\u003ccode\u003e99cb424\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Add IoU-based accuracy checking for inductor tests segmentation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/1f74c10529e1fab25a092ed58a00bf1689ace60b\"\u003e\u003ccode\u003e1f74c10\u003c/code\u003e\u003c/a\u003e [CI] Add IoU-based accuracy checking for inductor tests segmentation models (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e43b5bfde0a39bdd01514eb478373e56761207d8\"\u003e\u003ccode\u003ee43b5bf\u003c/code\u003e\u003c/a\u003e Bump fbgemm and torchrec pinned commit (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172179\"\u003e#172179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/2c9af439c6f8284b6134a3821b1b9042cab24f50\"\u003e\u003ccode\u003e2c9af43\u003c/code\u003e\u003c/a\u003e Skip modded_nanogpt model in TorchInductor benchmark (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172141\"\u003e#172141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0e2459f08fc5329979e6ad986014278f2a87618c\"\u003e\u003ccode\u003e0e2459f\u003c/code\u003e\u003c/a\u003e A few weights_only unpickler fixes (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172105\"\u003e#172105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/a266b606beaa94ca3cdf410d72a16d060b310439\"\u003e\u003ccode\u003ea266b60\u003c/code\u003e\u003c/a\u003e Touch \u003ccode\u003e__init__.py\u003c/code\u003e in \u003ccode\u003evendored_templates\u003c/code\u003e for CuTeDSL Grouped MM template (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f3b5d8b6bf3c44dda5d9eedb8962bb04cee3cb9b\"\u003e\u003ccode\u003ef3b5d8b\u003c/code\u003e\u003c/a\u003e [MPS] Remove error-checking sync point from MaxUnpool (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172111\"\u003e#172111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/3a5fb54c2ba17698a79243bfb410af7174c6e689\"\u003e\u003ccode\u003e3a5fb54\u003c/code\u003e\u003c/a\u003e Fix MPS mul performance regression (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172106\"\u003e#172106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.9.1...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.124.4 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca...\n\n_Description has been truncated_","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/369/packages"}],"issue_packages":[{"old_version":"3.15.0","new_version":"3.16.0","update_type":"minor","path":null,"pr_created_at":"2026-06-08T03:10:39.000Z","version_change":"3.15.0 → 3.16.0","issue":{"uuid":"4609730176","node_id":"PR_kwDOSKhg787jvVND","number":14,"state":"open","title":"chore(deps)(deps): Bump the python-minor-and-patch group across 1 directory with 5 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-08T03:10:39.000Z","updated_at":"2026-06-08T03:10:40.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): Bump","group_name":"python-minor-and-patch","update_count":5,"packages":[{"name":"gcsfs","old_version":"2026.3.0","new_version":"2026.5.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-cloud-logging","old_version":"3.15.0","new_version":"3.16.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"ruff","old_version":"0.15.11","new_version":"0.15.16","repository_url":"https://github.com/astral-sh/ruff"},{"name":"ty","old_version":"0.0.32","new_version":"0.0.44","repository_url":"https://github.com/astral-sh/ty"},{"name":"pytest-asyncio","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-minor-and-patch group with 5 updates in the /coderank-reviewer directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2026.3.0` | `2026.5.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.15.0` | `3.16.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.11` | `0.15.16` |\n| [ty](https://github.com/astral-sh/ty) | `0.0.32` | `0.0.44` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `1.3.0` | `1.4.0` |\n\n\nUpdates `gcsfs` from 2026.3.0 to 2026.5.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fsspec/gcsfs/releases\"\u003egcsfs's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2026.5.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix zonal documentation about finalized objects by \u003ca href=\"https://github.com/Mahalaxmibejugam\"\u003e\u003ccode\u003e@​Mahalaxmibejugam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/828\"\u003efsspec/gcsfs#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable branch wise tracking by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/819\"\u003efsspec/gcsfs#819\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: adjust fsspec dependency version constraint by \u003ca href=\"https://github.com/zhixiangli\"\u003e\u003ccode\u003e@​zhixiangli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/834\"\u003efsspec/gcsfs#834\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for partial prefixes in find method for HNS buckets by \u003ca href=\"https://github.com/Mahalaxmibejugam\"\u003e\u003ccode\u003e@​Mahalaxmibejugam\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/831\"\u003efsspec/gcsfs#831\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd workflow to automate PyPI package publishing on release by \u003ca href=\"https://github.com/Yonghui-Lee\"\u003e\u003ccode\u003e@​Yonghui-Lee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/824\"\u003efsspec/gcsfs#824\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix HttpError message formatting and handle None content in validate_response by \u003ca href=\"https://github.com/zhixiangli\"\u003e\u003ccode\u003e@​zhixiangli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/835\"\u003efsspec/gcsfs#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIntegrate prefetcher engine with zonal buckets by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/805\"\u003efsspec/gcsfs#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate the benchmark config, and fix the block size propogation by \u003ca href=\"https://github.com/googlyrahman\"\u003e\u003ccode\u003e@​googlyrahman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/808\"\u003efsspec/gcsfs#808\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pypi environment to release workflow by \u003ca href=\"https://github.com/Yonghui-Lee\"\u003e\u003ccode\u003e@​Yonghui-Lee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/pull/836\"\u003efsspec/gcsfs#836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2026.4.0...2026.5.0\"\u003ehttps://github.com/fsspec/gcsfs/compare/2026.4.0...2026.5.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/255e4f866ae2c66dbca14a0aaa3dea024156997f\"\u003e\u003ccode\u003e255e4f8\u003c/code\u003e\u003c/a\u003e Add pypi environment to release workflow (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/2fa8b5a1c9d973e028a1939495cd640be923ed5d\"\u003e\u003ccode\u003e2fa8b5a\u003c/code\u003e\u003c/a\u003e Update the benchmark config, and fix the block size propogation (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/808\"\u003e#808\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/37b7f1a7a6be20ce71ae1d5db60143cee46519c5\"\u003e\u003ccode\u003e37b7f1a\u003c/code\u003e\u003c/a\u003e Integrate prefetcher engine with zonal buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b2af5b89fb1e39616d23725e95ec7292b10529cc\"\u003e\u003ccode\u003eb2af5b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/835\"\u003e#835\u003c/a\u003e from zhixiangli/fix-httperror-content-none\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b89bb899afcc753e40a6f29681c7764b77cbc661\"\u003e\u003ccode\u003eb89bb89\u003c/code\u003e\u003c/a\u003e Add workflow to automate PyPI package publishing on release (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/824\"\u003e#824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/14bb32a4b7ac1398d044e2b426441c2593b92196\"\u003e\u003ccode\u003e14bb32a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/831\"\u003e#831\u003c/a\u003e from ankitaluthra1/fix-find-partial-prefixes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/820c0418861219b1e578736e5b18449e9ddebfb5\"\u003e\u003ccode\u003e820c041\u003c/code\u003e\u003c/a\u003e fix: adjust fsspec dependency version constraint (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/005cc2e478a8e9107164c21d1e2e5549cc287103\"\u003e\u003ccode\u003e005cc2e\u003c/code\u003e\u003c/a\u003e add more coverage\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/c54372993806e4c0e1a05107ffd08acbe41b0b1c\"\u003e\u003ccode\u003ec543729\u003c/code\u003e\u003c/a\u003e fix issue with special characters in rm method\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/5cb0d32633f32dfd2fa15667e55127244a5b6a08\"\u003e\u003ccode\u003e5cb0d32\u003c/code\u003e\u003c/a\u003e Enable branch wise tracking (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2026.3.0...2026.5.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.15.0 to 3.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.16.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.15.0...google-cloud-logging-v3.16.0\"\u003ev3.16.0\u003c/a\u003e (2026-06-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edrop support for Python 3.7, 3.8, and 3.9 runtimes (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17276\"\u003e#17276\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/014e951b\"\u003e014e951b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5accbb42b3f8372c4d03ef59a6b0000b165f2200\"\u003e\u003ccode\u003e5accbb4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260602T021047Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17336\"\u003e#17336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/86e57cb9b6ec4266773e99e8a5f60eda78cd1e11\"\u003e\u003ccode\u003e86e57cb\u003c/code\u003e\u003c/a\u003e fix(spanner_dbapi): replace insecure pickle with json for partition deseriali...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6b62cb6fb3de94326b8944ae08a400c12529cad2\"\u003e\u003ccode\u003e6b62cb6\u003c/code\u003e\u003c/a\u003e feat(bigframes): Add ai_generate functions to the dataframe bq accessor (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17302\"\u003e#17302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/54fd04b618127ca20ae8f183734ea07add1af876\"\u003e\u003ccode\u003e54fd04b\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260529T145921Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17312\"\u003e#17312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c04f892621ceeefb5e2dcbf2b9ea0dddb1b9ad31\"\u003e\u003ccode\u003ec04f892\u003c/code\u003e\u003c/a\u003e chore: update googleapis and regenerate (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17313\"\u003e#17313\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1c2e24f3da44ecfdefe9acb099e28d41d66d46d2\"\u003e\u003ccode\u003e1c2e24f\u003c/code\u003e\u003c/a\u003e chore: generate google-cloud-monitoring-dashboards (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17309\"\u003e#17309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/06965d82a9676c6e0797bf20e616f2d14332c443\"\u003e\u003ccode\u003e06965d8\u003c/code\u003e\u003c/a\u003e chore: generate google-cloud-containeranalysis (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17308\"\u003e#17308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/20242246da615ef75d7ed64e0dfd2d6f72537583\"\u003e\u003ccode\u003e2024224\u003c/code\u003e\u003c/a\u003e chore: generate grafeas (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/17307\"\u003e#17307\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9f2ed920d6525f1a1dd51c1b09ca848a04c28c78\"\u003e\u003ccode\u003e9f2ed92\u003c/code\u003e\u003c/a\u003e chore(spanner): deprecate experimental host option/parameter to replace with ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7813ca4e59dfc3d9e1546b9b5f0acba9e7536a8e\"\u003e\u003ccode\u003e7813ca4\u003c/code\u003e\u003c/a\u003e chore: add missing nox sessions and polish dependencies in sqlalchemy-spanner...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.15.0...google-cloud-logging-v3.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.15.11 to 0.15.16\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.16\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (\u003ccode\u003eASYNC119\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24644\"\u003e#24644\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Narrow diagnostic range and exclude cases without exception handlers (\u003ccode\u003ePLW0717\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25440\"\u003e#25440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat \u003ccode\u003eyield\u003c/code\u003e before \u003ccode\u003ebreak\u003c/code\u003e from a terminal loop as terminal (\u003ccode\u003eRUF075\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25447\"\u003e#25447\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Avoid flagging \u003ccode\u003eruff:ignore\u003c/code\u003e comments as code (\u003ccode\u003eERA001\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25537\"\u003e#25537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] Fix \u003ccode\u003eERA001\u003c/code\u003e/\u003ccode\u003eRUF100\u003c/code\u003e conflict when \u003ccode\u003enoqa\u003c/code\u003e is on commented-out code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25414\"\u003e#25414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Avoid removing the \u003ccode\u003eformat\u003c/code\u003e call when it would change behavior (\u003ccode\u003eF523\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25320\"\u003e#25320\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epylint\u003c/code\u003e] Avoid syntax errors in invalid character replacements in f-strings before Python 3.12 (\u003ccode\u003ePLE2510\u003c/code\u003e, \u003ccode\u003ePLE2512\u003c/code\u003e, \u003ccode\u003ePLE2513\u003c/code\u003e, \u003ccode\u003ePLE2514\u003c/code\u003e, \u003ccode\u003ePLE2515\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25544\"\u003e#25544\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid converting \u003ccode\u003eformat\u003c/code\u003e calls with more kinds of side effects (\u003ccode\u003eUP032\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25484\"\u003e#25484\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-pytest-style\u003c/code\u003e] Avoid fixes for ambiguous \u003ccode\u003eargnames\u003c/code\u003e and \u003ccode\u003eargvalues\u003c/code\u003e combinations (\u003ccode\u003ePT006\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24776\"\u003e#24776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop excess capacity from statement suites during parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25368\"\u003e#25368\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Improve discoverability of rules enabled for each convention (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24973\"\u003e#24973\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Restore example code for Python versions before 3.15 (\u003ccode\u003eRUF017\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25439\"\u003e#25439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix typo \u003ccode\u003ebin/active\u003c/code\u003e → \u003ccode\u003ebin/activate\u003c/code\u003e in tutorial (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25473\"\u003e#25473\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Redslayer112\"\u003e\u003ccode\u003e@​Redslayer112\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/koriyoshi2041\"\u003e\u003ccode\u003e@​koriyoshi2041\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/George-Ogden\"\u003e\u003ccode\u003e@​George-Ogden\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/TejasAmle\"\u003e\u003ccode\u003e@​TejasAmle\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/loganrosen\"\u003e\u003ccode\u003e@​loganrosen\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/RafaelJohn9\"\u003e\u003ccode\u003e@​RafaelJohn9\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adityasingh2400\"\u003e\u003ccode\u003e@​adityasingh2400\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.15\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/6c498ab5394edc5622d7f348e12956bf86203716\"\u003e\u003ccode\u003e6c498ab\u003c/code\u003e\u003c/a\u003e Bump 0.15.16 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25635\"\u003e#25635\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e51e132831c4e1c4a5ac00fca4c9256354ab99bf\"\u003e\u003ccode\u003ee51e132\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Implement \u003ccode\u003eyield-in-context-manager-in-async-generator\u003c/code\u003e (`AS...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7c6dcd9f2611999c449143d241c582dedf287964\"\u003e\u003ccode\u003e7c6dcd9\u003c/code\u003e\u003c/a\u003e [ty] Add caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/27058fc071b542bf06395ba89cabed061d313ca6\"\u003e\u003ccode\u003e27058fc\u003c/code\u003e\u003c/a\u003e [ty] Compact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/bf80d05f007c939799f530c9e775ed9449f5b2eb\"\u003e\u003ccode\u003ebf80d05\u003c/code\u003e\u003c/a\u003e Fix CODEOWNERS syntax (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25622\"\u003e#25622\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/10ccd511e94a81d1e836b174f1c553a73ff3f1b3\"\u003e\u003ccode\u003e10ccd51\u003c/code\u003e\u003c/a\u003e Shrink additional parser AST collections (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25465\"\u003e#25465\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/0d7135f4d23e7f4d8404daed16b9ef11d14f3fb9\"\u003e\u003ccode\u003e0d7135f\u003c/code\u003e\u003c/a\u003e [ty] Upgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/49493a3cea83a08fa9aa143695017c816a540f1d\"\u003e\u003ccode\u003e49493a3\u003c/code\u003e\u003c/a\u003e [ty] Show type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/85207d3b7657a84252f266766cb0d56034dc21cc\"\u003e\u003ccode\u003e85207d3\u003c/code\u003e\u003c/a\u003e [ty] sys.implementation.version is not sys.version_info (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a8a0614348c1fcf47fc9b666eff61a103914d520\"\u003e\u003ccode\u003ea8a0614\u003c/code\u003e\u003c/a\u003e [ty] Avoid retaining duplicate function signatures (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/25609\"\u003e#25609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.11...0.15.16\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ty` from 0.0.32 to 0.0.44\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/releases\"\u003ety's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid treating \u003ccode\u003esys.implementation.version\u003c/code\u003e like \u003ccode\u003esys.version_info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix anchor point for override diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25621\"\u003e#25621\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReuse expression cache for TypedDict union inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25643\"\u003e#25643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable narrowing for unions of TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25188\"\u003e#25188\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pierrem964\"\u003e\u003ccode\u003e@​pierrem964\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Hugo-Polloli\"\u003e\u003ccode\u003e@​Hugo-Polloli\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ty 0.0.44\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ty/releases/download/0.0.44/ty-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003epowershell -ExecutionPolicy Bypass -c \u0026quot;irm https://releases.astral.sh/github/ty/releases/download/0.0.44/ty-installer.ps1 | iex\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch2\u003eDownload ty 0.0.44\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ty/blob/main/CHANGELOG.md\"\u003ety's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.44\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-04.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid treating \u003ccode\u003esys.implementation.version\u003c/code\u003e like \u003ccode\u003esys.version_info\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25608\"\u003e#25608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix anchor point for override diagnostics (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25621\"\u003e#25621\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eShow type alias value on hover (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25381\"\u003e#25381\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd caching for pattern match narrowing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25613\"\u003e#25613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompact retained definition and expression identities (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25606\"\u003e#25606\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReuse expression cache for TypedDict union inference (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25643\"\u003e#25643\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade Salsa (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25545\"\u003e#25545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eCore type checking\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEnable narrowing for unions of TypedDict (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25188\"\u003e#25188\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/lerebear\"\u003e\u003ccode\u003e@​lerebear\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/carljm\"\u003e\u003ccode\u003e@​carljm\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pierrem964\"\u003e\u003ccode\u003e@​pierrem964\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Hugo-Polloli\"\u003e\u003ccode\u003e@​Hugo-Polloli\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.43\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-06-03.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDon't inject \u003ccode\u003eUnknown\u003c/code\u003e from non-callable elements of intersection call (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25538\"\u003e#25538\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't needlessly disambiguate the same type alias (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25563\"\u003e#25563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix variance inference for nested type aliases (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25567\"\u003e#25567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIgnore rejected member annotations for synthesized bindings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25427\"\u003e#25427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize dynamic class literals in cycle recovery (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25558\"\u003e#25558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRegister file roots for first-party search paths (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25522\"\u003e#25522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTreat union-bound typevars like unions for \u003ccode\u003epossibly-missing-attribute\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25561\"\u003e#25561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eLSP server\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSuppress importable completions that are already in scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/25479\"\u003e#25479\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/f5523e256eb275c9b473f174aedc383e7b050c34\"\u003e\u003ccode\u003ef5523e2\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.44 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3667\"\u003e#3667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/29ce3146faa2d42867dadd7ecbda84759b8183be\"\u003e\u003ccode\u003e29ce314\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.43 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3648\"\u003e#3648\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/794322d34624abc56301bd85ac354b94ca54fbb2\"\u003e\u003ccode\u003e794322d\u003c/code\u003e\u003c/a\u003e Update docker/build-push-action action to v7.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3629\"\u003e#3629\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/ce89685310383494c7dfec92bd2fc2dd2a46d074\"\u003e\u003ccode\u003ece89685\u003c/code\u003e\u003c/a\u003e Update prek dependencies (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3628\"\u003e#3628\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/792fb71ca172f8d67fcfdb5fdd452a049724c8fd\"\u003e\u003ccode\u003e792fb71\u003c/code\u003e\u003c/a\u003e Update docker/login-action action to v4.2.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3630\"\u003e#3630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/5c377476823a4b77a903fb5340d77b51d68db389\"\u003e\u003ccode\u003e5c37747\u003c/code\u003e\u003c/a\u003e Update docker/metadata-action action to v6.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3631\"\u003e#3631\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/5a3e1695ce1e2205070afc18d9a7449e0ed045d0\"\u003e\u003ccode\u003e5a3e169\u003c/code\u003e\u003c/a\u003e Update docker/setup-buildx-action action to v4.1.0 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3632\"\u003e#3632\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/c2500cc57e4aea85ae8e3287351538ad60a9ee00\"\u003e\u003ccode\u003ec2500cc\u003c/code\u003e\u003c/a\u003e Release: Force usage of PyPI as the index (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3616\"\u003e#3616\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/7f8cb6457e8d77178ae9204f9b81a516f44444ed\"\u003e\u003ccode\u003e7f8cb64\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.42 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ty/commit/41bb0d24412ad97c214bd0019e602c463ae3feba\"\u003e\u003ccode\u003e41bb0d2\u003c/code\u003e\u003c/a\u003e Bump version to 0.0.41 (\u003ca href=\"https://redirect.github.com/astral-sh/ty/issues/3601\"\u003e#3601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ty/compare/0.0.32...0.0.44\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio v1.4.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0\"\u003e1.4.0\u003c/a\u003e - 2026-05-26\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdated minimum supported pytest version to v8.4.0. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1397\"\u003e#1397\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed a \u003ccode\u003eResourceWarning: unclosed event loop\u003c/code\u003e warning that could occur when a synchronous test called \u003ccode\u003easyncio.run()\u003c/code\u003e or otherwise unset the current event loop after pytest-asyncio had run an async test or fixture. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/724\"\u003e#724\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded dependency on \u003ccode\u003esphinx-tabs \u0026gt;= 3.5\u003c/code\u003e to organize documentation examples into tabs. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1395\"\u003e#1395\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio v1.4.0a2\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.4.0a2\"\u003e1.4.0a2\u003c/a\u003e - 2026-05-02\u003c/h1\u003e\n\u003ch2\u003eDeprecated\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOverriding the \u003cem\u003eevent_loop_policy\u003c/em\u003e fixture is deprecated. Use the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook instead. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1419\"\u003e#1419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded the \u003ccode\u003epytest_asyncio_loop_factories\u003c/code\u003e hook to parametrize asyncio tests with custom event loop factories.\u003c/p\u003e\n\u003cp\u003eThe hook returns a mapping of factory names to loop factories, and \u003ccode\u003epytest.mark.asyncio(loop_factories=[...])\u003c/code\u003e selects a subset of configured factories per test. When a single factory is configured, test names are unchanged on pytest 8.4+.\u003c/p\u003e\n\u003cp\u003eSynchronous \u003ccode\u003e@pytest_asyncio.fixture\u003c/code\u003e functions now see the correct event loop when custom loop factories are configured, even when test code disrupts the current event loop (e.g., via \u003ccode\u003easyncio.run()\u003c/code\u003e or \u003ccode\u003easyncio.set_event_loop(None)\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1164\"\u003e#1164\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved the readability of the warning message that is displayed when \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e is unset (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1298\"\u003e#1298\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly import \u003ccode\u003easyncio.AbstractEventLoopPolicy\u003c/code\u003e for type checking to avoid raising\na DeprecationWarning. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1394\"\u003e#1394\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/6e14cd2af9292dca1fa2b027a06bbc40b0e0e425\"\u003e\u003ccode\u003e6e14cd2\u003c/code\u003e\u003c/a\u003e chore: Prepare release of v1.4.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4b900fb5d0c30949c574e55dd904ee179f858a5e\"\u003e\u003ccode\u003e4b900fb\u003c/code\u003e\u003c/a\u003e Build(deps): Bump codecov/codecov-action from 6.0.0 to 6.0.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ab9f63245094865c42c940a34af724b0dec1debf\"\u003e\u003ccode\u003eab9f632\u003c/code\u003e\u003c/a\u003e Build(deps): Bump zipp from 3.23.1 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a56fc77ecd59f781d8471b0f6a82bf58e08c95fa\"\u003e\u003ccode\u003ea56fc77\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis from 6.152.6 to 6.152.8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/e8bae9bc1f197731fc1a210c0da557af7b698e6d\"\u003e\u003ccode\u003ee8bae9b\u003c/code\u003e\u003c/a\u003e Build(deps): Bump requests from 2.34.0 to 2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/fc433402c570fd36a7a227ef4bc3abd4579299de\"\u003e\u003ccode\u003efc43340\u003c/code\u003e\u003c/a\u003e Build(deps): Bump idna from 3.14 to 3.15\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/762eaf5033b798b965c92afdbb2cebefa8fc3a8b\"\u003e\u003ccode\u003e762eaf5\u003c/code\u003e\u003c/a\u003e Build(deps): Bump jaraco-functools from 4.4.0 to 4.5.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/b62e2228c80070977baf6b77ba89d5c148af920f\"\u003e\u003ccode\u003eb62e222\u003c/code\u003e\u003c/a\u003e Build(deps): Bump click from 8.3.3 to 8.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/919044700627889d25ca63b6e7a3bc785f3137eb\"\u003e\u003ccode\u003e9190447\u003c/code\u003e\u003c/a\u003e Build(deps): Bump pydantic from 2.13.3 to 2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/82a393c5e31b6ebbbd8ec2a8dafc5f35b9cf1236\"\u003e\u003ccode\u003e82a393c\u003c/code\u003e\u003c/a\u003e ci: Remove unnecessary debug output.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v1.3.0...v1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/coderank-dev/coderank-pr/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/coderank-dev%2Fcoderank-pr/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"\u003e=3.0","new_version":"\u003e=3.15.0","update_type":null,"path":null,"pr_created_at":"2026-04-16T05:12:32.000Z","version_change":"\u003e=3.0 → \u003e=3.15.0","issue":{"uuid":"4273397475","node_id":"PR_kwDOSDExC87S27kN","number":8,"state":"closed","title":"chore(deps-dev): update google-cloud-logging requirement from \u003e=3.0 to \u003e=3.15.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-16T05:26:26.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-16T05:12:32.000Z","updated_at":"2026-04-16T05:26:35.000Z","time_to_close":834,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev): update","packages":[{"name":"google-cloud-logging","old_version":"\u003e=3.0","new_version":"\u003e=3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [google-cloud-logging](https://github.com/googleapis/google-cloud-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.9.0...google-cloud-documentai-v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-02-12)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated comments for various fields and messages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\"\u003e5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/yshk-mxim/skiff-container-manager/pull/8","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/yshk-mxim%2Fskiff-container-manager/issues/8","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/8/packages"}},{"old_version":"3.13.0","new_version":"3.15.0","update_type":"minor","path":null,"pr_created_at":"2026-04-15T01:39:55.000Z","version_change":"3.13.0 → 3.15.0","issue":{"uuid":"4265715668","node_id":"PR_kwDORYlKQs7SfQXJ","number":29,"state":"open","title":"build(deps): bump the production-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":["dependencies","python","platform/backend","size/xl"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-15T01:39:55.000Z","updated_at":"2026-04-29T03:02:25.968Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":9,"packages":[{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.7","repository_url":"https://github.com/pyca/cryptography"},{"name":"fastapi","old_version":"0.128.7","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"launchdarkly-server-sdk","old_version":"9.15.0","new_version":"9.15.1","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"pydantic","old_version":"2.12.5","new_version":"2.13.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.28.0","new_version":"2.28.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 9 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.7` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.7` | `0.135.3` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.15.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.15.0` | `9.15.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.5` | `2.13.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.0` | `2.28.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.44.0` |\n\n\nUpdates `cryptography` from 46.0.5 to 46.0.7\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.7 - 2026-04-07\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed an issue where non-contiguous buffers could be\n  passed to APIs that accept Python buffers, which could lead to buffer\n  overflow. **CVE-2026-39892**\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.6.\n\u003cp\u003e.. _v46-0-6:\u003c/p\u003e\n\u003cp\u003e46.0.6 - 2026-03-25\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eSECURITY ISSUE\u003c/strong\u003e: Fixed a bug where name constraints were not applied\nto peer names during verification when the leaf certificate contains a\nwildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\nincluding those used by the Web PKI. Credit to \u003cstrong\u003eOleh Konko (1seal)\u003c/strong\u003e for\nreporting the issue. \u003cstrong\u003eCVE-2026-34073\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _v46-0-5:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/622d672e429a7cff836a23c5903683dbec1901f5\"\u003e\u003ccode\u003e622d672\u003c/code\u003e\u003c/a\u003e 46.0.7 release (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14602\"\u003e#14602\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/91d728897bdad30cd5c79a2b23e207f1f050d587\"\u003e\u003ccode\u003e91d7288\u003c/code\u003e\u003c/a\u003e Cherry-pick \u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14542\"\u003e#14542\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14543\"\u003e#14543\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.5...46.0.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.7 to 0.135.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.3\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15280\"\u003e#15280\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/vibe/\"\u003eVibe Coding\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo for \u003ccode\u003eclient_secret\u003c/code\u003e in OAuth2 form docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14946\"\u003e#14946\u003c/a\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15279\"\u003e#15279\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump orjson from 3.11.7 to 3.11.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15276\"\u003e#15276\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump ruff from 0.15.0 to 0.15.8. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15277\"\u003e#15277\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15274\"\u003e#15274\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump fastmcp from 2.14.5 to 3.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15267\"\u003e#15267\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15270\"\u003e#15270\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Bump requests from 2.32.5 to 2.33.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15228\"\u003e#15228\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Add ty check to \u003ccode\u003elint.sh\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15136\"\u003e#15136\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.2\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Increase lower bound to \u003ccode\u003epydantic \u0026gt;=2.9.0.\u003c/code\u003e and fix the test suite. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15139\"\u003e#15139\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add missing last release notes dates. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15202\"\u003e#15202\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for contributors and team members regarding translation PRs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15200\"\u003e#15200\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Fix code blocks in reference docs overflowing table width. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15094\"\u003e#15094\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix duplicated words in docstrings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15116\"\u003e#15116\u003c/a\u003e by \u003ca href=\"https://github.com/AhsanSheraz\"\u003e\u003ccode\u003e@​AhsanSheraz\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add docs for \u003ccode\u003epyproject.toml\u003c/code\u003e with \u003ccode\u003eentrypoint\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15075\"\u003e#15075\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update links in docs to no longer use the classes external-link and internal-link. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15061\"\u003e#15061\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Add JS and CSS handling for automatic \u003ccode\u003etarget=_blank\u003c/code\u003e for links in docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15063\"\u003e#15063\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Update styles for internal and external links in new tab. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15058\"\u003e#15058\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝  Add documentation for the FastAPI VS Code extension. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15008\"\u003e#15008\u003c/a\u003e by \u003ca href=\"https://github.com/savannahostrowski\"\u003e\u003ccode\u003e@​savannahostrowski\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Fix doctrings for \u003ccode\u003emax_digits\u003c/code\u003e and \u003ccode\u003edecimal_places\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14944\"\u003e#14944\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add dates to release notes. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15001\"\u003e#15001\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for zh (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15177\"\u003e#15177\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15178\"\u003e#15178\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh-hant (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15176\"\u003e#15176\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for zh (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15175\"\u003e#15175\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ja (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15171\"\u003e#15171\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15170\"\u003e#15170\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for tr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15172\"\u003e#15172\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for ko (add-missing). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15168\"\u003e#15168\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1f442c454f2f74c7419f83c203e6333955399528\"\u003e\u003ccode\u003e1f442c4\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8f5d1577b471f389f6cdea878d40a1497fda7746\"\u003e\u003ccode\u003e8f5d157\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428452a710338334ae11043a48b06d52d9b3edba\"\u003e\u003ccode\u003e428452a\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/70580da818722cce68b7a88928d67bd0f64f42c5\"\u003e\u003ccode\u003e70580da\u003c/code\u003e\u003c/a\u003e ✨ Add support for \u003ccode\u003e@app.vibe()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15280\"\u003e#15280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6ee87478d821171139264cd9cd17cbd2232934ce\"\u003e\u003ccode\u003e6ee8747\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3e72c09a2abfe9e1b55eede6a297cb1847126e49\"\u003e\u003ccode\u003e3e72c09\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15279\"\u003e#15279\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/96df35f7a4337d612811483d8ade74f91cce2d61\"\u003e\u003ccode\u003e96df35f\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c8112555bd86f21cfee8500140dca094ad26e20\"\u003e\u003ccode\u003e6c81125\u003c/code\u003e\u003c/a\u003e ⬆ Bump orjson from 3.11.7 to 3.11.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15276\"\u003e#15276\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/428f82c93616b52aee2fcee03484a855135c07e5\"\u003e\u003ccode\u003e428f82c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/5599c59b9e7112109f04b63a58034fb95833f514\"\u003e\u003ccode\u003e5599c59\u003c/code\u003e\u003c/a\u003e ⬆ Bump ruff from 0.15.0 to 0.15.8 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15277\"\u003e#15277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.7...0.135.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.15.0 to 9.15.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.15.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003e9.15.1\u003c/a\u003e (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove fallback behavior when using custom data system configuration (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e60272b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003e9.15.1\u003c/a\u003e (2026-04-10)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImprove fallback behavior when using custom data system configuration (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/407\"\u003e#407\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e60272b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/1c700b48ebf714f1992f3005f1385a751093a8e4\"\u003e\u003ccode\u003e1c700b4\u003c/code\u003e\u003c/a\u003e chore(main): release 9.15.1 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/409\"\u003e#409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/bb8dd18f009fe83a2312cd874653e0ba8bea786d\"\u003e\u003ccode\u003ebb8dd18\u003c/code\u003e\u003c/a\u003e chore: Adding missing permissions to stale workflow (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/415\"\u003e#415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/9fd4ab5cbe4aa03dba64912177e47f00d38f91b9\"\u003e\u003ccode\u003e9fd4ab5\u003c/code\u003e\u003c/a\u003e ci: implement immutable releases support with actions/attest (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/413\"\u003e#413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/8116d2061a354e4260a045faaa4fafe8482bc7db\"\u003e\u003ccode\u003e8116d20\u003c/code\u003e\u003c/a\u003e chore: pin third-party GitHub Actions to commit SHAs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/411\"\u003e#411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d05fccff098422f141ba31f62b97acf6b5599e38\"\u003e\u003ccode\u003ed05fccf\u003c/code\u003e\u003c/a\u003e chore: Support flag change listeners in contract tests (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/410\"\u003e#410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/60272b2881847de04a5b771e6d28f3deefc1222d\"\u003e\u003ccode\u003e60272b2\u003c/code\u003e\u003c/a\u003e fix: Improve fallback behavior when using custom data system configuration (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/b0acfb2fe4833f83b2bd130a4439fa10bb491422\"\u003e\u003ccode\u003eb0acfb2\u003c/code\u003e\u003c/a\u003e chore: Update fetch-depth comment (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/408\"\u003e#408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.15.0...9.15.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.12.5 to 2.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e) are also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0b3 2026-03-31\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003ch3\u003ePackaging\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd riscv64 build target for manylinux by \u003ca href=\"https://github.com/boosterl\"\u003e\u003ccode\u003e@​boosterl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12723\"\u003e#12723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0 (2026-04-13)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThe highlights of the v2.13 release are available in the \u003ca href=\"https://pydantic.dev/articles/pydantic-v2-13-release\"\u003eblog post\u003c/a\u003e.\nSeveral minor changes (considered non-breaking changes according to our \u003ca href=\"https://pydantic.dev/docs/validation/2.13/get-started/version-policy/#pydantic-v2\"\u003eversioning policy\u003c/a\u003e)\nare also included in this release. Make sure to look into them before upgrading.\u003c/p\u003e\n\u003cp\u003eThis release contains the updated \u003ccode\u003epydantic.v1\u003c/code\u003e namespace, matching version 1.10.26 which includes support for Python 3.14.\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eSee the beta releases for all changes sinces 2.12.\u003c/p\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAllow default factories of private attributes to take validated model data by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13013\"\u003e#13013\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when serializing fixed length tuples with too few items by \u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eChange type of \u003ccode\u003eAny\u003c/code\u003e when synthesizing \u003ccode\u003e_build_sources\u003c/code\u003e for  \u003ccode\u003eBaseSettings.__init__()\u003c/code\u003e signature in the mypy plugin by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13049\"\u003e#13049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13062\"\u003e#13062\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd zizmor for GitHub Actions workflow linting by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13039\"\u003e#13039\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate jiter to v0.14.0 to fix a segmentation fault on musl Linux by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13064\"\u003e#13064\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eNew Contributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/arvindsaripalli\"\u003e\u003ccode\u003e@​arvindsaripalli\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/13016\"\u003e#13016\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.0b3 (2026-03-31)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.0b3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eNew Features\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eascii_only\u003c/code\u003e option to \u003ccode\u003eStringConstraints\u003c/code\u003e by \u003ca href=\"https://github.com/ai-man-codes\"\u003e\u003ccode\u003e@​ai-man-codes\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12907\"\u003e#12907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eexclude_if\u003c/code\u003e in computed fields by \u003ca href=\"https://github.com/andresliszt\"\u003e\u003ccode\u003e@​andresliszt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12748\"\u003e#12748\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePush down constraints in unions involving \u003ccode\u003eMISSING\u003c/code\u003e sentinel by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12908\"\u003e#12908\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanges\u003c/h4\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/46bf4fa648af3a1fbf4603a37f210e9d9c618357\"\u003e\u003ccode\u003e46bf4fa\u003c/code\u003e\u003c/a\u003e Fix Pydantic release workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13067\"\u003e#13067\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1b359edab09c623464d23c6fd2503ae5ff276d43\"\u003e\u003ccode\u003e1b359ed\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13065\"\u003e#13065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b1bf19445d8ac144a7a0e82674d2d87eebab6c18\"\u003e\u003ccode\u003eb1bf194\u003c/code\u003e\u003c/a\u003e Fix model equality when using runtime \u003ccode\u003eextra\u003c/code\u003e configuration (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13062\"\u003e#13062\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/17a35e371bdff348c0690651d324c91fc7c9ff9e\"\u003e\u003ccode\u003e17a35e3\u003c/code\u003e\u003c/a\u003e Update jiter to v0.14.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13064\"\u003e#13064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/feea402b23fa23774669908c4e08a61ba1e4238e\"\u003e\u003ccode\u003efeea402\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003esimulation\u003c/code\u003e mode in Codspeed CI (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13063\"\u003e#13063\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/671c9b0d4d3f9b2f1b95ca32ac85cb69e824e0bc\"\u003e\u003ccode\u003e671c9b0\u003c/code\u003e\u003c/a\u003e Add basic benchmarks for model equality (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13061\"\u003e#13061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d17d71e00a35f190b27321aa6f8f2a03139c00b8\"\u003e\u003ccode\u003ed17d71e\u003c/code\u003e\u003c/a\u003e Bump cryptography from 46.0.6 to 46.0.7 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13056\"\u003e#13056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/919d61ac419af5151b673a90b65c9a12631091cf\"\u003e\u003ccode\u003e919d61a\u003c/code\u003e\u003c/a\u003e 👥 Update Pydantic People (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13059\"\u003e#13059\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e7cf5dcb939ea98511e669b647c0273667a1b08a\"\u003e\u003ccode\u003ee7cf5dc\u003c/code\u003e\u003c/a\u003e Fix people workflow (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13047\"\u003e#13047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2a806ad09b984fcc43568191aba5d965350995a0\"\u003e\u003ccode\u003e2a806ad\u003c/code\u003e\u003c/a\u003e Add regression test for \u003ccode\u003eMISSING\u003c/code\u003e sentinel serialization with subclasses (\u003ca href=\"https://redirect.github.com/pydantic/pydantic/issues/13\"\u003e#13\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.5...v2.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.0 to 2.28.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.2...v2.28.3\"\u003e2.28.3\u003c/a\u003e (2026-03-20)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003ec7f8f13\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/deac3232f6bdd242f60b46c7a8922e010524ca53\"\u003e\u003ccode\u003edeac323\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1425\"\u003e#1425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c7f8f13b40c9f46a46276241f25c17f45b17e069\"\u003e\u003ccode\u003ec7f8f13\u003c/code\u003e\u003c/a\u003e fix(postgrest): fix maybe_single (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1424\"\u003e#1424\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/30188494ea44ce67b51d9566095ec11c90e7522d\"\u003e\u003ccode\u003e3018849\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e\u003ccode\u003e32843cf\u003c/code\u003e\u003c/a\u003e fix(auth): fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/8584419cbfac152a16e601e9cd724af04da6c24f\"\u003e\u003ccode\u003e8584419\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e\u003ccode\u003e81041a4\u003c/code\u003e\u003c/a\u003e fix(postgrest): remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e\u003ccode\u003e08bdf38\u003c/code\u003e\u003c/a\u003e fix(auth): prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e\u003ccode\u003e51b86be\u003c/code\u003e\u003c/a\u003e fix(postgrest): comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c77b21a45d4fb93015554e87bcc627d58309d668\"\u003e\u003ccode\u003ec77b21a\u003c/code\u003e\u003c/a\u003e chore(deps): bump cryptography from 46.0.2 to 46.0.5 in the uv group across 1...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.44.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.44.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2888\"\u003eKludex/uvicorn#2888\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.43.0...0.44.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.43.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.42.0...0.43.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.44.0 (April 6, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImplement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.43.0 (April 3, 2026)\u003c/h2\u003e\n\u003cp\u003eYou can quit Uvicorn now. We heard you, \u003ca href=\"https://github.com/pamelafox\"\u003e\u003ccode\u003e@​pamelafox\u003c/code\u003e\u003c/a\u003e - all 47 of your Ctrl+C's (thanks for flagging it, and thanks to \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e for the fix 🙏). \u003ca href=\"https://x.com/pamelafox/status/2039097686155227623\"\u003eSee the tweet\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEmit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for streaming responses (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2829\"\u003e#2829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse native \u003ccode\u003econtext\u003c/code\u003e parameter for \u003ccode\u003ecreate_task\u003c/code\u003e on Python 3.11+ (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2859\"\u003e#2859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDrop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/edb54c43c0321c0b41eee1473f3f4cf145e8927f\"\u003e\u003ccode\u003eedb54c4\u003c/code\u003e\u003c/a\u003e Version 0.44.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2890\"\u003e#2890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/029be08867fe899cde6fd31a3ba75fffca7bd9ae\"\u003e\u003ccode\u003e029be08\u003c/code\u003e\u003c/a\u003e Implement websocket keepalive pings for websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2888\"\u003e#2888\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/8d397c73191b49c6d528...\n\n_Description has been truncated_","html_url":"https://github.com/QAkeepitTESTorg/AutoGPT/pull/29","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/QAkeepitTESTorg%2FAutoGPT/issues/29","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/29/packages"}},{"old_version":"3.10.0","new_version":"3.15.0","update_type":"minor","path":"/src/functions/scoring","pr_created_at":"2026-04-13T23:30:50.000Z","version_change":"3.10.0 → 3.15.0","issue":{"uuid":"4258482150","node_id":"PR_kwDOQX9Kc87SJXBa","number":243,"state":"open","title":"chore(python)(deps): bump google-cloud-logging from 3.10.0 to 3.15.0 in /src/functions/scoring","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T23:30:50.000Z","updated_at":"2026-04-14T01:24:34.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(python)(deps)","packages":[{"name":"google-cloud-logging","old_version":"3.10.0","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":"/src/functions/scoring","ecosystem":"pip"},"body":"Bumps [google-cloud-logging](https://github.com/googleapis/google-cloud-python) from 3.10.0 to 3.15.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-kms-v3.10.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/nakayamaryo0731/wedding_smile_catcher/pull/243","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakayamaryo0731%2Fwedding_smile_catcher/issues/243","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/243/packages"}},{"old_version":"^3.7.0","new_version":"^3.15.0","update_type":"minor","path":"/libs/common_logging","pr_created_at":"2026-04-13T03:14:43.000Z","version_change":"^3.7.0 → ^3.15.0","issue":{"uuid":"4251012630","node_id":"PR_kwDOPPRKpM7R2uL2","number":112,"state":"open","title":"build(deps): Update google-cloud-logging requirement from ^3.7.0 to ^3.15.0 in /libs/common_logging","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T03:14:43.000Z","updated_at":"2026-04-13T03:18:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): Update","packages":[{"name":"google-cloud-logging","old_version":"^3.7.0","new_version":"^3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":"/libs/common_logging","ecosystem":"pip"},"body":"Updates the requirements on [google-cloud-logging](https://github.com/googleapis/google-cloud-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003e\u003ca href=\"https://pypi.org/project/google-cloud-documentai/#history\"\u003ePyPI History\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003e3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate comments for proto fields (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a fields for image and table annotation output (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa6169035fdb14bf84b0e56e4f81291600b5a\"\u003ec36aa6169035fdb14bf84b0e56e4f81291600b5a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003e3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAllow Protobuf 7.x (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRequire Python 3.9 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequire google-api-core \u0026gt;= 2.11.0 (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove type checking (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1eb7c268482e55971966e284dac2cbeb903adcbb\"\u003e1eb7c268482e55971966e284dac2cbeb903adcbb\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.11.0...google-cloud-documentai-v3.12.0\"\u003e3.12.0\u003c/a\u003e (2026-03-23)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a field for upgrading previous processor version when fine tuning (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ee7dd7dc168ecf943440cef38efff348e8eff095\"\u003eee7dd7dc168ecf943440cef38efff348e8eff095\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.10.0...google-cloud-documentai-v3.11.0\"\u003e3.11.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded a field for enabling image and table annotation for layout parser processor (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e6120fb0db084f5e8d1502fb1bb37594ac9976f6e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.9.0...google-cloud-documentai-v3.10.0\"\u003e3.10.0\u003c/a\u003e (2026-02-12)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated comments for various fields and messages (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\"\u003e5371e8e931dfba1d504ac2ffbd48a7f4abdcc158\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/davidasnider/home-agent-suite/pull/112","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/davidasnider%2Fhome-agent-suite/issues/112","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/112/packages"}},{"old_version":"3.12.1","new_version":"3.15.0","update_type":"minor","path":null,"pr_created_at":"2026-04-13T02:19:06.000Z","version_change":"3.12.1 → 3.15.0","issue":{"uuid":"4250828438","node_id":"PR_kwDORXp-JM7R2Sh9","number":52,"state":"open","title":"chore(deps): bump the all-dependencies group across 1 directory with 11 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:19:06.000Z","updated_at":"2026-05-25T05:03:40.109Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":11,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.29.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.41.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [google-adk](https://github.com/google/adk-python), [google-cloud-logging](https://github.com/googleapis/google-cloud-python), [google-cloud-aiplatform[adk,agent-engines]](https://github.com/googleapis/python-aiplatform), [pillow](https://github.com/python-pillow/Pillow), [pytest](https://github.com/pytest-dev/pytest), [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack), [ruff](https://github.com/astral-sh/ruff), [mypy](https://github.com/python/mypy), [codespell](https://github.com/codespell-project/codespell), [types-pyyaml](https://github.com/python/typeshed) and [types-requests](https://github.com/python/typeshed) to permit the latest version.\nUpdates `google-adk` from 1.18.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.29.0\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e fix package references (\u003ca href=\"https://github.com/google/adk-python/commit/add8e8664bd2ae9257c8b37a5e602d0c7aae7625\"\u003eadd8e86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RemoteA2AAgent deepcopy errors (\u003ca href=\"https://github.com/google/adk-python/commit/6f29775f4bf7172b1378b17856534f95b9d4eeb6\"\u003e6f29775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes for initializing RemoteA2aAgent - passing in preferred transport, protocol version, and auth headers (\u003ca href=\"https://github.com/google/adk-python/commit/0f3850f56c857dfb86c7ad8de372bcc7fe495968\"\u003e0f3850f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/d98ff2337779c69dcc07c70a9d4bec037030e1eb\"\u003e\u003ccode\u003ed98ff23\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40e050b930007402aa4684537782910912b8b3ce\"\u003e\u003ccode\u003e40e050b\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.29.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/5231\"\u003e#5231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003e\u003ccode\u003eede8a56\u003c/code\u003e\u003c/a\u003e fix: avoid load all agents in adk web server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6b1600fbf53bcf634c5fe4793f02921bc0b75125\"\u003e\u003ccode\u003e6b1600f\u003c/code\u003e\u003c/a\u003e fix(live): Handle live session resumption and GoAway signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6fd0f85191dea17b7c6b033473bd39764250265b\"\u003e\u003ccode\u003e6fd0f85\u003c/code\u003e\u003c/a\u003e fix: move BigQueryAgentAnalyticsPlugin import inside get_runner_async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e\u003ccode\u003e2074889\u003c/code\u003e\u003c/a\u003e feat: Support loading agents from Visual Builder with BigQuery-powered logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e\u003ccode\u003e9e73ab8\u003c/code\u003e\u003c/a\u003e feat(skill): Standardize skill tools and make script arguments flexible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e\u003ccode\u003e23bd95b\u003c/code\u003e\u003c/a\u003e feat: Add blacklist for shell metacharacters in BashTool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ccac461b2ab6291ecd09577ca0553833eaff71b9\"\u003e\u003ccode\u003eccac461\u003c/code\u003e\u003c/a\u003e docs(adk): clean up remote triggers README to remove internal references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/e2d970ff9428a76ea21db6ec951ddf7af3a986ad\"\u003e\u003ccode\u003ee2d970f\u003c/code\u003e\u003c/a\u003e feat: add ADK trigger endpoints to ADK Web Server\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-aiplatform[adk,agent-engines]` to 1.147.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/releases\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.147.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.145.0...v1.146.0\"\u003e1.146.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eto_bigframes\u003c/code\u003e has been removed from the datasets module and moved into the \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. Instead of \u003ccode\u003edataframe = client.datasets.to_bigframes(multimodal_dataset=multimodal_dataset)\u003c/code\u003e, use \u003ccode\u003edataframe = multimodal_dataset.to_bigframes()\u003c/code\u003e to create a BigFrame instance from a multimodal dataset.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd consolidation customization to Memory Bank (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8948c4dfcc65b73ea579b93f8c36baa65817f25\"\u003ea8948c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for custom result parsing in LLM-based evaluation metrics (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/3e0ddff2f5c306d601bf325618b9136f7713ff68\"\u003e3e0ddff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals) - add core data models and code-gen mapping for auto-loss analysis (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/09794ba83746377b1a94ed00f7c41f6b9d647cd6\"\u003e09794ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Apply default user persona 'Evaluator' in multi-turn agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/7002dc5452032d3189eabae9b0952decd73fb8eb\"\u003e7002dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn run_query_job, rename gcs_bucket to gcs_uri and allow the case that user sets the filename for the output. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/f302d1f99b79b862a61a41c729ae56a22307bf11\"\u003ef302d1f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass state from first bidi_stream_query request to async_create_session (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/37b5a0f796984e3af69f8036ca235e096d64e7d1\"\u003e37b5a0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Move \u003ccode\u003eto_bigframes\u003c/code\u003e method to \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/6874b8db7adfa4022972e0eba2c3ccaffd523cf2\"\u003e6874b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease 1.146.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/aab457dcf8f0552b0e378c5b4d693e4aa8a2e2f1\"\u003eaab457d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.144.0...v1.145.0\"\u003e1.145.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4c28b3440ee42cb6f673d023bea2d8858f31636a\"\u003e\u003ccode\u003e4c28b34\u003c/code\u003e\u003c/a\u003e chore(main): release 1.147.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-aiplatform/issues/6558\"\u003e#6558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e\u003ccode\u003e2f2a211\u003c/code\u003e\u003c/a\u003e feat: add the delete method for the Agent Engine Task Store Service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003e\u003ccode\u003ee2e81c9\u003c/code\u003e\u003c/a\u003e feat: GenAI Client(evals):  Route gemini-3 model traffic to global region in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e\u003ccode\u003e4a11370\u003c/code\u003e\u003c/a\u003e chore: release 1.147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4d7a15fd85cf8529b649b88239e504e3cafc7b18\"\u003e\u003ccode\u003e4d7a15f\u003c/code\u003e\u003c/a\u003e chore: remove unused kokoro configs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0653ff92f45ef47192582d0eea569d28e0e3b30b\"\u003e\u003ccode\u003e0653ff9\u003c/code\u003e\u003c/a\u003e chore: update SDK serialization logic within response handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003e\u003ccode\u003ebd4983b\u003c/code\u003e\u003c/a\u003e fix: Add SDK workaround for double-wrapped Any response in async_retrieve_con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003e\u003ccode\u003ea196cda\u003c/code\u003e\u003c/a\u003e feat: Add system_labels parameter to Model Garden deploy methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e\u003ccode\u003e0e5037d\u003c/code\u003e\u003c/a\u003e feat: GenAI SDK client(multimodal) - Add single_turn_template helper to Gemin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/8016cb6cdbf216ed9b9a8f01e2a37ec1d626ac44\"\u003e\u003ccode\u003e8016cb6\u003c/code\u003e\u003c/a\u003e chore: Update the discoverydoc in v1beta1 for agent engine related changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.147.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.3\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.3 (2026-04-07)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12444\"\u003e#12444\u003c/a\u003e: Fixed \u003ccode\u003epytest.approx\u003c/code\u003e which now correctly takes into account \u003ccode\u003e~collections.abc.Mapping\u003c/code\u003e keys order to compare them.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13634\"\u003e#13634\u003c/a\u003e: Blocking a \u003ccode\u003econftest.py\u003c/code\u003e file using the \u003ccode\u003e-p no:\u003c/code\u003e option is now explicitly disallowed.\u003c/p\u003e\n\u003cp\u003ePreviously this resulted in an internal assertion failure during plugin loading.\u003c/p\u003e\n\u003cp\u003ePytest now raises a clear \u003ccode\u003eUsageError\u003c/code\u003e explaining that conftest files are not plugins and cannot be disabled via \u003ccode\u003e-p\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13734\"\u003e#13734\u003c/a\u003e: Fixed crash when a test raises an exceptiongroup with \u003ccode\u003e__tracebackhide__ = True\u003c/code\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14195\"\u003e#14195\u003c/a\u003e: Fixed an issue where non-string messages passed to \u003c!-- raw HTML omitted --\u003eunittest.TestCase.subTest()\u003c!-- raw HTML omitted --\u003e were not printed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e: Fixed use of insecure temporary directory (CVE-2025-71176).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13388\"\u003e#13388\u003c/a\u003e: Clarified documentation for \u003ccode\u003e-p\u003c/code\u003e vs \u003ccode\u003ePYTEST_PLUGINS\u003c/code\u003e plugin loading and fixed an incorrect \u003ccode\u003e-p\u003c/code\u003e example.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13731\"\u003e#13731\u003c/a\u003e: Clarified that capture fixtures (e.g. \u003ccode\u003ecapsys\u003c/code\u003e and \u003ccode\u003ecapfd\u003c/code\u003e) take precedence over the \u003ccode\u003e-s\u003c/code\u003e / \u003ccode\u003e--capture=no\u003c/code\u003e command-line options in \u003ccode\u003eAccessing captured output from a test function \u0026lt;accessing-captured-output\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14088\"\u003e#14088\u003c/a\u003e: Clarified that the default \u003ccode\u003epytest_collection\u003c/code\u003e hook sets \u003ccode\u003esession.items\u003c/code\u003e before it calls \u003ccode\u003epytest_collection_finish\u003c/code\u003e, not after.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14255\"\u003e#14255\u003c/a\u003e: TOML integer log levels must be quoted: Updating reference documentation.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12689\"\u003e#12689\u003c/a\u003e: The test reports are now published to Codecov from GitHub Actions.\nThe test statistics is visible \u003ca href=\"https://app.codecov.io/gh/pytest-dev/pytest/tests\"\u003eon the web interface\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003e-- by \u003ccode\u003ealeguy02\u003c/code\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/a7d58d7a21b78581e636bbbdea13c66ad1657c1e\"\u003e\u003ccode\u003ea7d58d7\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/089d98199c253d8f89a040243bc4f2aa6cd5ab22\"\u003e\u003ccode\u003e089d981\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14366\"\u003e#14366\u003c/a\u003e from bluetech/revert-14193-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/8127eaf4ab7f6b2fdd0dc1b38343ec97aeef05ac\"\u003e\u003ccode\u003e8127eaf\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Fix: assertrepr_compare respects dict insertion order (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14050\"\u003e#14050\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14193\"\u003e#14193\u003c/a\u003e)\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/99a7e6029e7a6e8d53e5df114b1346e035370241\"\u003e\u003ccode\u003e99a7e60\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14363\"\u003e#14363\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/95d8423bd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/ddee02a578da30dd43aedc39c1c1f1aaadfcee95\"\u003e\u003ccode\u003eddee02a\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14343\"\u003e#14343\u003c/a\u003e from bluetech/cve-2025-71176-simple\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/74eac6916fee34726cb194f16c516e96fbd29619\"\u003e\u003ccode\u003e74eac69\u003c/code\u003e\u003c/a\u003e doc: Update training info (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14298\"\u003e#14298\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14301\"\u003e#14301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/f92dee777cfdb77d1c43633d02766ddf1f07c869\"\u003e\u003ccode\u003ef92dee7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14267\"\u003e#14267\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/d6fa26c62...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/7ee58acc8777c31ac6cf388d01addf5a414a7439\"\u003e\u003ccode\u003e7ee58ac\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/12378\"\u003e#12378\u003c/a\u003e from Pierre-Sassoulas/fix-implicit-str-concat-and-d...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/37da870d37e3a2f5177cae075c7b9ae279432bf8\"\u003e\u003ccode\u003e37da870\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14259\"\u003e#14259\u003c/a\u003e from mitre88/patch-4 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14268\"\u003e#14268\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c34bfa3b7acb65b594707c714f1d8461b0304eed\"\u003e\u003ccode\u003ec34bfa3\u003c/code\u003e\u003c/a\u003e Add explanation for string context diffs (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14257\"\u003e#14257\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14266\"\u003e#14266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.41.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003edocs: Update BQ analytics table name to agent_events by \u003ca href=\"https://github.com/Nannan-Su\"\u003e\u003ccode\u003e@​Nannan-Su\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/924\"\u003eGoogleCloudPlatform/agent-starter-pack#924\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: change default region from us-central1 to us-west1 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/936\"\u003eGoogleCloudPlatform/agent-starter-pack#936\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.41.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/937\"\u003eGoogleCloudPlatform/agent-starter-pack#937\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.1...v0.41.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.1...v0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.40.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: add adk-py@ shortcut for google/adk-python contributing samples by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/918\"\u003eGoogleCloudPlatform/agent-starter-pack#918\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use valid model name for Vertex AI connectivity check by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/919\"\u003eGoogleCloudPlatform/agent-starter-pack#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.1 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/920\"\u003eGoogleCloudPlatform/agent-starter-pack#920\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.0...v0.40.1\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.40.0...v0.40.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efeat: use treeless sparse checkout for remote template cloning by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/899\"\u003eGoogleCloudPlatform/agent-starter-pack#899\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/904\"\u003eGoogleCloudPlatform/agent-starter-pack#904\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: filter Gemini Enterprise apps by \u003ccode\u003eappType\u003c/code\u003e in \u003ccode\u003elist_gemini_enterprise_apps\u003c/code\u003e function by \u003ca href=\"https://github.com/holtskinner\"\u003e\u003ccode\u003e@​holtskinner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/912\"\u003eGoogleCloudPlatform/agent-starter-pack#912\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: regenerate uv lock files by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/906\"\u003eGoogleCloudPlatform/agent-starter-pack#906\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: revert version and exclude service_outputs.tf for adk_live by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/915\"\u003eGoogleCloudPlatform/agent-starter-pack#915\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.40.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/916\"\u003eGoogleCloudPlatform/agent-starter-pack#916\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/holtskinner\"\u003e\u003ccode\u003e@​holtskinner\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/912\"\u003eGoogleCloudPlatform/agent-starter-pack#912\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.6...v0.40.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.6...v0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.39.6\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix(cli): honor bq_analytics config in create command by \u003ca href=\"https://github.com/Nannan-Su\"\u003e\u003ccode\u003e@​Nannan-Su\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/881\"\u003eGoogleCloudPlatform/agent-starter-pack#881\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve ruff linting errors across tests and templates by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/885\"\u003eGoogleCloudPlatform/agent-starter-pack#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: cloudbuild invalid argument for gke by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/887\"\u003eGoogleCloudPlatform/agent-starter-pack#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: resolve GKE e2e issues for Go/TS agents and upgrade gemini by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/889\"\u003eGoogleCloudPlatform/agent-starter-pack#889\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: langgraph deployment timeout issue by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/891\"\u003eGoogleCloudPlatform/agent-starter-pack#891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.5 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/893\"\u003eGoogleCloudPlatform/agent-starter-pack#893\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove obsolete SDK version check in register-gemini-enterprise by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/897\"\u003eGoogleCloudPlatform/agent-starter-pack#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.6 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/898\"\u003eGoogleCloudPlatform/agent-starter-pack#898\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.4...v0.39.6\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.39.4...v0.39.6\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.39.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: inject datastore env vars in GKE CI/CD pipelines and update probes by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/877\"\u003eGoogleCloudPlatform/agent-starter-pack#877\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: safe incremental ingestion with create-before-delete strategy by \u003ca href=\"https://github.com/lspataroG\"\u003e\u003ccode\u003e@​lspataroG\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/878\"\u003eGoogleCloudPlatform/agent-starter-pack#878\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/eb55be129538de708f25f2cce49cf2f97d2da4d5\"\u003e\u003ccode\u003eeb55be1\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.41.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/00acdf8922a46d6a796415629fc368ed13dbd978\"\u003e\u003ccode\u003e00acdf8\u003c/code\u003e\u003c/a\u003e chore: change default region from us-central1 to us-west1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/936\"\u003e#936\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/746378ba9871b0d12f54565f47a8e27f2d318784\"\u003e\u003ccode\u003e746378b\u003c/code\u003e\u003c/a\u003e docs: Update BQ analytics table name to agent_events (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/ce1d182ff82368ebde1e10bc9e21a5bf7b3add51\"\u003e\u003ccode\u003ece1d182\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.40.1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/920\"\u003e#920\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/4859b9655cd04b02a939b7c5c7db323d4f3f4844\"\u003e\u003ccode\u003e4859b96\u003c/code\u003e\u003c/a\u003e fix: use valid model name for Vertex AI connectivity check (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/12a447f2b06b93c90710a509dfb2ef34c6a2d3f1\"\u003e\u003ccode\u003e12a447f\u003c/code\u003e\u003c/a\u003e feat: add adk-py@ shortcut for google/adk-python contributing samples (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/07ab369fe718fe27a3b885b4c23c74e95d6d9a11\"\u003e\u003ccode\u003e07ab369\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.40.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/916\"\u003e#916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/20d4fca1d037e6f2fe261aa86221374853b6c340\"\u003e\u003ccode\u003e20d4fca\u003c/code\u003e\u003c/a\u003e fix: revert version and exclude service_outputs.tf for adk_live (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/915\"\u003e#915\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/7e98de930c7622b9d261907ac1ab16db9118d76c\"\u003e\u003ccode\u003e7e98de9\u003c/code\u003e\u003c/a\u003e chore: regenerate uv lock files (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/0e622d972d081dd8829bddea1587e56f268a4fd5\"\u003e\u003ccode\u003e0e622d9\u003c/code\u003e\u003c/a\u003e feat: filter Gemini Enterprise apps by \u003ccode\u003eappType\u003c/code\u003e in `list_gemini_enterprise_a...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extens...\n\n_Description has been truncated_","html_url":"https://github.com/gsimeon/adk-samples/pull/52","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/52","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/52/packages"}},{"old_version":"3.12.1","new_version":"3.15.0","update_type":"minor","path":"/python/agents/image-scoring","pr_created_at":"2026-04-13T02:17:02.000Z","version_change":"3.12.1 → 3.15.0","issue":{"uuid":"4250820850","node_id":"PR_kwDOQ3KMMs7R2Rb6","number":12,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/image-scoring with 12 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-13T02:17:02.000Z","updated_at":"2026-04-13T02:17:03.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":12,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.29.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.2.0","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"}],"path":"/python/agents/image-scoring","ecosystem":"pip"},"body":"Updates the requirements on [google-adk](https://github.com/google/adk-python), [google-cloud-logging](https://github.com/googleapis/google-cloud-python), [google-cloud-aiplatform[adk,agent-engines]](https://github.com/googleapis/python-aiplatform), [pillow](https://github.com/python-pillow/Pillow), [ruff](https://github.com/astral-sh/ruff), [mypy](https://github.com/python/mypy), [codespell](https://github.com/codespell-project/codespell), [types-pyyaml](https://github.com/python/typeshed), [types-requests](https://github.com/python/typeshed), [pytest](https://github.com/pytest-dev/pytest), [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) and [uv-build](https://github.com/astral-sh/uv) to permit the latest version.\nUpdates `google-adk` from 1.18.0 to 1.29.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.29.0\u003c/h2\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.28.0...v1.29.0\"\u003e1.29.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd auth scheme/credential support to MCP toolsets in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/7913a3b76432caf16953ea7b2a2cf4872baad417\"\u003e7913a3b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd ability to block shell metacharacters in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e23bd95b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd configurable resource limits for subprocesses in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/1b0584241f6418fd5fe9bd05fa666d03c310b8ae\"\u003e1b05842\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd configurable view_prefix to BigQueryLoggerConfig (\u003ca href=\"https://github.com/google/adk-python/commit/37973daff47d3c67e928a240acd188d4e318f52b\"\u003e37973da\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd custom session id functionality to vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/e1913a6b411aec9e8774ca92ea39531b085c43f0\"\u003ee1913a6\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Description column to SKILL.md and update terminology (\u003ca href=\"https://github.com/google/adk-python/commit/435f7c7a9fdf8b1214f4439c6d953b6426d90da1\"\u003e435f7c7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd Easy GCP support to ADK CLI (\u003ca href=\"https://github.com/google/adk-python/commit/8850916e1908ace19a058102f0392eee08349d60\"\u003e8850916\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd regional endpoint support to \u003ccode\u003eSecretManagerClient\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/19ac679aeacc045ed78cb9fd48bb295440843288\"\u003e19ac679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for model endpoints in Agent Registry (\u003ca href=\"https://github.com/google/adk-python/commit/eb4674b49f017f3947506c55be4075b1ea0369d6\"\u003eeb4674b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Add public api to register custom auth provider with credential manager (\u003ca href=\"https://github.com/google/adk-python/commit/a22091058dd2ea6e1e0655b5946ce6ed7e72d25e\"\u003ea220910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Pass consent_nonce to Agent Frontend (\u003ca href=\"https://github.com/google/adk-python/commit/9fec503061846b9903c18921f7848b358a041331\"\u003e9fec503\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e Support additional HTTP headers in MCP tools (\u003ca href=\"https://github.com/google/adk-python/commit/b3e99628ee1b87b61badf56e67f8ddee15e6fe54\"\u003eb3e9962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ebigquery:\u003c/strong\u003e Add ADK 1P Skills for ADK BQ Toolset (\u003ca href=\"https://github.com/google/adk-python/commit/4030c0d0167b348cf2e4c941c8610aa6ede28275\"\u003e4030c0d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add EnvironmentToolset for file I/O and command execution (\u003ca href=\"https://github.com/google/adk-python/commit/9082b9e38eeb3465c399b41633e6441e339c47c3\"\u003e9082b9e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e Add LocalEnvironment for executing commands and file I/O locally (\u003ca href=\"https://github.com/google/adk-python/commit/f97367381e820c75ad16d4ce7ee27c0f9929c81d\"\u003ef973673\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImplement robust process group management and timeouts in BashTool (\u003ca href=\"https://github.com/google/adk-python/commit/f641b1a219b041659e6d429c47974bc9e5cfe1af\"\u003ef641b1a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003elive:\u003c/strong\u003e Added in 1.28.1, support live for \u003ccode\u003egemini-3.1-flash-live-preview\u003c/code\u003e model (\u003ca href=\"https://github.com/google/adk-python/commit/8082893619bb85d4ee0dc53fd2133d12b9434d07\"\u003e8082893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOption to use shallow-copy for session in InMemorySessionService (\u003ca href=\"https://github.com/google/adk-python/commit/16a1a185ab77a904fd01712779fa1bc6417dc628\"\u003e16a1a18\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate context to thread pools (\u003ca href=\"https://github.com/google/adk-python/commit/83393ab839d5733568699195683408fccbd1cb6e\"\u003e83393ab\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003erefresh credentials if token is missing in the common code and samples (\u003ca href=\"https://github.com/google/adk-python/commit/1445ad5069841e446328e0856553f69a6699f0f4\"\u003e1445ad5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove use of raw_event field in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/642d337a9069fae334192d045c9f85922cbcef53\"\u003e642d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eskill:\u003c/strong\u003e Standardize skill tools and make script arguments flexible (\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e9e73ab8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport AgentRegistry association (\u003ca href=\"https://github.com/google/adk-python/commit/675476088b9f3c0a488ce48f652b7f3f7ea47230\"\u003e6754760\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport loading agents from Visual Builder with BigQuery-powered logging (\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e2074889\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport propagating grounding metadata from AgentTool (\u003ca href=\"https://github.com/google/adk-python/commit/d689a04f16846c2aa483dd45dcc65e2decdb419c\"\u003ed689a04\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport short options and positional arguments in RunSkillScriptTool (\u003ca href=\"https://github.com/google/adk-python/commit/2b49163b399135f0d96b73a99eb4ace764ce87db\"\u003e2b49163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event field in vertex ai session service for append and list events (\u003ca href=\"https://github.com/google/adk-python/commit/6ee036292e9eefabb032e8ebec3580a2243f3a96\"\u003e6ee0362\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse raw_event to store event data in vertex ai session service (\u003ca href=\"https://github.com/google/adk-python/commit/9da9dee140a3c8971d2dc267eab7d8d17a22a089\"\u003e9da9dee\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd A2ATransport.http_json to the default supported transports list (\u003ca href=\"https://github.com/google/adk-python/commit/7dd9359fa1c419f82db84b844195e1b77d8070e7\"\u003e7dd9359\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadd httpx_client_factory support to SseConnectionParams (\u003ca href=\"https://github.com/google/adk-python/commit/815ebb441579724e5aa22830b2e6f7c22f94fde6\"\u003e815ebb4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eadk:\u003c/strong\u003e redact credentials in BigQuery analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/a27ce4771ff271947a0d94762231da842095836e\"\u003ea27ce47\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eapi client initialization logic to be mutually exclusive between ExpressMode and GCP projects (\u003ca href=\"https://github.com/google/adk-python/commit/4ffe8fb4a6befc9e9d0e838427b7bf4890df4ba3\"\u003e4ffe8fb\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eavoid load all agents in adk web server (\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003eede8a56\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCache BaseToolset.get_tools() for calls within the same invocation (\u003ca href=\"https://github.com/google/adk-python/commit/92cad99724d333760e4ebc6116951d78a9b1cb7a\"\u003e92cad99\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003ecli:\u003c/strong\u003e fail Agent Engine deploy when config file path is invalid (\u003ca href=\"https://github.com/google/adk-python/commit/bbad9ec64ce1617bc45148de97e6246752845b98\"\u003ebbad9ec\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisable tool caching for skill toolset (\u003ca href=\"https://github.com/google/adk-python/commit/064f0d278e55e1e9fd6db1b6ccf3d1cb95cba47b\"\u003e064f0d2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow args on /builder and Add warning about Web UI usage to CLI help (\u003ca href=\"https://github.com/google/adk-python/commit/dcee2902729e178b41086c4039a3828917bbb9f3\"\u003edcee290\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eempty events_iterator assignment (\u003ca href=\"https://github.com/google/adk-python/commit/898c4e5f78b60c4c4732c7cd19ff2da9a64964a1\"\u003e898c4e5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eenvironment:\u003c/strong\u003e fix package references (\u003ca href=\"https://github.com/google/adk-python/commit/add8e8664bd2ae9257c8b37a5e602d0c7aae7625\"\u003eadd8e86\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix RemoteA2AAgent deepcopy errors (\u003ca href=\"https://github.com/google/adk-python/commit/6f29775f4bf7172b1378b17856534f95b9d4eeb6\"\u003e6f29775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes for initializing RemoteA2aAgent - passing in preferred transport, protocol version, and auth headers (\u003ca href=\"https://github.com/google/adk-python/commit/0f3850f56c857dfb86c7ad8de372bcc7fe495968\"\u003e0f3850f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/d98ff2337779c69dcc07c70a9d4bec037030e1eb\"\u003e\u003ccode\u003ed98ff23\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40e050b930007402aa4684537782910912b8b3ce\"\u003e\u003ccode\u003e40e050b\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.29.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/5231\"\u003e#5231\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ede8a56a3cd18311ce82e761f0f3da6228fbc0d6\"\u003e\u003ccode\u003eede8a56\u003c/code\u003e\u003c/a\u003e fix: avoid load all agents in adk web server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6b1600fbf53bcf634c5fe4793f02921bc0b75125\"\u003e\u003ccode\u003e6b1600f\u003c/code\u003e\u003c/a\u003e fix(live): Handle live session resumption and GoAway signal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/6fd0f85191dea17b7c6b033473bd39764250265b\"\u003e\u003ccode\u003e6fd0f85\u003c/code\u003e\u003c/a\u003e fix: move BigQueryAgentAnalyticsPlugin import inside get_runner_async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/20748894cdaa5a95d0c4ccb0daf87a34496639dd\"\u003e\u003ccode\u003e2074889\u003c/code\u003e\u003c/a\u003e feat: Support loading agents from Visual Builder with BigQuery-powered logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9e73ab846672065f1fbe1c2642419e8a008efd43\"\u003e\u003ccode\u003e9e73ab8\u003c/code\u003e\u003c/a\u003e feat(skill): Standardize skill tools and make script arguments flexible\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/23bd95bcf23367a8df3342ca4bb9d17f0b3b0d8f\"\u003e\u003ccode\u003e23bd95b\u003c/code\u003e\u003c/a\u003e feat: Add blacklist for shell metacharacters in BashTool\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ccac461b2ab6291ecd09577ca0553833eaff71b9\"\u003e\u003ccode\u003eccac461\u003c/code\u003e\u003c/a\u003e docs(adk): clean up remote triggers README to remove internal references\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/e2d970ff9428a76ea21db6ec951ddf7af3a986ad\"\u003e\u003ccode\u003ee2d970f\u003c/code\u003e\u003c/a\u003e feat: add ADK trigger endpoints to ADK Web Server\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-aiplatform[adk,agent-engines]` to 1.147.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/releases\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.147.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-aiplatform/blob/main/CHANGELOG.md\"\u003egoogle-cloud-aiplatform[adk,agent-engines]'s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.146.0...v1.147.0\"\u003e1.147.0\u003c/a\u003e (2026-04-09)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe labels field has been removed from GeminiExample. The tools and safety_settings fields have been turned into lists.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd system_labels parameter to Model Garden deploy methods. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003ea196cda\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd the delete method for the Agent Engine Task Store Service (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e2f2a211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Route gemini-3 model traffic to global region in local agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003ee2e81c9\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Add single_turn_template helper to GeminiRequestReadConfig. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e0e5037d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSet agent_framework for A2aAgent class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8085e50741471fa5c17a5b36b69adaab1da4f25\"\u003ea8085e5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd SDK workaround for double-wrapped Any response in async_retrieve_contexts. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003ebd4983b\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Fix inconsistencies between the GeminiExample class definition and API type. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/fad250e700cc676ce66d20ca1c410829788a251c\"\u003efad250e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRelease 1.147.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e4a11370\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.145.0...v1.146.0\"\u003e1.146.0\u003c/a\u003e (2026-04-07)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eto_bigframes\u003c/code\u003e has been removed from the datasets module and moved into the \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. Instead of \u003ccode\u003edataframe = client.datasets.to_bigframes(multimodal_dataset=multimodal_dataset)\u003c/code\u003e, use \u003ccode\u003edataframe = multimodal_dataset.to_bigframes()\u003c/code\u003e to create a BigFrame instance from a multimodal dataset.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd consolidation customization to Memory Bank (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a8948c4dfcc65b73ea579b93f8c36baa65817f25\"\u003ea8948c4\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for custom result parsing in LLM-based evaluation metrics (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/3e0ddff2f5c306d601bf325618b9136f7713ff68\"\u003e3e0ddff\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals) - add core data models and code-gen mapping for auto-loss analysis (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/09794ba83746377b1a94ed00f7c41f6b9d647cd6\"\u003e09794ba\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGenAI Client(evals):  Apply default user persona 'Evaluator' in multi-turn agent scraping (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/7002dc5452032d3189eabae9b0952decd73fb8eb\"\u003e7002dc5\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn run_query_job, rename gcs_bucket to gcs_uri and allow the case that user sets the filename for the output. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/f302d1f99b79b862a61a41c729ae56a22307bf11\"\u003ef302d1f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass state from first bidi_stream_query request to async_create_session (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/37b5a0f796984e3af69f8036ca235e096d64e7d1\"\u003e37b5a0f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMiscellaneous Chores\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eGenAI SDK client(multimodal) - Move \u003ccode\u003eto_bigframes\u003c/code\u003e method to \u003ccode\u003eMultimodalDataset\u003c/code\u003e class. (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/6874b8db7adfa4022972e0eba2c3ccaffd523cf2\"\u003e6874b8d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRelease 1.146.0 (\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/aab457dcf8f0552b0e378c5b4d693e4aa8a2e2f1\"\u003eaab457d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.144.0...v1.145.0\"\u003e1.145.0\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4c28b3440ee42cb6f673d023bea2d8858f31636a\"\u003e\u003ccode\u003e4c28b34\u003c/code\u003e\u003c/a\u003e chore(main): release 1.147.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-aiplatform/issues/6558\"\u003e#6558\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/2f2a211a54109e8b5701c0868b1a459a59cac626\"\u003e\u003ccode\u003e2f2a211\u003c/code\u003e\u003c/a\u003e feat: add the delete method for the Agent Engine Task Store Service\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/e2e81c99b46fef3978655fc480edd5c39f098fd6\"\u003e\u003ccode\u003ee2e81c9\u003c/code\u003e\u003c/a\u003e feat: GenAI Client(evals):  Route gemini-3 model traffic to global region in ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4a113706f1ad9a105b0b04a6cdace9e31942d6e7\"\u003e\u003ccode\u003e4a11370\u003c/code\u003e\u003c/a\u003e chore: release 1.147.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/4d7a15fd85cf8529b649b88239e504e3cafc7b18\"\u003e\u003ccode\u003e4d7a15f\u003c/code\u003e\u003c/a\u003e chore: remove unused kokoro configs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0653ff92f45ef47192582d0eea569d28e0e3b30b\"\u003e\u003ccode\u003e0653ff9\u003c/code\u003e\u003c/a\u003e chore: update SDK serialization logic within response handling\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/bd4983b488a3181578c552482af6ec78e8aa408e\"\u003e\u003ccode\u003ebd4983b\u003c/code\u003e\u003c/a\u003e fix: Add SDK workaround for double-wrapped Any response in async_retrieve_con...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/a196cda777b8f6d9136a7f0b0d7264d09dab1ba9\"\u003e\u003ccode\u003ea196cda\u003c/code\u003e\u003c/a\u003e feat: Add system_labels parameter to Model Garden deploy methods.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/0e5037d31bd6566756dd79ba8606d7fdeb9b54ae\"\u003e\u003ccode\u003e0e5037d\u003c/code\u003e\u003c/a\u003e feat: GenAI SDK client(multimodal) - Add single_turn_template helper to Gemin...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-aiplatform/commit/8016cb6cdbf216ed9b9a8f01e2a37ec1d626ac44\"\u003e\u003ccode\u003e8016cb6\u003c/code\u003e\u003c/a\u003e chore: Update the discoverydoc in v1beta1 for agent engine related changes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/python-aiplatform/compare/v1.93.0...v1.147.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.2.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.2.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.2.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate 12.2.0 release notes \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd loader plugins: AMOS abk, Atari Degas, 40+ more obscure formats via Netpbm \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9482\"\u003e#9482\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Python versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9515\"\u003e#9515\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eJeffrey A. Clark -\u0026gt; Jeffrey 'Alex' Clark \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9513\"\u003e#9513\u003c/a\u003e [\u003ca href=\"https://github.com/aclark4life\"\u003e\u003ccode\u003e@​aclark4life\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9394\"\u003e#9394\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9419\"\u003e#9419\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9456\"\u003e#9456\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9467\"\u003e#9467\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd Amiga Workbench .info loader to 3rd party plugins list \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9459\"\u003e#9459\u003c/a\u003e [\u003ca href=\"https://github.com/bitplane\"\u003e\u003ccode\u003e@​bitplane\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMerge PFM documentation into PPM \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9434\"\u003e#9434\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eFix CVE number \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9430\"\u003e#9430\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate xz to 5.8.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9523\"\u003e#9523\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libjpeg-turbo to 3.1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9507\"\u003e#9507\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libpng to 1.6.56 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9499\"\u003e#9499\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9485\"\u003e#9485\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libavif to 1.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9479\"\u003e#9479\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 13.2.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9461\"\u003e#9461\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate harfbuzz to 13.0.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9453\"\u003e#9453\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libavif to 1.4.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9460\"\u003e#9460\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate freetype to 2.14.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9449\"\u003e#9449\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/download-artifact action to v8 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9451\"\u003e#9451\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.55 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9425\"\u003e#9425\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCleanup .spider extension in the same test where it is added \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9517\"\u003e#9517\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eRun tests in parallel via tox for 3.5x speedup \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9516\"\u003e#9516\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eEnable colour in CI logs \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9486\"\u003e#9486\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate Ghostscript to 10.7.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9469\"\u003e#9469\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSimplify TGA test code \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9477\"\u003e#9477\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate tests to check for ValueError when encoding an empty image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9464\"\u003e#9464\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpgrade CI from \u003ccode\u003emacos-15-intel\u003c/code\u003e to \u003ccode\u003emacos-26-intel\u003c/code\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9454\"\u003e#9454\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd check-case-conflict hook \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9446\"\u003e#9446\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eSpecify platform when pulling docker image \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9440\"\u003e#9440\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eGHA: Cache libavif and webp builds for Ubuntu \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9437\"\u003e#9437\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9431\"\u003e#9431\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCheck calloc return value \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCheck all allocs in the Arrow tree \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e [\u003ca href=\"https://github.com/wiredfool\"\u003e\u003ccode\u003e@​wiredfool\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eReject non-numeric elements inside list coords \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eMove variable declaration inside define \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3c41c095064200a02672d89cc5ff629eaf4b0d4f\"\u003e\u003ccode\u003e3c41c09\u003c/code\u003e\u003c/a\u003e 12.2.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cdaa29eb520291c4f1fb50fb71ae46502d41e460\"\u003e\u003ccode\u003ecdaa29e\u003c/code\u003e\u003c/a\u003e Check calloc return value (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9527\"\u003e#9527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/585b2f5a780722c8a5bfffb3a40f7f42e8a205be\"\u003e\u003ccode\u003e585b2f5\u003c/code\u003e\u003c/a\u003e Check calloc return value\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ecf011ea15991d4cebacd946e58270cc30b0f2c1\"\u003e\u003ccode\u003eecf011e\u003c/code\u003e\u003c/a\u003e Check all allocs in the Arrow tree (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9488\"\u003e#9488\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cf6de8ca9b23e714aa5310e1c791eda66fc0b670\"\u003e\u003ccode\u003ecf6de8c\u003c/code\u003e\u003c/a\u003e Reject non-numeric elements inside list coords (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9526\"\u003e#9526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/ffdcede6516b28d9667c92929854023d17048b64\"\u003e\u003ccode\u003effdcede\u003c/code\u003e\u003c/a\u003e Update 12.2.0 release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9522\"\u003e#9522\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/7929d7760fe5a307ba5ae6eabdf70ae4486b147c\"\u003e\u003ccode\u003e7929d77\u003c/code\u003e\u003c/a\u003e Added security release notes (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/149\"\u003e#149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c4f7aa5dfb4dbd1242978ac235e01b9934ec6d3c\"\u003e\u003ccode\u003ec4f7aa5\u003c/code\u003e\u003c/a\u003e Added security release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/22cdb5f2e4b15250c06563b1124ac1667342712f\"\u003e\u003ccode\u003e22cdb5f\u003c/code\u003e\u003c/a\u003e Move variable declaration inside define (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9525\"\u003e#9525\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/fc15b3b01899408ec989d7804c5283e13802d057\"\u003e\u003ccode\u003efc15b3b\u003c/code\u003e\u003c/a\u003e Resize tall images vertically first (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9524\"\u003e#9524\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.10\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.10\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://releases.astral.sh/github/ruff/releases/download/0.15.10/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.10\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-09.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-logging\u003c/code\u003e] Allow closures in except handlers (\u003ccode\u003eLOG004\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24464\"\u003e#24464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Make \u003ccode\u003eSLF\u003c/code\u003e diagnostics robust to non-self-named variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24281\"\u003e#24281\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Make the fix for \u003ccode\u003ecollapsible-if\u003c/code\u003e safe in \u003ccode\u003epreview\u003c/code\u003e (\u003ccode\u003eSIM102\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24371\"\u003e#24371\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid emitting multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24377\"\u003e#24377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAvoid syntax error from \u003ccode\u003eE502\u003c/code\u003e fixes in f-strings and t-strings (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24410\"\u003e#24410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip form feeds from indent passed to \u003ccode\u003ededent_to\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24381\"\u003e#24381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix panic caused by handling of octals (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24390\"\u003e#24390\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReject multi-line f-string elements before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24355\"\u003e#24355\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Treat f-string interpolation as potential side effect (\u003ccode\u003eRUF019\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for custom file extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument adding fixes in CONTRIBUTING.md (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24393\"\u003e#24393\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dylwil3\"\u003e\u003ccode\u003e@​dylwil3\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/silverstein\"\u003e\u003ccode\u003e@​silverstein\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shizukushq\"\u003e\u003ccode\u003e@​shizukushq\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zanieb\"\u003e\u003ccode\u003e@​zanieb\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AlexWaygood\"\u003e\u003ccode\u003e@​AlexWaygood\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.9\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-04-02.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Flag annotated variable redeclarations as \u003ccode\u003eF811\u003c/code\u003e in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24244\"\u003e#24244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Allow dunder-named assignments in non-strict mode for \u003ccode\u003eRUF067\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24089\"\u003e#24089\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/252f76102a618bff6537b6c53c316ca3837f4abf\"\u003e\u003ccode\u003e252f761\u003c/code\u003e\u003c/a\u003e Bump 0.15.10 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24519\"\u003e#24519\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/37a1ec8bb8e30955787b0cdf6e97f7f2254dba7f\"\u003e\u003ccode\u003e37a1ec8\u003c/code\u003e\u003c/a\u003e [ty] Fix assignability of intersections with bounded typevars (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24502\"\u003e#24502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/f518cc9ca0c830773dd49c3964eb5e49d52c8aed\"\u003e\u003ccode\u003ef518cc9\u003c/code\u003e\u003c/a\u003e [ty] Allow partially stringified \u003ccode\u003etype[…]\u003c/code\u003e annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24518\"\u003e#24518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/16c4090d0a711b9c0523b932014f3daf140f35bc\"\u003e\u003ccode\u003e16c4090\u003c/code\u003e\u003c/a\u003e docs: fix JSON typo in settings example (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24517\"\u003e#24517\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/99d97bd72f1934ac2af93e52468c10ef1c7a1a4e\"\u003e\u003ccode\u003e99d97bd\u003c/code\u003e\u003c/a\u003e [ty] Tighten up a few edge cases in \u003ccode\u003eConcatenate\u003c/code\u003e type-expression parsing (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2714e345bdd64a5baae3844c0d25db7b0b9fe330\"\u003e\u003ccode\u003e2714e34\u003c/code\u003e\u003c/a\u003e [ty] Enable \u003ccode\u003epull-diagnostics\u003c/code\u003e by default in E2E tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24516\"\u003e#24516\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8bc700722ab1b7272a4d724839da7c569b349d4\"\u003e\u003ccode\u003ed8bc700\u003c/code\u003e\u003c/a\u003e LSP: Add support for custom extensions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24463\"\u003e#24463\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a45f96d65dbd4f958b07accd718f8d2af48cb956\"\u003e\u003ccode\u003ea45f96d\u003c/code\u003e\u003c/a\u003e [ty] stop special-casing str constructor (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24514\"\u003e#24514\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/87a0f01cfd016e0297ef05ab638cde006bf8d947\"\u003e\u003ccode\u003e87a0f01\u003c/code\u003e\u003c/a\u003e [ruff] Treat f-string interpolation as potential side effect in RUF019 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24426\"\u003e#24426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/e9ba8489b8d1f1fd5fd66887a74d5f2f58f733d4\"\u003e\u003ccode\u003ee9ba848\u003c/code\u003e\u003c/a\u003e [ty] Fix excess subscript argument inference for non-generic types (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24354\"\u003e#24354\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.20.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMypy Release Notes\u003c/h1\u003e\n\u003ch2\u003eNext Release\u003c/h2\u003e\n\u003ch2\u003eMypy 1.20\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.20.0 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\nimprovements and bug fixes. You can install it as follows:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epython3 -m pip install -U mypy\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eYou can read the full documentation for this release on \u003ca href=\"http://mypy.readthedocs.io\"\u003eRead the Docs\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003ePlanned Changes to Defaults and Flags in Mypy 2.0\u003c/h3\u003e\n\u003cp\u003eAs a reminder, we are planning to enable \u003ccode\u003e--local-partial-types\u003c/code\u003e by default in mypy 2.0, which\nwill likely be the next feature release. This will often require at least minor code changes. This\noption is implicitly enabled by mypy daemon, so this makes the behavior of daemon and non-daemon\nmodes consistent.\u003c/p\u003e\n\u003cp\u003eNote that this release improves the compatibility of \u003ccode\u003e--local-partial-types\u003c/code\u003e significantly to\nmake the switch easier (see below for more).\u003c/p\u003e\n\u003cp\u003eThis can also be configured in a mypy configuration file (use \u003ccode\u003eFalse\u003c/code\u003e to disable):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003elocal_partial_types = True\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-local-partial-types\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eWe will also enable \u003ccode\u003e--strict-bytes\u003c/code\u003e by default in mypy 2.0. This usually requires at most\nminor code changes to adopt. For more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-strict-bytes\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eFinally, \u003ccode\u003e--allow-redefinition-new\u003c/code\u003e will be renamed to \u003ccode\u003e--allow-redefinition\u003c/code\u003e. If you want\nto continue using the older \u003ccode\u003e--allow-redefinition\u003c/code\u003e semantics which are less flexible (e.g.\nlimited support for conditional redefinitions), you can switch to \u003ccode\u003e--allow-redefinition-old\u003c/code\u003e,\nwhich is currently supported as an alias to the legacy \u003ccode\u003e--allow-redefinition\u003c/code\u003e behavior.\nTo use \u003ccode\u003e--allow-redefinition\u003c/code\u003e in the upcoming mypy 2.0, you can't use \u003ccode\u003e--no-local-partial-types\u003c/code\u003e.\nFor more information, refer to the\n\u003ca href=\"https://mypy.readthedocs.io/en/stable/command_line.html#cmdoption-mypy-allow-redefinition-new\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eBetter Type Narrowing\u003c/h3\u003e\n\u003cp\u003eMypy's implementation of narrowing has been substantially reworked. Mypy will now narrow more\naggressively, more consistently, and more correctly. In particular, you are likely to notice new\nnarrowing behavior in equality expressions (\u003ccode\u003e==\u003c/code\u003e), containment expressions (\u003ccode\u003ein\u003c/code\u003e),\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/770d3ca4997032dc3a1c4f0b468e9f58e8f38505\"\u003e\u003ccode\u003e770d3ca\u003c/code\u003e\u003c/a\u003e Remove +dev from version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/4738ffafc56a0d175cba06e893ffa62e756fc7e0\"\u003e\u003ccode\u003e4738ffa\u003c/code\u003e\u003c/a\u003e Changelog updates for 1.20 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21109\"\u003e#21109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b4f07a717c3a239a9c77808c5550fff5f2638c96\"\u003e\u003ccode\u003eb4f07a7\u003c/code\u003e\u003c/a\u003e Use 'native-parser' instead of 'native-parse' for optional dependency (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21115\"\u003e#21115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/7bec7b7f791790b1c925cdcc573ced564fbbf065\"\u003e\u003ccode\u003e7bec7b7\u003c/code\u003e\u003c/a\u003e [mypyc] Document librt and librt.base64 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21114\"\u003e#21114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c4825969450385cf3eb91a4fc02f273b369bc301\"\u003e\u003ccode\u003ec482596\u003c/code\u003e\u003c/a\u003e --allow-redefinition-new is no longer experimental (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21110\"\u003e#21110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c916ca3fa79d9324dcbe130b18e24e2b5e2d1eb5\"\u003e\u003ccode\u003ec916ca3\u003c/code\u003e\u003c/a\u003e sdist: include \u003ccode\u003emisc/{diff-cache,apply-cache-diff}.py\u003c/code\u003e for `mypy/test/test_di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/b137e4ed41d6178f6dbd0e609db56b8c1ad5384a\"\u003e\u003ccode\u003eb137e4e\u003c/code\u003e\u003c/a\u003e [mypyc] Speed up native-to-native imports within the same group (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21101\"\u003e#21101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/978b711c21adadf5dae4db80127ddf270d79af5f\"\u003e\u003ccode\u003e978b711\u003c/code\u003e\u003c/a\u003e [mypyc] Fix range loop variable off-by-one after loop exit (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21098\"\u003e#21098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/67ada30918d1a32e1935e9ac468113e0aa002b79\"\u003e\u003ccode\u003e67ada30\u003c/code\u003e\u003c/a\u003e [stubtest] Check runtime availability of private types not marked `@type_chec...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/bdef6ef8734af07cab1bf0acadc1d8ab9add93c3\"\u003e\u003ccode\u003ebdef6ef\u003c/code\u003e\u003c/a\u003e librt cache tests: build respecting MYPY_TEST_PREFIX (\u003ca href=\"https://redirect.github.com/python/mypy/issues/21097\"\u003e#21097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/jamesbraza\"\u003e\u003ccode\u003e@​jamesbraza\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3656\"\u003ecodespell-project/codespell#3656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href=\"https://github.com/luzpaz\"\u003e\u003ccode\u003e@​luzpaz\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3640\"\u003ecodespell-project/codespell#3640\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3659\"\u003ecodespell-project/codespell#3659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd codespell suggestions for enabke and friends by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3657\"\u003ecodespell-project/codespell#3657\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEND: add \u0026quot;queues\u0026quot; (plural from queue) as possible fix for ques by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3591\"\u003ecodespell-project/codespell#3591\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eagreegate, lesda, realod, colouer by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3665\"\u003ecodespell-project/codespell#3665\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pre-commit version in documentation by \u003ca href=\"https://github.com/prchoward\"\u003e\u003ccode\u003e@​prchoward\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3666\"\u003ecodespell-project/codespell#3666\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMAINT: Rename CI file and run name by \u003ca href=\"https://github.com/larsoner\"\u003e\u003ccode\u003e@​larsoner\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3667\"\u003ecodespell-project/codespell#3667\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epreoccuption-\u0026gt;preoccupation; occuption-\u0026gt;occupation by \u003ca href=\"https://github.com/TheGiraffe3\"\u003e\u003ccode\u003e@​TheGiraffe3\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3668\"\u003ecodespell-project/codespell#3668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuggestions for: checkto, diminsion, waitfor by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3670\"\u003ecodespell-project/codespell#3670\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTypos found in sigstore-python by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3664\"\u003ecodespell-project/codespell#3664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eusgin-\u0026gt;using by \u003ca href=\"https://github.com/ydah\"\u003e\u003ccode\u003e@​ydah\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3672\"\u003ecodespell-project/codespell#3672\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd typos found in various software projects by \u003ca href...\n\n_Description has been truncated_","html_url":"https://github.com/junglebabydev/google-adk/pull/12","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/junglebabydev%2Fgoogle-adk/issues/12","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12/packages"}},{"old_version":"3.12.1","new_version":"3.15.0","update_type":"minor","path":null,"pr_created_at":"2026-04-05T14:41:08.000Z","version_change":"3.12.1 → 3.15.0","issue":{"uuid":"4207719088","node_id":"PR_kwDOQFJwNM7QDQV8","number":4,"state":"closed","title":"chore(deps): bump google-cloud-logging from 3.12.1 to 3.15.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-05T15:13:08.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-05T14:41:08.000Z","updated_at":"2026-04-05T15:13:09.000Z","time_to_close":1920,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)","packages":[{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.15.0","repository_url":"https://github.com/googleapis/google-cloud-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [google-cloud-logging](https://github.com/googleapis/google-cloud-python) from 3.12.1 to 3.15.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.13.0...google-cloud-documentai-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdded a fields for image and table annotation output (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate comments for proto fields (PiperOrigin-RevId: 893028748) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c36aa616\"\u003ec36aa616\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003egrpc-google-iam-v1: v0.14.4\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/grpc-google-iam-v1-v0.14.3...grpc-google-iam-v1-v0.14.4\"\u003ev0.14.4\u003c/a\u003e (2026-03-31)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-documentai: v3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v3.12.0...google-cloud-documentai-v3.13.0\"\u003ev3.13.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003ch2\u003egoogle-cloud-compute-v1beta: v0.10.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-compute-v1beta-v0.9.0...google-cloud-compute-v1beta-v0.10.0\"\u003ev0.10.0\u003c/a\u003e (2026-03-26)\u003c/h2\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7a05a34dc0d4bd9ded9ab3ce97b5e61f2780e081\"\u003e\u003ccode\u003e7a05a34\u003c/code\u003e\u003c/a\u003e chore: create a release (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16191\"\u003e#16191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0f19d85b8083b57c2e60b8cd257d3e1f419e7eed\"\u003e\u003ccode\u003e0f19d85\u003c/code\u003e\u003c/a\u003e chore: fix missing heading in changelog (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16189\"\u003e#16189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/a16755d8e2fcd941e94cc967a5acd72c95eb7644\"\u003e\u003ccode\u003ea16755d\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T111101Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16141\"\u003e#16141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9694ce943e2b7f4729b78e80b25a6729bfb292ca\"\u003e\u003ccode\u003e9694ce9\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T114549Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16143\"\u003e#16143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c4a35cf59cc2d82243fdd6e2bd5cab981f3a1467\"\u003e\u003ccode\u003ec4a35cf\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260323T132735Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16146\"\u003e#16146\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/640a86b3ba70b191984c3edaded68ddbe5e540d8\"\u003e\u003ccode\u003e640a86b\u003c/code\u003e\u003c/a\u003e chore: librarian update image pull request: 20260325T221325Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16175\"\u003e#16175\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/341284c80e2f09149467541767499f30b369df55\"\u003e\u003ccode\u003e341284c\u003c/code\u003e\u003c/a\u003e chore(deps): bump pyasn1 from 0.6.1 to 0.6.3 in /packages/sqlalchemy-spanner ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ec9262c45055d3d2b596cdde1649d3ce90b4347d\"\u003e\u003ccode\u003eec9262c\u003c/code\u003e\u003c/a\u003e fix: Allow Protobuf 7.x, require Python 3.9 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16102\"\u003e#16102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/cf50cea185f2ad4763a14f1f0c14ca50fc2fe418\"\u003e\u003ccode\u003ecf50cea\u003c/code\u003e\u003c/a\u003e feat(firestore): literals pipeline stage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16028\"\u003e#16028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4b400faca2fcd40f68a812dc6f47a79d0cbf7433\"\u003e\u003ccode\u003e4b400fa\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260325T142358Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16166\"\u003e#16166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=google-cloud-logging\u0026package-manager=uv\u0026previous-version=3.12.1\u0026new-version=3.15.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@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)\n- `@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)\n- `@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)\n\n\n\u003c/details\u003e","html_url":"https://github.com/ssfuno/python-template/pull/4","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/ssfuno%2Fpython-template/issues/4","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/4/packages"}},{"old_version":"3.13.0","new_version":"3.14.0","update_type":"minor","path":null,"pr_created_at":"2026-03-18T02:50:17.000Z","version_change":"3.13.0 → 3.14.0","issue":{"uuid":"4092363377","node_id":"PR_kwDOQ54Gg87LZ5jo","number":10,"state":"closed","title":"Bump the uv-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-01T02:51:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-18T02:50:17.000Z","updated_at":"2026-04-01T02:51:08.000Z","time_to_close":1209650,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"uv-dependencies","update_count":17,"packages":[{"name":"google-adk","old_version":"1.21.0","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-instrumentation-google-genai","old_version":"0.5b0","new_version":"0.7b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"gcsfs","old_version":"2025.12.0","new_version":"2026.2.0","repository_url":"https://github.com/fsspec/gcsfs"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"build","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/pypa/build"},{"name":"debugpy","old_version":"1.8.19","new_version":"1.8.20","repository_url":"https://github.com/microsoft/debugpy"},{"name":"greenlet","old_version":"3.3.0","new_version":"3.3.2","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"poethepoet","old_version":"0.40.0","new_version":"0.42.1","repository_url":"https://github.com/nat-n/poethepoet"},{"name":"pyright","old_version":"1.1.407","new_version":"1.1.408","repository_url":"https://github.com/RobertCraigie/pyright-python"},{"name":"ruff","old_version":"0.14.10","new_version":"0.15.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"tombi","old_version":"0.7.14","new_version":"0.9.4","repository_url":"https://github.com/tombi-toml/tombi"},{"name":"uv","old_version":"0.9.21","new_version":"0.10.9","repository_url":"https://github.com/astral-sh/uv"},{"name":"wemake-python-styleguide","old_version":"1.5.0","new_version":"1.6.1","repository_url":"https://github.com/wemake-services/wemake-python-styleguide"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the uv-dependencies group with 17 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.21.0` | `1.26.0` |\n| [opentelemetry-instrumentation-google-genai](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.5b0` | `0.7b0` |\n| [gcsfs](https://github.com/fsspec/gcsfs) | `2025.12.0` | `2026.2.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [build](https://github.com/pypa/build) | `1.3.0` | `1.4.0` |\n| [debugpy](https://github.com/microsoft/debugpy) | `1.8.19` | `1.8.20` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.3.0` | `3.3.2` |\n| [poethepoet](https://github.com/nat-n/poethepoet) | `0.40.0` | `0.42.1` |\n| [pyright](https://github.com/RobertCraigie/pyright-python) | `1.1.407` | `1.1.408` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.10` | `0.15.5` |\n| [tombi](https://github.com/tombi-toml/tombi) | `0.7.14` | `0.9.4` |\n| [uv](https://github.com/astral-sh/uv) | `0.9.21` | `0.10.9` |\n| [wemake-python-styleguide](https://github.com/wemake-services/wemake-python-styleguide) | `1.5.0` | `1.6.1` |\n| [codespell](https://github.com/codespell-project/codespell) | `2.4.1` | `2.4.2` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\n\nUpdates `google-adk` from 1.21.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.21.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-instrumentation-google-genai` from 0.5b0 to 0.7b0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/releases\"\u003eopentelemetry-instrumentation-google-genai's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eopentelemetry-instrumentation-google-genai 0.7b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix bug in how tokens are counted when using the streaming \u003ccode\u003egenerateContent\u003c/code\u003e method.  (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4152\"\u003e#4152\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.tool.definitions\u003c/code\u003e attribute to \u003ccode\u003egen_ai.client.inference.operation.details\u003c/code\u003e log event (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4142\"\u003e#4142\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003egen_ai.tool_definitions\u003c/code\u003e to completion hook (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4181\"\u003e#4181\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eopentelemetry-instrumentation-google-genai 0.6b0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEnable the addition of custom attributes to the \u003ccode\u003egenerate_content {model.name}\u003c/code\u003e span via the Context API. (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3961\"\u003e#3961\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eEnable the addition of custom attributes to \u003ccode\u003egen_ai.client.inference.operation.details\u003c/code\u003e log events (\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4103\"\u003e#4103\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/blob/main/CHANGELOG.md\"\u003eopentelemetry-instrumentation-google-genai's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eChangelog\u003c/h1\u003e\n\u003cp\u003eAll notable changes to this project will be documented in this file.\u003c/p\u003e\n\u003cp\u003eThe format is based on \u003ca href=\"https://keepachangelog.com/en/1.0.0/\"\u003eKeep a Changelog\u003c/a\u003e,\nand this project adheres to \u003ca href=\"https://semver.org/spec/v2.0.0.html\"\u003eSemantic Versioning\u003c/a\u003e.\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!NOTE]\nThe following components are released independently and maintain individual CHANGELOG files.\nUse \u003ca href=\"https://github.com/search?q=repo%3Aopen-telemetry%2Fopentelemetry-python-contrib+path%3A**%2FCHANGELOG.md\u0026amp;type=code\"\u003ethis search for a list of all CHANGELOG.md files in this repo\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eUnreleased\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-confluent-kafka\u003c/code\u003e: Loosen confluent-kafka upper bound to \u0026lt;3.0.0\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4289\"\u003e#4289\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation\u003c/code\u003e: Add support for wrapt 2.x\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-psycopg2\u003c/code\u003e: Add parameter \u003ccode\u003ecapture_parameters\u003c/code\u003e to instrumentor.\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4212\"\u003e#4212\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix intermittent \u003ccode\u003eCore Contrib Test\u003c/code\u003e CI failures caused by GitHub git CDN SHA propagation lag by installing core packages from the already-checked-out local copy instead of a second git clone\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4305\"\u003e#4305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDon't import module in unwrap if not already imported\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4321\"\u003e#4321\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-logging\u003c/code\u003e: Add recursion guard in LoggingHandler.emit to prevent deadlock\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4302\"\u003e#4302\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-boto\u003c/code\u003e: Remove instrumentation\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4303\"\u003e#4303\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 1.40.0/0.61b0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Python 3.14 support\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/4193\"\u003e#4193\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-asgi\u003c/code\u003e: Add exemplars for \u003ccode\u003ehttp.server.request.duration\u003c/code\u003e and \u003ccode\u003ehttp.server.duration\u003c/code\u003e metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3739\"\u003e#3739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-wsgi\u003c/code\u003e: Add exemplars for \u003ccode\u003ehttp.server.request.duration\u003c/code\u003e and \u003ccode\u003ehttp.server.duration\u003c/code\u003e metrics\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3739\"\u003e#3739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-aiohttp-client\u003c/code\u003e: add ability to capture custom headers\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3988\"\u003e#3988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eopentelemetry-instrumentation-requests\u003c/code\u003e: add ability to capture custom headers\n(\u003ca href=\"https://redirect.github.com/open-telemetry/opentelemetry-python-contrib/pull/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/open-telemetry/opentelemetry-python-contrib/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `gcsfs` from 2025.12.0 to 2026.2.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/427354db3d4833cc7623ce359c398610f6601219\"\u003e\u003ccode\u003e427354d\u003c/code\u003e\u003c/a\u003e changelog (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/757\"\u003e#757\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/6e4efb8ea553ee5d92b295bfe8a359f79b550358\"\u003e\u003ccode\u003e6e4efb8\u003c/code\u003e\u003c/a\u003e Remove cache_type option from ExtendedGCSFSFileSystem._open (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/754\"\u003e#754\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/9f20436237d8f9ffe3ae6ad7fe0181c23ad905d6\"\u003e\u003ccode\u003e9f20436\u003c/code\u003e\u003c/a\u003e Fix for recent breaking changes introduced in python sdk  (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/755\"\u003e#755\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/98af30083031c22c7781934a8263f3b5b778fc64\"\u003e\u003ccode\u003e98af300\u003c/code\u003e\u003c/a\u003e Adds test coverage check in repo (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/68\"\u003e#68\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/752\"\u003e#752\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/fcefacb3401f72cf5cc3ff4ae1392d7464c10a6e\"\u003e\u003ccode\u003efcefacb\u003c/code\u003e\u003c/a\u003e Add the new readahead_v2 cache (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/750\"\u003e#750\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/e0c0a9fe1c4190aaf71200eb9fa0958d74a267f7\"\u003e\u003ccode\u003ee0c0a9f\u003c/code\u003e\u003c/a\u003e rm override for HNS buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/742\"\u003e#742\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/73c37dcd4370591dca143851454ba7d13960371c\"\u003e\u003ccode\u003e73c37dc\u003c/code\u003e\u003c/a\u003e Ignore benchmark folders (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/748\"\u003e#748\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/a586d0b70ca0400eca4164ea9962fe2bd30a2a73\"\u003e\u003ccode\u003ea586d0b\u003c/code\u003e\u003c/a\u003e adds info() integration tests for HNS (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/749\"\u003e#749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/57baa54db055dca11f061ce0c471c1fb18863ba8\"\u003e\u003ccode\u003e57baa54\u003c/code\u003e\u003c/a\u003e change errors to warning in ZonalFile commit (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/747\"\u003e#747\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fsspec/gcsfs/commit/b43958088bf5ccfe5552e79cfe6f1f8570b848c3\"\u003e\u003ccode\u003eb439580\u003c/code\u003e\u003c/a\u003e find Method Implementation for HNS Buckets (\u003ca href=\"https://redirect.github.com/fsspec/gcsfs/issues/735\"\u003e#735\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fsspec/gcsfs/compare/2025.12.0...2026.2.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `build` from 1.3.0 to 1.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/releases\"\u003ebuild's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.4.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/940\"\u003e#940\u003c/a\u003e, PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/950\"\u003e#950\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/944\"\u003e#944\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/945\"\u003e#945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR \u003ca href=\"https://redirect.github.com/pypa/build/issues/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/build/blob/main/CHANGELOG.rst\"\u003ebuild's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e###########\nChangelog\n###########\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e1.4.0 (2026-01-08)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--quiet\u003c/code\u003e flag (:pr:\u003ccode\u003e947\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to dump PEP 517 metadata with \u003ccode\u003e--metadata\u003c/code\u003e (:pr:\u003ccode\u003e940\u003c/code\u003e, :pr:\u003ccode\u003e943\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003eUV\u003c/code\u003e environment variable (:pr:\u003ccode\u003e971\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eRemove a workaround for 3.14b1 (:pr:\u003ccode\u003e960\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn 3.14 final release, \u003ccode\u003ecolor\u003c/code\u003e defaults to \u003ccode\u003eTrue\u003c/code\u003e already (:pr:\u003ccode\u003e962\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePass sp-repo-review (:pr:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn pytest configuration, \u003ccode\u003elog_level\u003c/code\u003e is better than \u003ccode\u003elog_cli_level\u003c/code\u003e (:pr:\u003ccode\u003e950\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSplit up typing and mypy (:pr:\u003ccode\u003e944\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003etypes-colorama\u003c/code\u003e (:pr:\u003ccode\u003e945\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eIn docs, first argument for \u003ccode\u003e_has_dependency\u003c/code\u003e is a name (PR :pr:\u003ccode\u003e970\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix test failure when \u003ccode\u003eflit-core\u003c/code\u003e is installed (PR :pr:\u003ccode\u003e921\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e1.3.0 (2025-08-01)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--config-json\u003c/code\u003e (PR :pr:\u003ccode\u003e916\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDrop Python 3.8 (PR :pr:\u003ccode\u003e891\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eTest on Python 3.14, colorful help on 3.14+ (PR :pr:\u003ccode\u003e895\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eModuleNotFoundError\u003c/code\u003e when \u003ccode\u003epip\u003c/code\u003e is not installed (PR :pr:\u003ccode\u003e898\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDisable use of \u003ccode\u003epip install --python\u003c/code\u003e for debundled pip (PR :pr:\u003ccode\u003e861\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't pass no-wheel to virtualenv if it would warn (PR :pr:\u003ccode\u003e892\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOptimize our tests to run faster (PR :pr:\u003ccode\u003e871\u003c/code\u003e, :pr:\u003ccode\u003e872\u003c/code\u003e, :pr:\u003ccode\u003e738\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAllow running our tests without virtualenv (PR :pr:\u003ccode\u003e911\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix issues in our tests (PR :pr:\u003ccode\u003e824\u003c/code\u003e, :pr:\u003ccode\u003e918\u003c/code\u003e, :pr:\u003ccode\u003e870\u003c/code\u003e, :pr:\u003ccode\u003e915\u003c/code\u003e, :pr:\u003ccode\u003e862\u003c/code\u003e, :pr:\u003ccode\u003e863\u003c/code\u003e, :pr:\u003ccode\u003e899\u003c/code\u003e, :pr:\u003ccode\u003e896\u003c/code\u003e,\n:pr:\u003ccode\u003e854\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse SPDX identifiers for our license metadata (PR :pr:\u003ccode\u003e914\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse dependency-groups for our development (PR :pr:\u003ccode\u003e880\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMention conda and update uv mention in README/docs (PR :pr:\u003ccode\u003e842\u003c/code\u003e, :pr:\u003ccode\u003e816\u003c/code\u003e, :pr:\u003ccode\u003e917\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e1.2.2 (2024-09-06)\u003c/p\u003e\n\u003chr /\u003e\n\u003cul\u003e\n\u003cli\u003eAdd editable to \u003ccode\u003ebuilder.get_requires_for_build\u003c/code\u003e's static types (PR :pr:\u003ccode\u003e764\u003c/code\u003e, fixes issue :issue:\u003ccode\u003e763\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eInclude artifact attestations in our release (PR :pr:\u003ccode\u003e782\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFix typing compatibility with typed \u003ccode\u003epyproject-hooks\u003c/code\u003e (PR :pr:\u003ccode\u003e788\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMark more tests with \u003ccode\u003enetwork\u003c/code\u003e (PR :pr:\u003ccode\u003e808\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd more intersphinx links to docs (PR :pr:\u003ccode\u003e804\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003euv\u003c/code\u003e optional for tests (PR :pr:\u003ccode\u003e807\u003c/code\u003e and :pr:\u003ccode\u003e813\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/54f238d1664124e06a68c6c22fd5b1418fa5feb2\"\u003e\u003ccode\u003e54f238d\u003c/code\u003e\u003c/a\u003e chore: prepare for 1.4.0 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/972\"\u003e#972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/f219276a6e2c6c8222780ba518ce52444a91deaa\"\u003e\u003ccode\u003ef219276\u003c/code\u003e\u003c/a\u003e docs: first argument for _has_dependency is a name (\u003ca href=\"https://redirect.github.com/pypa/build/issues/970\"\u003e#970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/7adb29e69d2744acc5391d3c58d234388a9ac0ed\"\u003e\u003ccode\u003e7adb29e\u003c/code\u003e\u003c/a\u003e fix: support UV environment variable (\u003ca href=\"https://redirect.github.com/pypa/build/issues/971\"\u003e#971\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/a40623b20de5d29c80b569283191d65e630f4fc0\"\u003e\u003ccode\u003ea40623b\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/attest-build-provenance in the actions group (\u003ca href=\"https://redirect.github.com/pypa/build/issues/968\"\u003e#968\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/c8fae3459dbe4456d82d705c6a3f1869b0b26e5c\"\u003e\u003ccode\u003ec8fae34\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/965\"\u003e#965\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/ed9c379f51abca7c0c0ae20bee66aa548d597dc3\"\u003e\u003ccode\u003eed9c379\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/download-artifact in the actions group\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0e44fd22f35c7b3c14d6410bbd8912dafba0e4a9\"\u003e\u003ccode\u003e0e44fd2\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003equiet\u003c/code\u003e flag (\u003ca href=\"https://redirect.github.com/pypa/build/issues/947\"\u003e#947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/60e15ed4cb31209f0e07de750c831cdb3911c62c\"\u003e\u003ccode\u003e60e15ed\u003c/code\u003e\u003c/a\u003e chore: color defaults to True in 3.14 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/962\"\u003e#962\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/0486d9df2e6caf7c04a3991824093eb6a16e7f29\"\u003e\u003ccode\u003e0486d9d\u003c/code\u003e\u003c/a\u003e pre-commit: bump repositories (\u003ca href=\"https://redirect.github.com/pypa/build/issues/961\"\u003e#961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pypa/build/commit/393b775480523247c1ad07b8da9bb8c23c5cd0fa\"\u003e\u003ccode\u003e393b775\u003c/code\u003e\u003c/a\u003e MNT: remove workaround for 3.14b1 (\u003ca href=\"https://redirect.github.com/pypa/build/issues/960\"\u003e#960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pypa/build/compare/1.3.0...1.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `debugpy` from 1.8.19 to 1.8.20\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/microsoft/debugpy/releases\"\u003edebugpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003edebugpy v1.8.20\u003c/h2\u003e\n\u003cp\u003eFixes for:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eannotate in 3.14 causing exceptions: \u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1971\"\u003emicrosoft/debugpy#1971\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eEnhancements:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUse remote_exec if available: \u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003ehttps://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport more architectures: \u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003ehttps://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eInfrastructure work:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport devcontainers for development: \u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003ehttps://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to \u003ca href=\"https://github.com/rameshvarun\"\u003e\u003ccode\u003e@​rameshvarun\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Xeonacid\"\u003e\u003ccode\u003e@​Xeonacid\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/pdepetro\"\u003e\u003ccode\u003e@​pdepetro\u003c/code\u003e\u003c/a\u003e for the commits\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7ac3d1f2c65ccf6b2e62a762863093f0242179f0\"\u003e\u003ccode\u003e7ac3d1f\u003c/code\u003e\u003c/a\u003e Try 6 on this file (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1995\"\u003e#1995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/e1646137a8346292a528b2899c7c8a8fe8d60224\"\u003e\u003ccode\u003ee164613\u003c/code\u003e\u003c/a\u003e O365 new advice (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1994\"\u003e#1994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/4cbf8b1ce99a856b032470c19c3261195e137ca2\"\u003e\u003ccode\u003e4cbf8b1\u003c/code\u003e\u003c/a\u003e Try another suppression (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1993\"\u003e#1993\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea9fcaeb59482ad97c51cbe584247f30a0c7ae2d\"\u003e\u003ccode\u003eea9fcae\u003c/code\u003e\u003c/a\u003e Try a different way to suppress binskim problems (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1992\"\u003e#1992\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/ea2746aafcd830a96a2144c3f636ba587f90a15d\"\u003e\u003ccode\u003eea2746a\u003c/code\u003e\u003c/a\u003e Add LTCG flags to compile_windows.bat for BinSkim BA6006 compliance (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1991\"\u003e#1991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/7dbc2292b1a23e5ae80db67a1b25f002bd104776\"\u003e\u003ccode\u003e7dbc229\u003c/code\u003e\u003c/a\u003e Added devcontainer specification (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1989\"\u003e#1989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/bb450fc27202cdf0676343dc0150be962b627233\"\u003e\u003ccode\u003ebb450fc\u003c/code\u003e\u003c/a\u003e Fix: Treat \u003cstrong\u003eannotate\u003c/strong\u003e functions as library code in Python 3.14+ (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1988\"\u003e#1988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/1bbecdf366016c58e62a076b46d4f3c00aea097f\"\u003e\u003ccode\u003e1bbecdf\u003c/code\u003e\u003c/a\u003e Better experience for unsupported arch (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1984\"\u003e#1984\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/microsoft/debugpy/commit/c7e86a1954381ceadb2ea398fc60079deef91358\"\u003e\u003ccode\u003ec7e86a1\u003c/code\u003e\u003c/a\u003e Use sys.remote_exec() to attach to pid, if available (\u003ca href=\"https://redirect.github.com/microsoft/debugpy/issues/1986\"\u003e#1986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/microsoft/debugpy/compare/v1.8.19...v1.8.20\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `greenlet` from 3.3.0 to 3.3.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-greenlet/greenlet/blob/master/CHANGES.rst\"\u003egreenlet's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e3.3.2 (2026-02-20)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eFix a crash on Python 3.10 if there are active greenlets during\ninterpreter shutdown. See \u003ccode\u003ePR 495 \u0026lt;https://github.com/python-greenlet/greenlet/pull/495\u0026gt;\u003c/code\u003e_ by Nicolas\nBouvrette.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003e3.3.1 (2026-01-23)\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePublish Windows ARM binary wheels, where available.\u003c/li\u003e\n\u003cli\u003eFix compilation for 3.14t on Windows.\u003c/li\u003e\n\u003cli\u003ePublish Windows 3.14t binary wheels for Intel.\u003c/li\u003e\n\u003cli\u003eSwitch from Appveyor for Windows to Github Actions.\u003c/li\u003e\n\u003cli\u003eFix compilation on MIPS with GCC 15 and binutils 2.45. See \u003ccode\u003ePR 487 by Rosen Penev \u0026lt;https://github.com/python-greenlet/greenlet/pull/487\u0026gt;\u003c/code\u003e_. Note that\nthis is not a platform tested by this project's CI.\u003c/li\u003e\n\u003cli\u003eMove most project metadata into the static \u003ccode\u003epyproject.toml\u003c/code\u003e file.\nThis updates licensing information to use the modern\n\u003ccode\u003eLicense-Expression\u003c/code\u003e field. See \u003ccode\u003ePR 480 by mrbean-bremen \u0026lt;https://github.com/python-greenlet/greenlet/pull/480/\u0026gt;\u003c/code\u003e_.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/a62f331fd74d0d17ab64b509ad9fb685d5cfeaec\"\u003e\u003ccode\u003ea62f331\u003c/code\u003e\u003c/a\u003e Preparing release 3.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/c73a2c6d055b8328e204b9b0b7597d3c92b3ad18\"\u003e\u003ccode\u003ec73a2c6\u003c/code\u003e\u003c/a\u003e Pull in change note for 3.2.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/4eb47c89d1936f15055119f3452e2a92cfb77653\"\u003e\u003ccode\u003e4eb47c8\u003c/code\u003e\u003c/a\u003e test_untracked_memory_doesnt_increase_unfinished_thread_dealloc_in_main: A ch...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/53ac405e7ea428dce99317765dd7ef3e68d59f60\"\u003e\u003ccode\u003e53ac405\u003c/code\u003e\u003c/a\u003e Add change note for \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/495\"\u003e#495\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d5b85158f65488e54f6c63bc8aa0ea4a8c0b7094\"\u003e\u003ccode\u003ed5b8515\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/495\"\u003e#495\u003c/a\u003e from nbouvrette/fix/safe-finalization-py310\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/e0625d78d3b4dc76756fb6a506a02ef6a98b6fb3\"\u003e\u003ccode\u003ee0625d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/494\"\u003e#494\u003c/a\u003e from daniel7an/fix/issue-492-spdx-license\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/292e126fb3ee3bf4a639100d5791fd76dc560eeb\"\u003e\u003ccode\u003e292e126\u003c/code\u003e\u003c/a\u003e Fix SIGSEGV/SIGABRT during interpreter shutdown on Python \u0026lt; 3.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/77e65f089aae346e363dc2fa7bd78e00f83104a5\"\u003e\u003ccode\u003e77e65f0\u003c/code\u003e\u003c/a\u003e Fix SPDX license identifier: Python-2.0 → PSF-2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/d4606efcf80c7fc81473cb173b9d6745572de090\"\u003e\u003ccode\u003ed4606ef\u003c/code\u003e\u003c/a\u003e leak tests: do a better job skipping if uss isn't available. Fixes \u003ca href=\"https://redirect.github.com/python-greenlet/greenlet/issues/485\"\u003e#485\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-greenlet/greenlet/commit/74a11b86b495d35b60967565319c36e648dfd7e5\"\u003e\u003ccode\u003e74a11b8\u003c/code\u003e\u003c/a\u003e Back to development: 3.3.2\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-greenlet/greenlet/compare/3.3.0...3.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `poethepoet` from 0.40.0 to 0.42.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nat-n/poethepoet/releases\"\u003epoethepoet's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.1\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd exact option for uv executor by \u003ca href=\"https://github.com/charlesbmi\"\u003e\u003ccode\u003e@​charlesbmi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/365\"\u003enat-n/poethepoet#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCompletion script fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIsolate zsh completion task options from global options by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/364\"\u003enat-n/poethepoet#364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix completion script edge case handling by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/366\"\u003enat-n/poethepoet#366\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the completion script fixes\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charlesbmi\"\u003e\u003ccode\u003e@​charlesbmi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/365\"\u003enat-n/poethepoet#365\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.42.0...v0.42.1\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.42.0...v0.42.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.42.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBetter zsh completion caaching with max hits per cache and proper TTL before refresh by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/360\"\u003enat-n/poethepoet#360\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOfficially Support Python 3.14 by \u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd completion script for PowerShell by \u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the enhancements for zsh or PowerShell\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gruebel\"\u003e\u003ccode\u003e@​gruebel\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/362\"\u003enat-n/poethepoet#362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/NSPC911\"\u003e\u003ccode\u003e@​NSPC911\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/358\"\u003enat-n/poethepoet#358\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.41.0...v0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e0.41.0\u003c/h2\u003e\n\u003ch2\u003eEnhancements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFull shell completions for global and task arguments in zsh and bash by \u003ca href=\"https://github.com/nat-n\"\u003e\u003ccode\u003e@​nat-n\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/nat-n/poethepoet/pull/355\"\u003enat-n/poethepoet#355\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/nat-n/poethepoet/compare/v0.40.0...v0.41.0\"\u003ehttps://github.com/nat-n/poethepoet/compare/v0.40.0...v0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!IMPORTANT]\nYou must follow \u003ca href=\"https://poethepoet.natn.io/installation.html#enable-tab-completion-for-your-shell\"\u003ethe instructions to (re)install the completion script for your preferred shell environment\u003c/a\u003e to benefit from the revamped tab completion covering task arguments.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/49792724526b9e740f3c76a6ece2e1039d76b8ea\"\u003e\u003ccode\u003e4979272\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/1f40807b1791d5a71d0952eb0ad0da70cea4cfc2\"\u003e\u003ccode\u003e1f40807\u003c/code\u003e\u003c/a\u003e fix: completion script edge case handling (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/366\"\u003e#366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/c67a8586791f2bbcb7d9f85f024f1b77d949734e\"\u003e\u003ccode\u003ec67a858\u003c/code\u003e\u003c/a\u003e feat(uv): add exact option for uv executor (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/365\"\u003e#365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/8f4d5c4c4735645275ccbe367bb56ab728c5b4ee\"\u003e\u003ccode\u003e8f4d5c4\u003c/code\u003e\u003c/a\u003e fix: isolate zsh completion task options from global options (\u003ca href=\"https://redirect.github.com/nat-n/poethepoet/issues/364\"\u003e#364\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethepoet/commit/b1589da0a5f00f5a2a4d2deef1dbdf368d4e0697\"\u003e\u003ccode\u003eb1589da\u003c/code\u003e\u003c/a\u003e Bump version to 0.42.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nat-n/poethe...\n\n_Description has been truncated_","html_url":"https://github.com/donvargax/adk-ddd/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/donvargax%2Fadk-ddd/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"3.13.0","new_version":"3.14.0","update_type":"minor","path":null,"pr_created_at":"2026-03-16T18:17:22.000Z","version_change":"3.13.0 → 3.14.0","issue":{"uuid":"4084043450","node_id":"PR_kwDOJKSTjM7LAG4-","number":12441,"state":"open","title":"chore(libs/deps): bump the production-dependencies group across 1 directory with 6 updates","user":"dependabot[bot]","labels":["size/l","dependencies","python"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-16T18:17:22.000Z","updated_at":"2026-03-24T01:56:41.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(libs/deps): bump","group_name":"production-dependencies","update_count":6,"packages":[{"name":"fastapi","old_version":"0.128.7","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.28.0","new_version":"2.28.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"[//]: # (dependabot-start)\n⚠️  **Dependabot is rebasing this PR** ⚠️ \n\nRebasing might not happen immediately, so don't worry if this takes some time.\n\nNote: if you make any changes to this PR yourself, they will take precedence over the rebase.\n\n---\n\n[//]: # (dependabot-end)\n\nBumps the production-dependencies group with 6 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.7` | `0.135.1` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.28.0` | `2.28.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.42.0` |\n\n\nUpdates `fastapi` from 0.128.7 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.7...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.11.0 to 2.12.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.12.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd typing_extensions dependency for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1151\"\u003ejpadilla/pyjwt#1151\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e2.12.0\u003c/h2\u003e\n\u003ch2\u003eSecurity\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\"\u003eGHSA-752w-5fwx-jx9f\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1132\"\u003ejpadilla/pyjwt#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(docs): fix docs build by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1134\"\u003ejpadilla/pyjwt#1134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: close HTTPError to prevent ResourceWarning on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: remove superfluous constants by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1136\"\u003ejpadilla/pyjwt#1136\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1135\"\u003ejpadilla/pyjwt#1135\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore(tests): enable mypy by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1138\"\u003ejpadilla/pyjwt#1138\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 7 to 8 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1142\"\u003ejpadilla/pyjwt#1142\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1141\"\u003ejpadilla/pyjwt#1141\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1145\"\u003ejpadilla/pyjwt#1145\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: do not store reference to algorithms dict on PyJWK by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1143\"\u003ejpadilla/pyjwt#1143\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm by \u003ca href=\"https://github.com/jpadilla\"\u003e\u003ccode\u003e@​jpadilla\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1148\"\u003ejpadilla/pyjwt#1148\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1137\"\u003ejpadilla/pyjwt#1137\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1133\"\u003ejpadilla/pyjwt#1133\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\"\u003ehttps://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.12.1 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.12.0...2.12.1\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Add missing ``typing_extensions`` dependency for Python \u0026lt; 3.11 in `[#1150](https://github.com/jpadilla/pyjwt/issues/1150) \u0026lt;https://github.com/jpadilla/pyjwt/issues/1150\u0026gt;`__\n\u003ch2\u003e\u003ccode\u003ev2.12.0 \u0026amp;lt;https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.0\u0026amp;gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAnnotate PyJWKSet.keys for pyright by \u003ca href=\"https://github.com/tamird\"\u003e\u003ccode\u003e@​tamird\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1134](https://github.com/jpadilla/pyjwt/issues/1134) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1134\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eClose \u003ccode\u003eHTTPError\u003c/code\u003e response to prevent \u003ccode\u003eResourceWarning\u003c/code\u003e on Python 3.14 by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1133](https://github.com/jpadilla/pyjwt/issues/1133) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1133\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDo not keep \u003ccode\u003ealgorithms\u003c/code\u003e dict in PyJWK instances by \u003ca href=\"https://github.com/akx\"\u003e\u003ccode\u003e@​akx\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1143](https://github.com/jpadilla/pyjwt/issues/1143) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1143\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eValidate the crit (Critical) Header Parameter defined in RFC 7515 §4.1.11. by \u003ca href=\"https://github.com/dmbs335\"\u003e\u003ccode\u003e@​dmbs335\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003eGHSA-752w-5fwx-jx9f \u0026lt;https://github.com/jpadilla/pyjwt/security/advisories/GHSA-752w-5fwx-jx9f\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eUse PyJWK algorithm when encoding without explicit algorithm in \u003ccode\u003e[#1148](https://github.com/jpadilla/pyjwt/issues/1148) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1148\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eAdded\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Docs: Add ``PyJWKClient`` API reference and document the two-tier caching system (JWK Set cache and signing key LRU cache).\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a4e1a3d1218b01c5806420b8f16d9308ac4adc30\"\u003e\u003ccode\u003ea4e1a3d\u003c/code\u003e\u003c/a\u003e Add typing_extensions dependency for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1151\"\u003e#1151\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/bd9700cca7f9258fadcc429c1034e508025931f2\"\u003e\u003ccode\u003ebd9700c\u003c/code\u003e\u003c/a\u003e Use PyJWK algorithm when encoding without explicit algorithm (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1148\"\u003e#1148\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/051ea341b5573fe3edcd53042f347929b92c2b92\"\u003e\u003ccode\u003e051ea34\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1451d70eca2059bc472703692f0bb0777bc0fe93\"\u003e\u003ccode\u003e1451d70\u003c/code\u003e\u003c/a\u003e fix: do not store reference to algorithms dict on PyJWK (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/f3ba74c106df9ce10e272dfaad96acb4ab3ef5a5\"\u003e\u003ccode\u003ef3ba74c\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1145\"\u003e#1145\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/0318ffa7b156b01600376e38952bf961382e0724\"\u003e\u003ccode\u003e0318ffa\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1141\"\u003e#1141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/a52753db3c1075ac01337fa8b7cc92b13a19ac09\"\u003e\u003ccode\u003ea52753d\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7 to 8 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1142\"\u003e#1142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/b85050f1d444c6828bb4618ee764443b0a3f5d18\"\u003e\u003ccode\u003eb85050f\u003c/code\u003e\u003c/a\u003e chore(tests): enable mypy (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1138\"\u003e#1138\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/1272b264779717cc481c8341f321a7fc8b3aaba6\"\u003e\u003ccode\u003e1272b26\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1135\"\u003e#1135\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/99a87287c26cb97c94399084ee4186ee52207a7f\"\u003e\u003ccode\u003e99a8728\u003c/code\u003e\u003c/a\u003e chore: remove superfluous constants (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1136\"\u003e#1136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.11.0...2.12.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.28.0 to 2.28.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.28.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.1...v2.28.2\"\u003e2.28.2\u003c/a\u003e (2026-03-13)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e32843cf\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.1\"\u003e2.28.1\u003c/a\u003e (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e08bdf38\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e51b86be\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003epostgrest:\u003c/strong\u003e remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e81041a4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/30188494ea44ce67b51d9566095ec11c90e7522d\"\u003e\u003ccode\u003e3018849\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1416\"\u003e#1416\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/32843cf8346529e2b7fbcec9d0e787424b70e55c\"\u003e\u003ccode\u003e32843cf\u003c/code\u003e\u003c/a\u003e fix(auth): fix admin list factors payload format. (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/8584419cbfac152a16e601e9cd724af04da6c24f\"\u003e\u003ccode\u003e8584419\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1411\"\u003e#1411\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81041a4289b449e534ab46cc9cb54a08b6b7fa4f\"\u003e\u003ccode\u003e81041a4\u003c/code\u003e\u003c/a\u003e fix(postgrest): remove check against message field in data payload (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1413\"\u003e#1413\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/08bdf38198680ec25f85ded68dc358c75ddf6fd3\"\u003e\u003ccode\u003e08bdf38\u003c/code\u003e\u003c/a\u003e fix(auth): prevent OverflowError in auto-refresh token retry (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1397\"\u003e#1397\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1400\"\u003e#1400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/51b86becfe1a51addd59cc3f8e24e891bfd5eb4a\"\u003e\u003ccode\u003e51b86be\u003c/code\u003e\u003c/a\u003e fix(postgrest): comment out ssl error test (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1410\"\u003e#1410\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c77b21a45d4fb93015554e87bcc627d58309d668\"\u003e\u003ccode\u003ec77b21a\u003c/code\u003e\u003c/a\u003e chore(deps): bump cryptography from 46.0.2 to 46.0.5 in the uv group across 1...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.28.0...v2.28.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.42.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.42.0\u003c/h2\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2825\"\u003eKludex/uvicorn#2825\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.41.0...0.42.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.42.0 (March 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse \u003ccode\u003ebytearray\u003c/code\u003e for request body accumulation to avoid O(n^2) allocation on fragmented bodies (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEscape brackets and backslash in httptools \u003ccode\u003eHEADER_RE\u003c/code\u003e regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix multiple issues in websockets sans-io implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/02bed6f8c38e74f684bb0e572977a9bfdc1f6fea\"\u003e\u003ccode\u003e02bed6f\u003c/code\u003e\u003c/a\u003e Version 0.42.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2852\"\u003e#2852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d8f25013161d8206e129e39bf48432d3a85e1744\"\u003e\u003ccode\u003ed8f2501\u003c/code\u003e\u003c/a\u003e chore: pre-create Config objects in benchmarks to measure protocol hot paths ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9dbb7836bb0fdb446d083ecd8dc5a2a95bb96b98\"\u003e\u003ccode\u003e9dbb783\u003c/code\u003e\u003c/a\u003e Add WebSocket protocol benchmarks for wsproto and websockets-sansio (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2849\"\u003e#2849\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/b3c69da8c1a36e1834e614abe38243671e156077\"\u003e\u003ccode\u003eb3c69da\u003c/code\u003e\u003c/a\u003e Use bytearray for request body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2845\"\u003e#2845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/3f3ebee20f46504a3f7279dd72f9c24ce9070b11\"\u003e\u003ccode\u003e3f3ebee\u003c/code\u003e\u003c/a\u003e Disable \u003ccode\u003epytest-xdist\u003c/code\u003e for CodSpeed benchmark runs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2847\"\u003e#2847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/d072de754f825bee4710363dd49d41efd5285dcc\"\u003e\u003ccode\u003ed072de7\u003c/code\u003e\u003c/a\u003e Add fragmented body benchmark for chunked body accumulation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2846\"\u003e#2846\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e300c2c75d71bea6f8d1799ca6f182f1e5583aaa\"\u003e\u003ccode\u003ee300c2c\u003c/code\u003e\u003c/a\u003e Add CodSpeed benchmark suite for HTTP protocol hot paths (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2844\"\u003e#2844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1fa697651bacf10d72f74de104ead814ce6fcdc0\"\u003e\u003ccode\u003e1fa6976\u003c/code\u003e\u003c/a\u003e Escape brackets and backslash in httptools HEADER_RE regex (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2824\"\u003e#2824\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/59ec1de7a4f07afbd139812f033f3af8b784de74\"\u003e\u003ccode\u003e59ec1de\u003c/code\u003e\u003c/a\u003e Fix multiple issues in websockets sansio implementation (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2825\"\u003e#2825\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2fc0efcdd958abd3adbe6ea19682408d6b2e1b18\"\u003e\u003ccode\u003e2fc0efc\u003c/code\u003e\u003c/a\u003e Clarify Windows asyncio event loop selection in docs (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2843\"\u003e#2843\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.42.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/Significant-Gravitas/AutoGPT/pull/12441","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Significant-Gravitas%2FAutoGPT/issues/12441","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/12441/packages"}},{"old_version":"3.13.0","new_version":"3.14.0","update_type":"minor","path":null,"pr_created_at":"2026-03-09T10:12:33.000Z","version_change":"3.13.0 → 3.14.0","issue":{"uuid":"4044667682","node_id":"PR_kwDOPCK6hs7JBoRT","number":115,"state":"closed","title":"build(deps): bump the production-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies","size/l","python","platform/backend"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-20T10:59:28.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-09T10:12:33.000Z","updated_at":"2026-04-20T10:59:30.000Z","time_to_close":3631615,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps): bump","group_name":"production-dependencies","update_count":7,"packages":[{"name":"google-cloud-logging","old_version":"3.13.0","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pydantic-settings","old_version":"2.12.0","new_version":"2.13.1","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.27.2","new_version":"2.28.0","repository_url":"https://github.com/supabase/supabase-py"},{"name":"launchdarkly-server-sdk","old_version":"9.14.1","new_version":"9.15.0","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.40.0","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 7 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.13.0` | `3.14.0` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.12.0` | `2.13.1` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.27.2` | `2.28.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.14.1` | `9.15.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.40.0` | `0.41.0` |\n\n\nUpdates `google-cloud-logging` from 3.13.0 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.12.0 to 2.13.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: Deterministic alias selection when using validate_by_name by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/707\"\u003epydantic/pydantic-settings#707\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd deep merge functionality to config file sources by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for AWS Secrets Manager VersionId parameter by \u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebugfix: Return \u003ccode\u003eNone\u003c/code\u003e for inaccessible GCP Secret Manager secrets by \u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix for cli_kebab_case=\u0026quot;all\u0026quot; and CliImplicitFlag[bool] by \u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnpack type alisases when looking for \u003ccode\u003eNoDecode\u003c/code\u003e by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/695\"\u003epydantic/pydantic-settings#695\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCliToggleFlag and CliDualFlag by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/717\"\u003epydantic/pydantic-settings#717\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix for CLI duplicate enum field values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/722\"\u003epydantic/pydantic-settings#722\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixed load nested config from env by \u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd non-Path files support (for example Traversable) and open files using Path.open method by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eadd one more traversable test by \u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/725\"\u003epydantic/pydantic-settings#725\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI fix fox external list args. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/727\"\u003epydantic/pydantic-settings#727\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: handle case-insensitive retrieval in GoogleSecretManagerSettingsSource by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/730\"\u003epydantic/pydantic-settings#730\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI test fixes for help text formatting. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/735\"\u003epydantic/pydantic-settings#735\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid conflicts with the \u003ccode\u003eNAME\u003c/code\u003e environment variable in WSL by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: When restoring init kwargs, use deterministic order by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/746\"\u003epydantic/pydantic-settings#746\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd env_prefix_target by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/749\"\u003epydantic/pydantic-settings#749\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e(default: …)\u003c/code\u003e in the help message for \u003ccode\u003eCliToggleFlag\u003c/code\u003e by \u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/740\"\u003epydantic/pydantic-settings#740\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for CLI serialize styles. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/755\"\u003epydantic/pydantic-settings#755\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for overriding default help on CLI internal parser. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/758\"\u003epydantic/pydantic-settings#758\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI format_help method support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/759\"\u003epydantic/pydantic-settings#759\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat(gcp): support SecretVersion annotation for per-field secret versioning by \u003ca href=\"https://github.com/ezwiefel\"\u003e\u003ccode\u003e@​ezwiefel\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/763\"\u003epydantic/pydantic-settings#763\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003esnake_case_conversion\u003c/code\u003e with \u003ccode\u003eenv_prefix\u003c/code\u003e for Azure Key Vault source by \u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: Only override preferred_key when no value was found by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/767\"\u003epydantic/pydantic-settings#767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/768\"\u003epydantic/pydantic-settings#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI coerce numeric types. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/769\"\u003epydantic/pydantic-settings#769\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Union Discriminator Choices in Help by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/764\"\u003epydantic/pydantic-settings#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) by \u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.13.0 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/777\"\u003epydantic/pydantic-settings#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/698\"\u003epydantic/pydantic-settings#698\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jcyamacho\"\u003e\u003ccode\u003e@​jcyamacho\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/708\"\u003epydantic/pydantic-settings#708\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zaphod72\"\u003e\u003ccode\u003e@​zaphod72\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/712\"\u003epydantic/pydantic-settings#712\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Digity101\"\u003e\u003ccode\u003e@​Digity101\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/702\"\u003epydantic/pydantic-settings#702\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sube-py\"\u003e\u003ccode\u003e@​Sube-py\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/723\"\u003epydantic/pydantic-settings#723\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mahenzon\"\u003e\u003ccode\u003e@​mahenzon\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/724\"\u003epydantic/pydantic-settings#724\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kzrnm\"\u003e\u003ccode\u003e@​kzrnm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/747\"\u003epydantic/pydantic-settings#747\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cstarkers\"\u003e\u003ccode\u003e@​cstarkers\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/762\"\u003epydantic/pydantic-settings#762\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hugo-romero-mm\"\u003e\u003ccode\u003e@​hugo-romero-mm\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/773\"\u003epydantic/pydantic-settings#773\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/e87d12df0f42f7f72a3eb6d830cfbfb1d68b4496\"\u003e\u003ccode\u003ee87d12d\u003c/code\u003e\u003c/a\u003e v2.13.1 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/790\"\u003e#790\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/acf8c14f5ec314799f5bd0d3f6a1591c4ed2ec97\"\u003e\u003ccode\u003eacf8c14\u003c/code\u003e\u003c/a\u003e Fix JSON decoding for parameterized PEP 695 type aliases (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/780\"\u003e#780\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/58b236a36473e01bfe42e5f75d39d46721e0593d\"\u003e\u003ccode\u003e58b236a\u003c/code\u003e\u003c/a\u003e Fix AttributeError with nested env vars for dict fields (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/785\"\u003e#785\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/786\"\u003e#786\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4933f06402ed55e32bcdcefd6c8f59ffe1fefd24\"\u003e\u003ccode\u003e4933f06\u003c/code\u003e\u003c/a\u003e Fix CLI parsing error for set field types since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/787\"\u003e#787\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/788\"\u003e#788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/bd0ebe6215cf215d716e33d833cc2589a1d00a17\"\u003e\u003ccode\u003ebd0ebe6\u003c/code\u003e\u003c/a\u003e Fix RecursionError with self-referential models in CliApp (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/783\"\u003e#783\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/eb7840e9f59a7969b23afdbcc4e5081e037736d8\"\u003e\u003ccode\u003eeb7840e\u003c/code\u003e\u003c/a\u003e Fix regression for bool fields since 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/784\"\u003e#784\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/198e71cf0cd570501535de7ae93a70953150f073\"\u003e\u003ccode\u003e198e71c\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.0 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/777\"\u003e#777\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/de71e84057b63b251ec84883b5e2ae886f82084f\"\u003e\u003ccode\u003ede71e84\u003c/code\u003e\u003c/a\u003e Add nested path support for yaml_config_section (fixes \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/772\"\u003e#772\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/773\"\u003e#773\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/0f8f951b89b137bd563ce74dac016ba2c4cdc7a2\"\u003e\u003ccode\u003e0f8f951\u003c/code\u003e\u003c/a\u003e CLI Union Discriminator Choices in Help (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/764\"\u003e#764\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/ce9804c4620d38f0c3b3c1e3ebe10d934fd4ba2e\"\u003e\u003ccode\u003ece9804c\u003c/code\u003e\u003c/a\u003e CLI coerce numeric types. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/769\"\u003e#769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.12.0...v2.13.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.27.2 to 2.28.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.28.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.3...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e259f4ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add missing is_sso_user, deleted_at, banned_until to User model (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1375\"\u003e#1375\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e7f84a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e0923314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use pop with default in _handle_message to prevent KeyError (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1388\"\u003e#1388\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003ebaea26f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage3:\u003c/strong\u003e replace print() with warnings.warn() for trailing slash notice (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1380\"\u003e#1380\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e50b099f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.3...v2.28.0\"\u003e2.28.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e259f4ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add missing is_sso_user, deleted_at, banned_until to User model (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1375\"\u003e#1375\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e7f84a62\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e0923314\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use pop with default in _handle_message to prevent KeyError (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1388\"\u003e#1388\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003ebaea26f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage3:\u003c/strong\u003e replace print() with warnings.warn() for trailing slash notice (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1380\"\u003e#1380\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e50b099f\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/59e338400b4455b81ce7aebc2a8d35c13f1dec0c\"\u003e\u003ccode\u003e59e3384\u003c/code\u003e\u003c/a\u003e chore(main): release 2.28.0 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1378\"\u003e#1378\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/baea26f7ce7f0572b4e96caaf27add29127349fe\"\u003e\u003ccode\u003ebaea26f\u003c/code\u003e\u003c/a\u003e fix(realtime): use pop with default in _handle_message to prevent KeyError (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/259f4ad42d4022eed2c44e0e9a316271cfccbde4\"\u003e\u003ccode\u003e259f4ad\u003c/code\u003e\u003c/a\u003e feat(storage): add list_v2 method to file_api client (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1377\"\u003e#1377\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/50b099fa06efa643d1d43830e4497e21972e46bc\"\u003e\u003ccode\u003e50b099f\u003c/code\u003e\u003c/a\u003e fix(storage3): replace print() with warnings.warn() for trailing slash notice...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/09233140397e7921ab054dbf4d88d1899d30c244\"\u003e\u003ccode\u003e0923314\u003c/code\u003e\u003c/a\u003e fix(realtime): ensure remove_channel removes channel from channels dict (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1373\"\u003e#1373\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/7f84a629968b9269f233e75e28f973c1cae530d6\"\u003e\u003ccode\u003e7f84a62\u003c/code\u003e\u003c/a\u003e fix(auth): add missing is_sso_user, deleted_at, banned_until to User model (#...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/57dd6e21958358a2373520aeb7fb20812dcd5c9b\"\u003e\u003ccode\u003e57dd6e2\u003c/code\u003e\u003c/a\u003e chore(deps): bump the uv group across 1 directory with 3 updates (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1369\"\u003e#1369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c357def6703b969bca47626a9f297058c3c2dd2a\"\u003e\u003ccode\u003ec357def\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.3 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1368\"\u003e#1368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e\u003ccode\u003e4267ff1\u003c/code\u003e\u003c/a\u003e fix: ensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003e\u003ccode\u003ecc72ed7\u003c/code\u003e\u003c/a\u003e fix: deprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.14.1 to 9.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.15.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003e9.15.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/393\"\u003e#393\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5b761bd306e1e6973b59cea3f7657463de0204d1\"\u003e5b761bd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e5dc4f81\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd context manager for clearer, safer locks (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/beca0fa4985f385cb3328408528e14696ec7c70f\"\u003ebeca0fa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddress potential race condition in FeatureStore update_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/391\"\u003e#391\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/31cf4875c35f08177105a16f65140acabe93d3da\"\u003e31cf487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003ed78079e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003ee471ccc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003eda565a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedis store is considered initialized when \u003ccode\u003e$inited\u003c/code\u003e key is written (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop FeatureStoreClientWrapper poller on close (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/397\"\u003e#397\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/468afdfef32f74f7cc82cb61f01f5674054da9db\"\u003e468afdf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003ec73ad14\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003ecbfc3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Redis to write missing \u003ccode\u003e$inited\u003c/code\u003e key (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003e9.15.0\u003c/a\u003e (2026-02-10)\u003c/h2\u003e\n\u003ch3\u003e⚠ BREAKING CHANGES\u003c/h3\u003e\n\u003cp\u003e\u003cstrong\u003eNote:\u003c/strong\u003e The following breaking changes apply only to FDv2 (Flag Delivery v2) early access features, which are not subject to semantic versioning and may change without a major version bump.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e5dc4f81\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eChangeSetBuilder.finish()\u003c/code\u003e method now requires a \u003ccode\u003eSelector\u003c/code\u003e parameter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003eUpdate DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003ec73ad14\u003c/a\u003e)\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003eDataSystemConfig.synchronizers\u003c/code\u003e field now accepts a list of synchronizers, and the \u003ccode\u003eConfigBuilder.synchronizers()\u003c/code\u003e method accepts variadic arguments.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for python 3.9 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/393\"\u003e#393\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5b761bd306e1e6973b59cea3f7657463de0204d1\"\u003e5b761bd\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd context manager for clearer, safer locks (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/396\"\u003e#396\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/beca0fa4985f385cb3328408528e14696ec7c70f\"\u003ebeca0fa\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAddress potential race condition in FeatureStore update_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/391\"\u003e#391\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/31cf4875c35f08177105a16f65140acabe93d3da\"\u003e31cf487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003ed78079e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003ee471ccc\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003eda565a2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRedis store is considered initialized when \u003ccode\u003e$inited\u003c/code\u003e key is written (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop FeatureStoreClientWrapper poller on close (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/397\"\u003e#397\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/468afdfef32f74f7cc82cb61f01f5674054da9db\"\u003e468afdf\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003ecbfc3dd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Redis to write missing \u003ccode\u003e$inited\u003c/code\u003e key (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003ee99a27d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e542f737a69e29c168a6d5a5877074aba6ce3353\"\u003e\u003ccode\u003ee542f73\u003c/code\u003e\u003c/a\u003e chore(main): release 9.15.0 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/394\"\u003e#394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e471ccc3d5f4c37452d8a2ebba58248ca0a155dd\"\u003e\u003ccode\u003ee471ccc\u003c/code\u003e\u003c/a\u003e fix: Mark copy_with_new_sdk_key method as deprecated (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/353\"\u003e#353\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5dc4f81688e814045373edb244e0420fa572d922\"\u003e\u003ccode\u003e5dc4f81\u003c/code\u003e\u003c/a\u003e feat: Update ChangeSet to always require a Selector (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/405\"\u003e#405\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/f20fffeb1e2990dacada5cfdb51bf17626252448\"\u003e\u003ccode\u003ef20fffe\u003c/code\u003e\u003c/a\u003e chore: Remove dead code, clarify names, other cleanup (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/398\"\u003e#398\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/c73ad14090ef1378af1bfbe626a74eb369e3cac8\"\u003e\u003ccode\u003ec73ad14\u003c/code\u003e\u003c/a\u003e fix: Update DataSystemConfig to accept list of synchronizers (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/404\"\u003e#404\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/d78079e7f340690c17f39ef73dd9a45e6f365fd7\"\u003e\u003ccode\u003ed78079e\u003c/code\u003e\u003c/a\u003e fix: Allow modifying fdv2 data source options independent of main config (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/403\"\u003e#403\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e99a27d48f1fc2bd81b1791fd57cb1a8ab754569\"\u003e\u003ccode\u003ee99a27d\u003c/code\u003e\u003c/a\u003e chore: Support persistent data store verification in contract tests (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/402\"\u003e#402\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/cbfc3dd8876eae9ffa352ec12a1131a64110c08a\"\u003e\u003ccode\u003ecbfc3dd\u003c/code\u003e\u003c/a\u003e fix: Update reason documentation with inExperiment value (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/401\"\u003e#401\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/5a1adbb2de85bc31d5bd337ac773cc7f6e4b4cfa\"\u003e\u003ccode\u003e5a1adbb\u003c/code\u003e\u003c/a\u003e chore: Update sdk_metadata features (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/400\"\u003e#400\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/da565a2dce67fc386396686dd2017819e2c4edfb\"\u003e\u003ccode\u003eda565a2\u003c/code\u003e\u003c/a\u003e fix: Prevent immediate polling on recoverable error (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/399\"\u003e#399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.1...9.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.128.0 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.40.0 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/co...\n\n_Description has been truncated_","html_url":"https://github.com/Musab1khan/AutoGPT/pull/115","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Musab1khan%2FAutoGPT/issues/115","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/115/packages"}},{"old_version":"3.12.1","new_version":"3.14.0","update_type":"minor","path":"/python/agents/short-movie-agents","pr_created_at":"2026-03-09T05:13:59.000Z","version_change":"3.12.1 → 3.14.0","issue":{"uuid":"4043403341","node_id":"PR_kwDORiAyHc7I9eC6","number":14,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T05:13:59.000Z","updated_at":"2026-04-13T02:28:07.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.26.0` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type ch...\n\n_Description has been truncated_","html_url":"https://github.com/nakedeyent-art/adk/pull/14","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nakedeyent-art%2Fadk/issues/14","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/14/packages"}},{"old_version":"3.12.1","new_version":"3.14.0","update_type":"minor","path":null,"pr_created_at":"2026-03-09T02:36:51.000Z","version_change":"3.12.1 → 3.14.0","issue":{"uuid":"4042968925","node_id":"PR_kwDORdKHYs7I8E8p","number":24,"state":"open","title":"chore(deps): bump the all-dependencies group across 1 directory with 9 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T02:36:51.000Z","updated_at":"2026-03-09T02:36:52.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":9,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.39.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.5","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"codespell","old_version":"2.4.1","new_version":"2.4.2","repository_url":"https://github.com/codespell-project/codespell"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":null,"ecosystem":"pip"},"body":"Bumps the all-dependencies group with 9 updates in the /python/agents/image-scoring directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.18.0` | `1.26.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) | `0.20.4` | `0.39.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.15.5` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [codespell](https://github.com/codespell-project/codespell) | `2.4.1` | `2.4.2` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\n\nUpdates `google-adk` from 1.18.0 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: allow clearing secrets from deployed Agent Engine by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/836\"\u003eGoogleCloudPlatform/agent-starter-pack#836\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Looker Studio Dashboard instructions by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/789\"\u003eGoogleCloudPlatform/agent-starter-pack#789\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify ADK skills reference in guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/850\"\u003eGoogleCloudPlatform/agent-starter-pack#850\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate introduction video date in README by \u003ca href=\"https://github.com/DracoBlue\"\u003e\u003ccode\u003e@​DracoBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/845\"\u003eGoogleCloudPlatform/agent-starter-pack#845\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add GKE as deployment target by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/833\"\u003eGoogleCloudPlatform/agent-starter-pack#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/854\"\u003eGoogleCloudPlatform/agent-starter-pack#854\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: gke e2e test issues by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/859\"\u003eGoogleCloudPlatform/agent-starter-pack#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: default prototype mode to deployment_target='none' by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/855\"\u003eGoogleCloudPlatform/agent-starter-pack#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: redesign CLI welcome banner with ASP logo by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/860\"\u003eGoogleCloudPlatform/agent-starter-pack#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/861\"\u003eGoogleCloudPlatform/agent-starter-pack#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: more gke e2e issues by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/862\"\u003eGoogleCloudPlatform/agent-starter-pack#862\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: broaden E2E test coverage on release commits by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/863\"\u003eGoogleCloudPlatform/agent-starter-pack#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.39.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/864\"\u003eGoogleCloudPlatform/agent-starter-pack#864\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/DracoBlue\"\u003e\u003ccode\u003e@​DracoBlue\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/845\"\u003eGoogleCloudPlatform/agent-starter-pack#845\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.38.0...v0.39.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.38.0...v0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump fast-xml-parser from 5.3.5 to 5.3.6 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/818\"\u003eGoogleCloudPlatform/agent-starter-pack#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use gemini-3-flash-preview as eval judge model by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/820\"\u003eGoogleCloudPlatform/agent-starter-pack#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve enhance command with bug fixes and UX improvements by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/828\"\u003eGoogleCloudPlatform/agent-starter-pack#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: slim down Python guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/830\"\u003eGoogleCloudPlatform/agent-starter-pack#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Github Action per b/485167538 by \u003ca href=\"https://github.com/google-admin\"\u003e\u003ccode\u003e@​google-admin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/829\"\u003eGoogleCloudPlatform/agent-starter-pack#829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.38.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/831\"\u003eGoogleCloudPlatform/agent-starter-pack#831\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump cryptography from 45.0.7 to 46.0.5 in /agent_starter_pack/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/778\"\u003eGoogleCloudPlatform/agent-starter-pack#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update for adk java by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/785\"\u003eGoogleCloudPlatform/agent-starter-pack#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add smart-merge to enhance command by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/784\"\u003eGoogleCloudPlatform/agent-starter-pack#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: group non-Python agents under Other Languages in selection menu by \u003ca href=\"https://github.com/elia-secchi\"\u003e\u003ccode\u003e@​elia-secchi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/790\"\u003eGoogleCloudPlatform/agent-starter-pack#790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Vertex AI Search and Vector Search data connectors for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/791\"\u003eGoogleCloudPlatform/agent-starter-pack#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump langchain-text-splitters from 0.3.8 to 0.3.9 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/794\"\u003eGoogleCloudPlatform/agent-starter-pack#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump qs from 6.14.1 to 6.14.2 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/786\"\u003eGoogleCloudPlatform/agent-starter-pack#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable agent guidance filename with smart merge by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/783\"\u003eGoogleCloudPlatform/agent-starter-pack#783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: refresh dependency locks and handle missing terraform in setup-cicd by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/796\"\u003eGoogleCloudPlatform/agent-starter-pack#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump requests from 2.32.3 to 2.32.4 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/795\"\u003eGoogleCloudPlatform/agent-starter-pack#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: delete unused datastore terraform files in agentic_rag projects by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/797\"\u003eGoogleCloudPlatform/agent-starter-pack#797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use *\u003cem\u003e/\u003c/em\u003e glob pattern for agentic_rag and adk_live E2E triggers by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/798\"\u003eGoogleCloudPlatform/agent-starter-pack#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use europe-west4 region for agentic_rag E2E tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/799\"\u003eGoogleCloudPlatform/agent-starter-pack#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add RAG projects to scheduled cleanup by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/800\"\u003eGoogleCloudPlatform/agent-starter-pack#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update makefile snapshots and hashes for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/802\"\u003eGoogleCloudPlatform/agent-starter-pack#802\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/27a6f38fb2de5babdfbdc42b5cb789b081d85edd\"\u003e\u003ccode\u003e27a6f38\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/864\"\u003e#864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/d5e1957a6a3bb1b8cd7d6cf6b8214afe20c81be1\"\u003e\u003ccode\u003ed5e1957\u003c/code\u003e\u003c/a\u003e feat: broaden E2E test coverage on release commits (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a7072df78dcde0f0034d55f5ddc63996ccdb4016\"\u003e\u003ccode\u003ea7072df\u003c/code\u003e\u003c/a\u003e fix: more gke e2e issues (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/862\"\u003e#862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/46629c00eda9e0ccbf6f208fb08b51155fc52518\"\u003e\u003ccode\u003e46629c0\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/861\"\u003e#861\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/8f97c9e2ea3111c8326974c5e5ff6b52ee158dcb\"\u003e\u003ccode\u003e8f97c9e\u003c/code\u003e\u003c/a\u003e feat: redesign CLI welcome banner with ASP logo (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/860\"\u003e#860\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/6eafeeacd4435eafd3e9aa4b2c079a10c94c84b7\"\u003e\u003ccode\u003e6eafeea\u003c/code\u003e\u003c/a\u003e fix: default prototype mode to deployment_target='none' (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/855\"\u003e#855\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/7d288033c05551fe24fa93b9e4b8c03b8a7a1a29\"\u003e\u003ccode\u003e7d28803\u003c/code\u003e\u003c/a\u003e fix: gke e2e test issues (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/859\"\u003e#859\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/cc1bd2ab5929094557014b125907f816eb5a663d\"\u003e\u003ccode\u003ecc1bd2a\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.39.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/854\"\u003e#854\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a73948e3811941ce8c6caba7355ed8caac437533\"\u003e\u003ccode\u003ea73948e\u003c/code\u003e\u003c/a\u003e feat: add GKE as deployment target (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/617951f7de1b49783b37840ed0348cc0b21756e1\"\u003e\u003ccode\u003e617951f\u003c/code\u003e\u003c/a\u003e Update introduction video date in README (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/845\"\u003e#845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.5\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-05.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover Markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Extend \u003ccode\u003ePERF102\u003c/code\u003e to comprehensions and generators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23473\"\u003e#23473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e false positives when I/O variable is used later (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23542\"\u003e#23542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add fix for \u003ccode\u003enone-not-at-end-of-union\u003c/code\u003e (\u003ccode\u003eRUF036\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22829\"\u003e#22829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for \u003ccode\u003ere.split\u003c/code\u003e with empty string pattern (\u003ccode\u003eRUF055\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23634\"\u003e#23634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle callable class dependencies with \u003ccode\u003e__call__\u003c/code\u003e method (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23553\"\u003e#23553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix numpy section ordering (\u003ccode\u003eD420\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23685\"\u003e#23685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for names shadowing re-exports (\u003ccode\u003eF811\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23356\"\u003e#23356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid inserting redundant \u003ccode\u003eNone\u003c/code\u003e elements in \u003ccode\u003eUP045\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23459\"\u003e#23459\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument extension mapping for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23574\"\u003e#23574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate default Python version examples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23605\"\u003e#23605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish releases to Astral mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23616\"\u003e#23616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bxff\"\u003e\u003ccode\u003e@​bxff\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kar-ganap\"\u003e\u003ccode\u003e@​kar-ganap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eInstall ruff 0.15.5\u003c/h2\u003e\n\u003ch3\u003eInstall prebuilt binaries via shell script\u003c/h3\u003e\n\u003cpre lang=\"sh\"\u003e\u003ccode\u003ecurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/ruff/releases/download/0.15.5/ruff-installer.sh | sh\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eInstall prebuilt binaries via powershell script\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.5\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-05.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover Markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eperflint\u003c/code\u003e] Extend \u003ccode\u003ePERF102\u003c/code\u003e to comprehensions and generators (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23473\"\u003e#23473\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Fix \u003ccode\u003eFURB101\u003c/code\u003e and \u003ccode\u003eFURB103\u003c/code\u003e false positives when I/O variable is used later (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23542\"\u003e#23542\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Add fix for \u003ccode\u003enone-not-at-end-of-union\u003c/code\u003e (\u003ccode\u003eRUF036\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/22829\"\u003e#22829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Fix false positive for \u003ccode\u003ere.split\u003c/code\u003e with empty string pattern (\u003ccode\u003eRUF055\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23634\"\u003e#23634\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003efastapi\u003c/code\u003e] Handle callable class dependencies with \u003ccode\u003e__call__\u003c/code\u003e method (\u003ccode\u003eFAST003\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23553\"\u003e#23553\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epydocstyle\u003c/code\u003e] Fix numpy section ordering (\u003ccode\u003eD420\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23685\"\u003e#23685\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Fix false positive for names shadowing re-exports (\u003ccode\u003eF811\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23356\"\u003e#23356\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Avoid inserting redundant \u003ccode\u003eNone\u003c/code\u003e elements in \u003ccode\u003eUP045\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23459\"\u003e#23459\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDocument extension mapping for Markdown code formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23574\"\u003e#23574\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate default Python version examples (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23605\"\u003e#23605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePublish releases to Astral mirror (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23616\"\u003e#23616\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eContributors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/amyreese\"\u003e\u003ccode\u003e@​amyreese\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/stakeswky\"\u003e\u003ccode\u003e@​stakeswky\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chirizxc\"\u003e\u003ccode\u003e@​chirizxc\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anishgirianish\"\u003e\u003ccode\u003e@​anishgirianish\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bxff\"\u003e\u003ccode\u003e@​bxff\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/charliermarsh\"\u003e\u003ccode\u003e@​charliermarsh\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntBre\"\u003e\u003ccode\u003e@​ntBre\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/kar-ganap\"\u003e\u003ccode\u003e@​kar-ganap\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.15.4\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-26.\u003c/p\u003e\n\u003cp\u003eThis is a follow-up release to 0.15.3 that resolves a panic when the new rule \u003ccode\u003ePLR1712\u003c/code\u003e was enabled with any rule that analyzes definitions, such as many of the \u003ccode\u003eANN\u003c/code\u003e or \u003ccode\u003eD\u003c/code\u003e rules.\u003c/p\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix panic on access to definitions after analyzing definitions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23588\"\u003e#23588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Suppress false positive in \u003ccode\u003eF821\u003c/code\u003e for names used before \u003ccode\u003edel\u003c/code\u003e in stub files (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23550\"\u003e#23550\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5e4a3d9c3b381df20f6a52caef0f56ed0ebc74be\"\u003e\u003ccode\u003e5e4a3d9\u003c/code\u003e\u003c/a\u003e Bump 0.15.5 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23743\"\u003e#23743\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/69c23cc5a3a6cb08d81b01c7d1c2ba0482c3a3b1\"\u003e\u003ccode\u003e69c23cc\u003c/code\u003e\u003c/a\u003e [ty] Render all changed diagnostics in conformance.py (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23613\"\u003e#23613\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4926bd58204839cb75a8ed1397e824bbc8f644ca\"\u003e\u003ccode\u003e4926bd5\u003c/code\u003e\u003c/a\u003e [ty] Split deferred checks out of \u003ccode\u003etypes/infer/builder.rs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23740\"\u003e#23740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9a70f5eb2fb0180953418cd6ac037cb3d531e77b\"\u003e\u003ccode\u003e9a70f5e\u003c/code\u003e\u003c/a\u003e Discover markdown files by default in preview mode (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23434\"\u003e#23434\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3dc78b0a84ee231afb1c3329e11bfc912c236366\"\u003e\u003ccode\u003e3dc78b0\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003eHasOptionalDefinition\u003c/code\u003e for \u003ccode\u003eexcept\u003c/code\u003e handlers (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23739\"\u003e#23739\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a6a5e8d10b8a5185049827be0a304db522b91c9a\"\u003e\u003ccode\u003ea6a5e8d\u003c/code\u003e\u003c/a\u003e [ty] Fix precedence of \u003ccode\u003eall\u003c/code\u003e selector in TOML configurations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23723\"\u003e#23723\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/2a5384b0b6e22ab511aec6f8dbb11648befda887\"\u003e\u003ccode\u003e2a5384b\u003c/code\u003e\u003c/a\u003e [ty] Make \u003ccode\u003eall\u003c/code\u003e selector case sensitive (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23713\"\u003e#23713\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/db77d7b2ae3da8deed64d8889a5cbcea287b52a6\"\u003e\u003ccode\u003edb77d7b\u003c/code\u003e\u003c/a\u003e [ty] Add a diagnostic if a \u003ccode\u003eTypeVar\u003c/code\u003e is used to specialize a \u003ccode\u003eParamSpec\u003c/code\u003e, or ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/db2849068f7d6a1f42cdafec46a7c2c83d39ece3\"\u003e\u003ccode\u003edb28490\u003c/code\u003e\u003c/a\u003e [ty] Override home directory in ty tests (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23724\"\u003e#23724\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5f0fd91a230972bb9d1e4545ebaed2b7d09158a2\"\u003e\u003ccode\u003e5f0fd91\u003c/code\u003e\u003c/a\u003e [ty] More type-variable default validation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23639\"\u003e#23639\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `codespell` from 2.4.1 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/codespell-project/codespell/releases\"\u003ecodespell's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.4.2\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed compatibility with chardet 7+\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix and clarify cases in ignore patterns by \u003ca href=\"https://github.com/DanielYang59\"\u003e\u003ccode\u003e@​DanielYang59\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3583\"\u003ecodespell-project/codespell#3583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ecodespell-private.yml: Do not codespell digital signature files by \u003ca href=\"https://github.com/cclauss\"\u003e\u003ccode\u003e@​cclauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3623\"\u003ecodespell-project/codespell#3623\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3634\"\u003ecodespell-project/codespell#3634\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003enumbes-\u0026gt;numbers and numbesr-\u0026gt;numbers by \u003ca href=\"https://github.com/skshetry\"\u003e\u003ccode\u003e@​skshetry\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3635\"\u003ecodespell-project/codespell#3635\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling corrections for disclose and variables. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3622\"\u003ecodespell-project/codespell#3622\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for Vulnererability and variants. by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3625\"\u003ecodespell-project/codespell#3625\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove lets-\u0026gt;let's by \u003ca href=\"https://github.com/Piedone\"\u003e\u003ccode\u003e@​Piedone\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3633\"\u003ecodespell-project/codespell#3633\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd corrections for \u0026quot;dictate\u0026quot; by \u003ca href=\"https://github.com/jdufresne\"\u003e\u003ccode\u003e@​jdufresne\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3636\"\u003ecodespell-project/codespell#3636\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd specicification (and pl) typo by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3639\"\u003ecodespell-project/codespell#3639\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;blueish\u0026quot; correction by \u003ca href=\"https://github.com/hadess\"\u003e\u003ccode\u003e@​hadess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3510\"\u003ecodespell-project/codespell#3510\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u0026quot;lighting\u0026quot; as an option to fix \u0026quot;lighning\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3648\"\u003ecodespell-project/codespell#3648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert adding \u003ccode\u003elien\u003c/code\u003e to the rare dictionary  by \u003ca href=\"https://github.com/nikolaik\"\u003e\u003ccode\u003e@​nikolaik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3631\"\u003ecodespell-project/codespell#3631\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u0026quot;ane\u0026quot; could have been \u0026quot;one\u0026quot; by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3645\"\u003ecodespell-project/codespell#3645\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd spelling correction for \u0026quot;priort\u0026quot; by \u003ca href=\"https://github.com/cfi-gb\"\u003e\u003ccode\u003e@​cfi-gb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3647\"\u003ecodespell-project/codespell#3647\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u0026quot;fix\u0026quot; of \u0026quot;deques\u0026quot; - it is quite legit by \u003ca href=\"https://github.com/yarikoptic\"\u003e\u003ccode\u003e@​yarikoptic\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3649\"\u003ecodespell-project/codespell#3649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSeveral new suggestions by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3621\"\u003ecodespell-project/codespell#3621\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd proposal constraints to containts by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3652\"\u003ecodespell-project/codespell#3652\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdditions dleay,infp,practive,utiliy by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3643\"\u003ecodespell-project/codespell#3643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd calncelled and its variations by \u003ca href=\"https://github.com/mdeweerd\"\u003e\u003ccode\u003e@​mdeweerd\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3650\"\u003ecodespell-project/codespell#3650\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse raw strings for regex by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3654\"\u003ecodespell-project/codespell#3654\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow multiple spaces before codespell:ignore by \u003ca href=\"https://github.com/DimitriPapadopoulos\"\u003e\u003ccode\u003e@​DimitriPapadopoulos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/codespell-project/codespell/pull/3653\"\u003ecodespell-project/codespell#3653\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded correction from \u003ccode\u003etimeour\u003c/code\u003e to \u003ccode\u003etimeout\u003c/code\u003e by \u003ca h...\n\n_Description has been truncated_","html_url":"https://github.com/d3kum1d0r1y4100/hydra-sandbox-bc8e8ca3abc1/pull/24","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3kum1d0r1y4100%2Fhydra-sandbox-bc8e8ca3abc1/issues/24","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/24/packages"}},{"old_version":"3.12.1","new_version":"3.14.0","update_type":"minor","path":"/python/agents/short-movie-agents","pr_created_at":"2026-03-09T02:32:01.000Z","version_change":"3.12.1 → 3.14.0","issue":{"uuid":"4042955872","node_id":"PR_kwDORdKHYc7I8CTk","number":19,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-09T02:32:01.000Z","updated_at":"2026-04-13T02:29:22.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.26.0","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.14.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.135.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.26.0` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/google-cloud-python) | `3.12.1` | `3.14.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.135.1` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.1...v1.26.0\"\u003e1.26.0\u003c/a\u003e (2026-02-26)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd intra-invocation compaction and token compaction pre-request (\u003ca href=\"https://github.com/google/adk-python/commit/485fcb84e3ca351f83416c012edcafcec479c1db\"\u003e485fcb8\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003e--memory_service_uri\u003c/code\u003e in ADK CLI run command (\u003ca href=\"https://github.com/google/adk-python/commit/a7b509763c1732f0363e90952bb4c2672572d542\"\u003ea7b5097\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e integration to \u003ccode\u003eApigeeLlm\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/9c4c44536904f5cf3301a5abb910a5666344a8c5\"\u003e9c4c445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e/chat/completions\u003c/code\u003e streaming support to Apigee LLM (\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e121d277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand LiteLlm supported models and add registry tests (\u003ca href=\"https://github.com/google/adk-python/commit/d5332f44347f44d60360e14205a2342a0c990d66\"\u003ed5332f4\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eload_skill_from_dir()\u003c/code\u003e method (\u003ca href=\"https://github.com/google/adk-python/commit/9f7d5b3f1476234e552b783415527cc4bac55b39\"\u003e9f7d5b3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAgent Skills spec compliance — validation, aliases, scripts, and auto-injection (\u003ca href=\"https://github.com/google/adk-python/commit/223d9a7ff52d8da702f1f436bd22e94ad78bd5da\"\u003e223d9a7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBigQuery ADK support for search catalog tool (\u003ca href=\"https://github.com/google/adk-python/commit/bef3f117b4842ce62760328304484cd26a1ec30a\"\u003ebef3f11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake skill instruction optimizable and can adapt to user tasks (\u003ca href=\"https://github.com/google/adk-python/commit/21be6adcb86722a585b26f600c45c85e593b4ee0\"\u003e21be6ad\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass trace context in MCP tool call's \u003ccode\u003e_meta\u003c/code\u003e field with OpenTelemetry propagator (\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003ebcbfeba\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Evals]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce User Personas to the ADK evaluation framework (\u003ca href=\"https://github.com/google/adk-python/commit/6a808c60b38ad7140ddeb222887c6accc63edce9\"\u003e6a808c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Services]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd generate/create modes for Vertex AI Memory Bank writes (\u003ca href=\"https://github.com/google/adk-python/commit/811e50a0cbb181d502b9837711431ef78fca3f34\"\u003e811e50a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd support for memory consolidation via Vertex AI Memory Bank (\u003ca href=\"https://github.com/google/adk-python/commit/4a88804ec7d17fb4031b238c362f27d240df0a13\"\u003e4a88804\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[A2A]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd interceptor framework to \u003ccode\u003eA2aAgentExecutor\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/87fcd77caa9672f219c12e5a0e2ff65cbbaaf6f3\"\u003e87fcd77\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Auth]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd native support for \u003ccode\u003eid_token\u003c/code\u003e in OAuth2 credentials (\u003ca href=\"https://github.com/google/adk-python/commit/33f7d118b377b60f998c92944d2673679fddbc6e\"\u003e33f7d11\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport ID token exchange in \u003ccode\u003eServiceAccountCredentialExchanger\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e7be90db\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4458\"\u003e#4458\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Integrations]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAgent Registry in ADK (\u003ca href=\"https://github.com/google/adk-python/commit/abaa92944c4cd43d206e2986d405d4ee07d45afe\"\u003eabaa929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd schema auto-upgrade, tool provenance, HITL tracing, and span hierarchy fix to BigQuery Agent Analytics plugin (\u003ca href=\"https://github.com/google/adk-python/commit/4260ef0c7c37ecdfea295fb0e1a933bb0df78bea\"\u003e4260ef0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChange default BigQuery table ID and update docstring (\u003ca href=\"https://github.com/google/adk-python/commit/7557a929398ec2a1f946500d906cef5a4f86b5d1\"\u003e7557a92\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate Agent Registry to create AgentCard from info in get agents endpoint (\u003ca href=\"https://github.com/google/adk-python/commit/c33d614004a47d1a74951dd13628fd2300aeb9ef\"\u003ec33d614\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnable dependency injection for agent loader in FastAPI app gen (\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e34da2d5\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd OpenAI strict JSON schema enforcement in LiteLLM (\u003ca href=\"https://github.com/google/adk-python/commit/2dbd1f25bdb1d88a6873d824b81b3dd5243332a4\"\u003e2dbd1f2\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4573\"\u003e#4573\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd push notification config store to agent_to_a2a (\u003ca href=\"https://github.com/google/adk-python/commit/4ca904f11113c4faa3e17bb4a9662dca1f936e2e\"\u003e4ca904f\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/4126\"\u003e#4126\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for injecting a custom google.genai.Client into Gemini models (\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e48105b4\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/google/adk-python/issues/2560\"\u003e#2560\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/427a983b18088bdc22272d02714393b0a779ecdf\"\u003e\u003ccode\u003e427a983\u003c/code\u003e\u003c/a\u003e chore: update last-release-sha for next release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/934289ab88d63e875118ff85cc640e8597385625\"\u003e\u003ccode\u003e934289a\u003c/code\u003e\u003c/a\u003e chore(release/candidate): release 1.26.0 (\u003ca href=\"https://redirect.github.com/google/adk-python/issues/4610\"\u003e#4610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ab32f33e7418d452e65cf6f5b6cbfe1371600323\"\u003e\u003ccode\u003eab32f33\u003c/code\u003e\u003c/a\u003e fix: Validate session before streaming instead of eagerly advancing the runne...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/40ec1343c2708e1cf0d39cd8b8a96f3729f843de\"\u003e\u003ccode\u003e40ec134\u003c/code\u003e\u003c/a\u003e fix: Re-export DEFAULT_SKILL_SYSTEM_INSTRUCTION to skills and skill/prompt.py...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8f5428150d18ed732b66379c0acb806a9121c3cb\"\u003e\u003ccode\u003e8f54281\u003c/code\u003e\u003c/a\u003e fix: Update sample skills agent to use weather-skill instead of weather_skill\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/121d27741684685c564e484704ae949c5f0807b1\"\u003e\u003ccode\u003e121d277\u003c/code\u003e\u003c/a\u003e feat: Add /chat/completions streaming support to Apigee LLM\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/48105b49c5ab8e4719a66e7219f731b2cd293b00\"\u003e\u003ccode\u003e48105b4\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/ee8d956413473d1bbbb025a470ad882c1487d8b8\"\u003e\u003ccode\u003eee8d956\u003c/code\u003e\u003c/a\u003e fix: Update agent_engine_sandbox_code_executor in ADK\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7be90db24b41f1830e39ca3d7e15bf4dbfa5a304\"\u003e\u003ccode\u003e7be90db\u003c/code\u003e\u003c/a\u003e feat: Support ID token exchange in ServiceAccountCredentialExchanger\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/c615757ba12093ba4a2ba19bee3f498fef91584c\"\u003e\u003ccode\u003ec615757\u003c/code\u003e\u003c/a\u003e fix: Add support for injecting a custom google.genai.Client into Gemini models\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.14.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging: v3.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-logging-v3.13.0...google-cloud-logging-v3.14.0\"\u003ev3.14.0\u003c/a\u003e (2026-03-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003esupport mTLS certificates when available (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/1071\"\u003e#1071\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c73e4390\"\u003ec73e4390\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3d80f4c303f7bb767a33324270d8b6b35eb68a6\"\u003e\u003ccode\u003eb3d80f4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260305T222444Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16038\"\u003e#16038\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/22601c79a6c0d6c470d338245ee247e9320b733f\"\u003e\u003ccode\u003e22601c7\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T173911Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16034\"\u003e#16034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4049c9b6d963fc1bb0083970373aee34d930d3dd\"\u003e\u003ccode\u003e4049c9b\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260305T181227Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16036\"\u003e#16036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6120fb0db084f5e8d1502fb1bb37594ac9976f6e\"\u003e\u003ccode\u003e6120fb0\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T083838Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16023\"\u003e#16023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4937235ef66c792cf7f3ecc8ab027c98c7a6f7e6\"\u003e\u003ccode\u003e4937235\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260304T223823Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16025\"\u003e#16025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6876f64b10f05f42553858c009c9ce262cbda177\"\u003e\u003ccode\u003e6876f64\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260304T233807Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16026\"\u003e#16026\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/3ed2d6804bcacfdfd74e223d30492d90e606ea98\"\u003e\u003ccode\u003e3ed2d68\u003c/code\u003e\u003c/a\u003e fix: gracefully fallback if workload fields are missing from cert config (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16\"\u003e#16\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/99fa08ec6230245597b06293004fb7b8dd8e598a\"\u003e\u003ccode\u003e99fa08e\u003c/code\u003e\u003c/a\u003e chore: add metadata for hypercomputecluster and change default to v1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/16021\"\u003e#16021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fc72e93e2b951dbc419937393d932a8e175fa2f9\"\u003e\u003ccode\u003efc72e93\u003c/code\u003e\u003c/a\u003e chore(migration): Migrate code from googleapis/google-auth-library-python int...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/23ad4c8cfe8031c4ab0e0800b400970132d2ef51\"\u003e\u003ccode\u003e23ad4c8\u003c/code\u003e\u003c/a\u003e tests: fix test\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-vision-v3.12.1...google-cloud-logging-v3.14.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.135.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.135.1\u003c/h2\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed in the request async exit stack. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15038\"\u003e#15038\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15007\"\u003e#15007\u003c/a\u003e by \u003ca href=\"https://github.com/adityagiri3600\"\u003e\u003ccode\u003e@​adityagiri3600\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update Skill, optimize context, trim and refactor into references. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15031\"\u003e#15031\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15037\"\u003e#15037\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI People - Contributors and Translators. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15029\"\u003e#15029\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👥 Update FastAPI GitHub topic repositories. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15036\"\u003e#15036\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.135.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for Server Sent Events. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15030\"\u003e#15030\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/server-sent-events/\"\u003eServer-Sent Events (SSE)\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.134.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Add support for streaming JSON Lines and binary data with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15022\"\u003e#15022\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis also upgrades Starlette from \u003ccode\u003e\u0026gt;=0.40.0\u003c/code\u003e to \u003ccode\u003e\u0026gt;=0.46.0\u003c/code\u003e, as it's needed to properly unrwap and re-raise exceptions from exception groups.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/tutorial/stream-json-lines/\"\u003eStream JSON Lines\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAnd new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/stream-data/\"\u003eStream Data\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Update Library Agent Skill with streaming responses. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15024\"\u003e#15024\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Update docs for responses and new stream with \u003ccode\u003eyield\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15023\"\u003e#15023\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add \u003ccode\u003eawait\u003c/code\u003e in \u003ccode\u003eStreamingResponse\u003c/code\u003e code example to allow cancellation. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14681\"\u003e#14681\u003c/a\u003e by \u003ca href=\"https://github.com/casperdcl\"\u003e\u003ccode\u003e@​casperdcl\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Rename \u003ccode\u003edocs_src/websockets\u003c/code\u003e to \u003ccode\u003edocs_src/websockets_\u003c/code\u003e to avoid import errors. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14979\"\u003e#14979\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Run tests with \u003ccode\u003epytest-xdist\u003c/code\u003e and \u003ccode\u003epytest-cov\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14992\"\u003e#14992\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.133.1\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add FastAPI Agent Skill. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14982\"\u003e#14982\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eRead more about it in \u003ca href=\"https://tiangolo.com/ideas/library-agent-skills/\"\u003eLibrary Agent Skills\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Fix all tests are skipped on Windows. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14994\"\u003e#14994\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ca5f60ee72f35fb2134d8b5d26bbb75965bcff66\"\u003e\u003ccode\u003eca5f60e\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.135.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/87f75aa62c1dde90f4dfbfa7fc2c33127d757d34\"\u003e\u003ccode\u003e87f75aa\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8a9258b169dce3e321f614c14b1877c18750d6c7\"\u003e\u003ccode\u003e8a9258b\u003c/code\u003e\u003c/a\u003e 🐛 Fix, avoid yield from a TaskGroup, only as an async context manager, closed...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/60385078233e00f9f13307ff038f12f88fc5c240\"\u003e\u003ccode\u003e6038507\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c796ba4f46a6e81477ce44eabe13fd01d82f2c4a\"\u003e\u003ccode\u003ec796ba4\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15037\"\u003e#15037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/b24aa03b888b78dd2ec6540d47c84a8676d6a7cb\"\u003e\u003ccode\u003eb24aa03\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2c6104752a97273976c8a63e897de98a48f19ce0\"\u003e\u003ccode\u003e2c61047\u003c/code\u003e\u003c/a\u003e ✏️ Fix typo in \u003ccode\u003edocs/en/docs/_llm-test.md\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15007\"\u003e#15007\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3bbeef8a2687fdf34d4de2d304a59135a30e63c\"\u003e\u003ccode\u003ee3bbeef\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d726c8cb2b8e00279487fa8661a5276d2ff2125f\"\u003e\u003ccode\u003ed726c8c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cf514e6d3839ca69ca45a55a6f862e74892339b9\"\u003e\u003ccode\u003ecf514e6\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Contributors and Translators (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15029\"\u003e#15029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.135.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type ch...\n\n_Description has been truncated_","html_url":"https://github.com/d3kum1d0r1y4100/hydra-sandbox-c0c626ae2889/pull/19","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3kum1d0r1y4100%2Fhydra-sandbox-c0c626ae2889/issues/19","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/19/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":null,"pr_created_at":"2026-03-02T09:27:17.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"4010205919","node_id":"PR_kwDOPTwklM7HRsyg","number":423,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 7 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-02T09:27:17.000Z","updated_at":"2026-03-02T09:29:25.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":7,"packages":[{"name":"flask","old_version":"3.1.2","new_version":"3.1.3","repository_url":"https://github.com/pallets/flask"},{"name":"werkzeug","old_version":"3.1.5","new_version":"3.1.6","repository_url":"https://github.com/pallets/werkzeug"},{"name":"authlib","old_version":"1.6.8","new_version":"1.6.9","repository_url":"https://github.com/authlib/authlib"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"nltk","old_version":"3.9.2","new_version":"3.9.3","repository_url":"https://github.com/nltk/nltk"},{"name":"scipy","old_version":"1.17.0","new_version":"1.17.1","repository_url":"https://github.com/scipy/scipy"},{"name":"python-dotenv","old_version":"1.2.1","new_version":"1.2.2","repository_url":"https://github.com/theskumar/python-dotenv"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 7 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [flask](https://github.com/pallets/flask) | `3.1.2` | `3.1.3` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.5` | `3.1.6` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.8` | `1.6.9` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.2` | `3.9.3` |\n| [scipy](https://github.com/scipy/scipy) | `1.17.0` | `1.17.1` |\n| [python-dotenv](https://github.com/theskumar/python-dotenv) | `1.2.1` | `1.2.2` |\n\n\nUpdates `flask` from 3.1.2 to 3.1.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/releases\"\u003eflask's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.3\u003c/h2\u003e\n\u003cp\u003eThis is the Flask 3.1.3 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Flask/3.1.3/\"\u003ehttps://pypi.org/project/Flask/3.1.3/\u003c/a\u003e\nChanges: \u003ca href=\"https://flask.palletsprojects.com/page/changes/#version-3-1-3\"\u003ehttps://flask.palletsprojects.com/page/changes/#version-3-1-3\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys but not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. \u003ca href=\"https://github.com/pallets/flask/security/advisories/GHSA-68rp-wp8r-4726\"\u003eGHSA-68rp-wp8r-4726\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/flask/blob/main/CHANGES.rst\"\u003eflask's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.3\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe session is marked as accessed for operations that only access the keys\nbut not the values, such as \u003ccode\u003ein\u003c/code\u003e and \u003ccode\u003elen\u003c/code\u003e. :ghsa:\u003ccode\u003e68rp-wp8r-4726\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/22d924701a6ae2e4cd01e9a15bbaf3946094af65\"\u003e\u003ccode\u003e22d9247\u003c/code\u003e\u003c/a\u003e release version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/089cb86dd22bff589a4eafb7ab8e42dc357623b4\"\u003e\u003ccode\u003e089cb86\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/c17f379390731543eea33a570a47bd4ef76a54fa\"\u003e\u003ccode\u003ec17f379\u003c/code\u003e\u003c/a\u003e request context tracks session access\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/27be9338405382445a7cb01151e084559b98d602\"\u003e\u003ccode\u003e27be933\u003c/code\u003e\u003c/a\u003e start version 3.1.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4e652d3f68b90d50aa2301d3b7e68c3fafd9251d\"\u003e\u003ccode\u003e4e652d3\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5903\"\u003e#5903\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/3d03098a97ddc6a908aa4a50c2ef7381f8297d0a\"\u003e\u003ccode\u003e3d03098\u003c/code\u003e\u003c/a\u003e Abort if the instance folder cannot be created\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/407eb76b27884848383a37c7274654f0271e4bc4\"\u003e\u003ccode\u003e407eb76\u003c/code\u003e\u003c/a\u003e document using gevent for async (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5900\"\u003e#5900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/ac5664d2281533eacafd64f5cc7d5edcdaccab60\"\u003e\u003ccode\u003eac5664d\u003c/code\u003e\u003c/a\u003e document using gevent for async\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/4f79d5b59a56bc4356a97f2e81a35f98cb18d7b3\"\u003e\u003ccode\u003e4f79d5b\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11 (\u003ca href=\"https://redirect.github.com/pallets/flask/issues/5865\"\u003e#5865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/flask/commit/fe3b215d3ade4db68262dae1a3cdc464a1fc524f\"\u003e\u003ccode\u003efe3b215\u003c/code\u003e\u003c/a\u003e Increase required flit_core version to 3.11\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/flask/compare/3.1.2...3.1.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `werkzeug` from 3.1.5 to 3.1.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.6\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.6 security fix release, which fixes a security issue but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.6/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.6/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-6\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in multi-segment paths. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-29vq-49wr-vm6x\"\u003eGHSA-29vq-49wr-vm6x\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.6\u003c/h2\u003e\n\u003cp\u003eReleased 2026-02-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow special devices names in\nmulti-segment paths. :ghsa:\u003ccode\u003e29vq-49wr-vm6x\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/04da1b5221b7a7b57e82246e4b5741d37a6b2e56\"\u003e\u003ccode\u003e04da1b5\u003c/code\u003e\u003c/a\u003e release version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f407712fdc60a09c2b3f4fe7db557703e5d9338d\"\u003e\u003ccode\u003ef407712\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f54fe98026253e70fbbcd35a6b52fb67cfff1c03\"\u003e\u003ccode\u003ef54fe98\u003c/code\u003e\u003c/a\u003e safe_join prevents Windows special device names in multi-segment paths\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d005985ef69ffe3275eda8fb6fb25e074dbe871b\"\u003e\u003ccode\u003ed005985\u003c/code\u003e\u003c/a\u003e start version 3.1.6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/8565c2cbd6681ae8463e77d4fc0795324a7fdae7\"\u003e\u003ccode\u003e8565c2c\u003c/code\u003e\u003c/a\u003e document rule priority (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3febc7e90072bffe04c27e6b7478dfc4f88930df\"\u003e\u003ccode\u003e3febc7e\u003c/code\u003e\u003c/a\u003e document rule priority\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2525b827646c10ab7adb334664e6a4af1b769181\"\u003e\u003ccode\u003e2525b82\u003c/code\u003e\u003c/a\u003e remove state machine docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/4abfbd553cdeb6d4e6fa693340d52b13c884079f\"\u003e\u003ccode\u003e4abfbd5\u003c/code\u003e\u003c/a\u003e rewrite build docstring (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/161c18b2a8800ae6ef377fb3cbdb933a878fea67\"\u003e\u003ccode\u003e161c18b\u003c/code\u003e\u003c/a\u003e rewrite build docstring\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/86e11c29e44726dae524cd9db11549b3b1ad681d\"\u003e\u003ccode\u003e86e11c2\u003c/code\u003e\u003c/a\u003e release version 3.1.5 (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3085\"\u003e#3085\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.5...3.1.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.8 to 1.6.9\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.9\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eChanges in \u003ccode\u003ejose\u003c/code\u003e module\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eNot using header's \u003ccode\u003ejwk\u003c/code\u003e automatically\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eES256K\u003c/code\u003e into default jwt algorithms\u003c/li\u003e\n\u003cli\u003eRemove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003eGenerate random \u003ccode\u003ecek\u003c/code\u003e when \u003ccode\u003ecek\u003c/code\u003e length doesn't match\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/9266eaa2227ad7e21dc731b2a4a01909aabd934b\"\u003e\u003ccode\u003e9266eaa\u003c/code\u003e\u003c/a\u003e chore: release 1.6.9\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b9bb2b25bf8b7e01512d847a95c1749646eaa72b\"\u003e\u003ccode\u003eb9bb2b2\u003c/code\u003e\u003c/a\u003e fix(oidc): fail close at validating c_hash and at_hash\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/1b0a1d988842bff7347c4ec0a70e45c3ba55504e\"\u003e\u003ccode\u003e1b0a1d9\u003c/code\u003e\u003c/a\u003e fix(jose): generate random cek when cek length doesn't match\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/5be3c518794b7322375bae2bf1871713d9b5c2fb\"\u003e\u003ccode\u003e5be3c51\u003c/code\u003e\u003c/a\u003e fix(jose): add ES256K into default jwt algorithms\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/48b345f29f6c459f11c6a40162b6c0b742ef2e22\"\u003e\u003ccode\u003e48b345f\u003c/code\u003e\u003c/a\u003e fix(jose): remove deprecated algorithm from default registry\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/a5d4b2d4c9e46bfa11c82f85fdc2bcc0b50ae681\"\u003e\u003ccode\u003ea5d4b2d\u003c/code\u003e\u003c/a\u003e fix(jose): do not use header's jwk automatically\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.8...v1.6.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/v3.13.0/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `nltk` from 3.9.2 to 3.9.3\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/nltk/nltk/blob/develop/ChangeLog\"\u003enltk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion 3.9.3 2026-02-21\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix CVE-2025-14009: secure ZIP extraction in nltk.downloader (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3468\"\u003e#3468\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBlock path traversal/arbitrary reads in nltk.data for protocol-less refs (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3467\"\u003e#3467\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBlock path traversal/abs paths in corpus readers and FS pointers (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3479\"\u003e#3479\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3480\"\u003e#3480\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eValidate external StanfordSegmenter JARs using SHA256 (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3477\"\u003e#3477\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd optional sandbox enforcement for filestring() (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3485\"\u003e#3485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMaintenance: downloader/zipped models, CI/tooling updates\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.3:\nChris Clauss, Eric Kafe, HyperPS, purificant, Shivansh-Game, Christopher Smith\u003c/p\u003e\n\u003cp\u003eVersion 3.9.2 2025-10-01\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate download checksums to use SHA256 in built index\u003c/li\u003e\n\u003cli\u003eFix percentage escape in new-style string formatting\u003c/li\u003e\n\u003cli\u003ereplace shortened URLs using goo.gl\u003c/li\u003e\n\u003cli\u003eMake Wordnet interoperable with various taggers and tagged corpora\u003c/li\u003e\n\u003cli\u003eFix saving PerceptronTagger\u003c/li\u003e\n\u003cli\u003eDocument how to reproduce old Wordnet studies\u003c/li\u003e\n\u003cli\u003eproperly initialize Portuguese corpus reader\u003c/li\u003e\n\u003cli\u003esupport for mixed rules conversion into Chomsky Normal Form\u003c/li\u003e\n\u003cli\u003eonly import tkinter if a GUI is needed\u003c/li\u003e\n\u003cli\u003eissue \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/2112\"\u003e#2112\u003c/a\u003e with Corenlp\u003c/li\u003e\n\u003cli\u003enew environment variable NLTK_DOWNLOADER_FORCE_INTERACTIVE_SHELL\u003c/li\u003e\n\u003cli\u003eLesk defaults to most frequent sense in case of ties\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.2:\nJose Cols, Peter de Blanc, GeneralPoxter, Eric Kafe, William LaCroix, Jason Liu,\nSamer Masterson, Mike014, purificant, Andrew Ernest Ritz, samertm, Ikram Ul Haq,\nChristopher Smith, Ryan Mannion\u003c/p\u003e\n\u003cp\u003eVersion 3.9.1 2024-08-19\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed bug that prevented wordnet from loading\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eVersion 3.9 2024-08-18\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix security vulnerability CVE-2024-39705 (breaking change)\u003c/li\u003e\n\u003cli\u003eReplace pickled models (punkt, chunker, taggers) by new pickle-free \u0026quot;_tab\u0026quot; packages\u003c/li\u003e\n\u003cli\u003eNo longer sort Wordnet synsets and relations (sort in calling function when required)\u003c/li\u003e\n\u003cli\u003eOnly strip the last suffix in Wordnet Morphy, thus restricting synsets() results\u003c/li\u003e\n\u003cli\u003eAdd Python 3.12 support\u003c/li\u003e\n\u003cli\u003eMany other minor fixes\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.8.2:\nTom Aarsen, Cat Lee Ball, Veralara Bernhard, Carlos Brandt, Konstantin Chernyshev, Michael Higgins,\nEric Kafe, Vivek Kalyan, David Lukes, Rob Malouf, purificant, Alex Rudnick, Liling Tan, Akihiro Yamazaki.\u003c/p\u003e\n\u003cp\u003eVersion 3.8.1 2023-01-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eResolve RCE vulnerability in localhost WordNet Browser (\u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/4154eb85e832f266660a09286c7e37e308292284\"\u003e\u003ccode\u003e4154eb8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3503\"\u003e#3503\u003c/a\u003e from ekaf/hotfix-3501\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7a710cbc8b914628252e9cf2518afe9ba9b13c80\"\u003e\u003ccode\u003e7a710cb\u003c/code\u003e\u003c/a\u003e Prepare release 3.9.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/1056b323af6462455571302e766b67cf300aea18\"\u003e\u003ccode\u003e1056b32\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3468\"\u003e#3468\u003c/a\u003e from HyperPS/fix/secure-unzip-rce\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7dc5baa98f03b4c36300c408a7a66ffc8ea3934f\"\u003e\u003ccode\u003e7dc5baa\u003c/code\u003e\u003c/a\u003e Resolve merge conflict in tag mapping using normalized nltk resource URL\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7ef38b8aa6055ef3f82c7f8da490297cc12032b1\"\u003e\u003ccode\u003e7ef38b8\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3467\"\u003e#3467\u003c/a\u003e from HyperPS/develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/b2e1164bf89277f79b65406c829b99fb20ca1974\"\u003e\u003ccode\u003eb2e1164\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3485\"\u003e#3485\u003c/a\u003e from HyperPS/fix-filestring-sandbox-update\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/ac0ce55daa487401f8215a409cef50eae6a4ac98\"\u003e\u003ccode\u003eac0ce55\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3480\"\u003e#3480\u003c/a\u003e from HyperPS/fix/filesystem-sandbox-security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/603e34d25a2cad4612185ebfa6bc1c0dcfcfb2ab\"\u003e\u003ccode\u003e603e34d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3479\"\u003e#3479\u003c/a\u003e from HyperPS/fix/corpusreader-path-traversal\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/b63a5014aace4d22fe9a713473d2598d409eece4\"\u003e\u003ccode\u003eb63a501\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3477\"\u003e#3477\u003c/a\u003e from HyperPS/fix/stanford-segmenter-rce-sha256\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/df38955e506a9fcaa8aba006984a11babd87cec0\"\u003e\u003ccode\u003edf38955\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3494\"\u003e#3494\u003c/a\u003e from ekaf/ewnv\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nltk/nltk/compare/3.9.2...3.9.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.17.0 to 1.17.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.1\u003c/code\u003e is a bug-fix release with no new features compared to \u003ccode\u003e1.17.0\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eAuthors\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eName (commits)\u003c/li\u003e\n\u003cli\u003eEvgeni Burovski (5)\u003c/li\u003e\n\u003cli\u003eLucas Colley (1)\u003c/li\u003e\n\u003cli\u003eChristoph Gohlke (1)\u003c/li\u003e\n\u003cli\u003eRalf Gommers (6)\u003c/li\u003e\n\u003cli\u003eMatt Haberland (5)\u003c/li\u003e\n\u003cli\u003eMatthias Koeppe (1)\u003c/li\u003e\n\u003cli\u003eNick ODell (1)\u003c/li\u003e\n\u003cli\u003eIlhan Polat (10)\u003c/li\u003e\n\u003cli\u003eTyler Reddy (44)\u003c/li\u003e\n\u003cli\u003eMartin Schuck (3)\u003c/li\u003e\n\u003cli\u003eDan Schult (3)\u003c/li\u003e\n\u003cli\u003estratakis (1) +\u003c/li\u003e\n\u003cli\u003eਗਗਨਦੀਪ ਸਿੰਘ (Gagandeep Singh) (1)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eA total of 13 people contributed to this release.\nPeople with a \u0026quot;+\u0026quot; by their names contributed a patch for the first time.\nThis list of names is automatically generated, and may not be fully complete.\u003c/p\u003e\n\u003cp\u003eComplete issue list, PR list, and release asset hashes are available in the associated \u003ca href=\"https://github.com/scipy/scipy/releases/download/v1.17.1/README.txt\"\u003e\u003ccode\u003eREADME.txt\u003c/code\u003e\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/527eb7fd7953a1de068f94bf8b322f249b9405ae\"\u003e\u003ccode\u003e527eb7f\u003c/code\u003e\u003c/a\u003e REL: 1.17.1 release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/f11663bf044f1cb5a0112a28ac238f902ae36eea\"\u003e\u003ccode\u003ef11663b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24584\"\u003e#24584\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/2c49e68b634d2657380ca7b65207c6122e83cb72\"\u003e\u003ccode\u003e2c49e68\u003c/code\u003e\u003c/a\u003e DOC: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/400fa15ed6f9fece4c3848e9eade0e7d5e5aece0\"\u003e\u003ccode\u003e400fa15\u003c/code\u003e\u003c/a\u003e safely convert index dtypes to intc for csgraph and superLU\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c704044ab6f8f3e94295f354dbadfcab9139837\"\u003e\u003ccode\u003e8c70404\u003c/code\u003e\u003c/a\u003e MAINT: PR 24584 revisions [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/6dda8c13c534a61bc56c7b11bb5841efbd37d9dd\"\u003e\u003ccode\u003e6dda8c1\u003c/code\u003e\u003c/a\u003e BUG: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/4a187e59ea9cde1f79b4fae9dbd8177adcf0ddf3\"\u003e\u003ccode\u003e4a187e5\u003c/code\u003e\u003c/a\u003e DOC: PR 24584 revisions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/463ee9f72a5f1afe3363e86344a55eea1c1ba477\"\u003e\u003ccode\u003e463ee9f\u003c/code\u003e\u003c/a\u003e ENH: linalg/inv: re-enable overwrite_a for 2D inputs (\u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24442\"\u003e#24442\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/df746eed5eae0243969fd8de07770c4ace1dc65c\"\u003e\u003ccode\u003edf746ee\u003c/code\u003e\u003c/a\u003e BUG: linalg: restore dtypes in inv, solve, det\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/246bfeecbe56200ae4e265a70e06ccc64daee9c2\"\u003e\u003ccode\u003e246bfee\u003c/code\u003e\u003c/a\u003e MAINT:optimize: Enable multi-phase init to DIRECT\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.17.0...v1.17.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-dotenv` from 1.2.1 to 1.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/releases\"\u003epython-dotenv's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.2.2\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (#)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/607\"\u003etheskumar/python-dotenv#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eSupport for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e#790c5\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by \u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eskip 000 permission tests for root user by \u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 5 to 6 in the github-actions group by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/593\"\u003etheskumar/python-dotenv#593\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Windows testing to CI by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/604\"\u003etheskumar/python-dotenv#604\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove workflow efficiency with best practices by \u003ca href=\"https://github.com/theskumar\"\u003e\u003ccode\u003e@​theskumar\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/609\"\u003etheskumar/python-dotenv#609\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the use of \u003ccode\u003esh\u003c/code\u003e in tests by \u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/612\"\u003etheskumar/python-dotenv#612\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/590\"\u003etheskumar/python-dotenv#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/burnout-projects\"\u003e\u003ccode\u003e@​burnout-projects\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/561\"\u003etheskumar/python-dotenv#561\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/cpackham-atlnz\"\u003e\u003ccode\u003e@​cpackham-atlnz\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/pull/597\"\u003etheskumar/python-dotenv#597\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ehttps://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/theskumar/python-dotenv/blob/main/CHANGELOG.md\"\u003epython-dotenv's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[1.2.2] - 2026-03-01\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.14, including the free-threaded (3.14t) build. (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe \u003ccode\u003edotenv run\u003c/code\u003e command now forwards flags directly to the specified command by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/607\"\u003e#607\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved documentation clarity regarding override behavior and the reference page.\u003c/li\u003e\n\u003cli\u003eUpdated PyPy support to version 3.11.\u003c/li\u003e\n\u003cli\u003eDocumentation for FIFO file support.\u003c/li\u003e\n\u003cli\u003eDropped Support for Python 3.9.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved \u003ccode\u003eset_key\u003c/code\u003e and \u003ccode\u003eunset_key\u003c/code\u003e behavior when interacting with symlinks by [\u003ca href=\"https://github.com/bbc2\"\u003e\u003ccode\u003e@​bbc2\u003c/code\u003e\u003c/a\u003e] in [790c5c0]\u003c/li\u003e\n\u003cli\u003eCorrected the license specifier and added missing Python 3.14 classifiers in package metadata by [\u003ca href=\"https://github.com/JYOuyang\"\u003e\u003ccode\u003e@​JYOuyang\u003c/code\u003e\u003c/a\u003e] in \u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/590\"\u003e#590\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e and \u003ccode\u003edotenv.unset_key\u003c/code\u003e used to follow symlinks in some\nsituations. This is no longer the case. For that behavior to be restored in\nall cases, \u003ccode\u003efollow_symlinks=True\u003c/code\u003e should be used.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eIn the CLI, \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e used to follow symlinks in some situations. This\nis no longer the case.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ccode\u003edotenv.set_key\u003c/code\u003e, \u003ccode\u003edotenv.unset_key\u003c/code\u003e and the CLI commands \u003ccode\u003eset\u003c/code\u003e and \u003ccode\u003eunset\u003c/code\u003e\nused to reset the file mode of the modified .env file to \u003ccode\u003e0o600\u003c/code\u003e in some\nsituations. This is no longer the case: The original mode of the file is now\npreserved. Is the file needed to be created or wasn't a regular file, mode\n\u003ccode\u003e0o600\u003c/code\u003e is used.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/36004e0e34be7665ff2b11a8a4005144f76f176d\"\u003e\u003ccode\u003e36004e0\u003c/code\u003e\u003c/a\u003e Bump version: 1.2.1 → 1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/eb202520e5933c9daf42501e1e42fdb0144002c8\"\u003e\u003ccode\u003eeb20252\u003c/code\u003e\u003c/a\u003e docs: update changelog for v1.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/790c5c02991100aa1bf41ee5330aca75edc51311\"\u003e\u003ccode\u003e790c5c0\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/43340da220fb4ca4f95357bbe21a3c7f8f1278b1\"\u003e\u003ccode\u003e43340da\u003c/code\u003e\u003c/a\u003e Remove the use of \u003ccode\u003esh\u003c/code\u003e in tests (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/612\"\u003e#612\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/09d7cee32459e7abdcb5c9d8122a552589c06a9c\"\u003e\u003ccode\u003e09d7cee\u003c/code\u003e\u003c/a\u003e docs: clarify override behavior and document FIFO support (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/610\"\u003e#610\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/c8de2887c00198c22842c5ae5e92d1747467363c\"\u003e\u003ccode\u003ec8de288\u003c/code\u003e\u003c/a\u003e ci: improve workflow efficiency with best practices (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/609\"\u003e#609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/7bd9e3dbfedc0983ad7d56d5570013035242bdf4\"\u003e\u003ccode\u003e7bd9e3d\u003c/code\u003e\u003c/a\u003e Add Windows testing to CI (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/604\"\u003e#604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/1baaf04f336072e0ee324d5df9563ec767f14f81\"\u003e\u003ccode\u003e1baaf04\u003c/code\u003e\u003c/a\u003e Drop Python 3.9 support and update to PyPy 3.11 (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/608\"\u003e#608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/4a22cf8993804aeede0c20b75bb1a29d3a99e9dc\"\u003e\u003ccode\u003e4a22cf8\u003c/code\u003e\u003c/a\u003e ci: enable testing on Python 3.14t (free-threaded) (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theskumar/python-dotenv/commit/e2e8e776b42e382ae38b44d3982dd649e7507dd4\"\u003e\u003ccode\u003ee2e8e77\u003c/code\u003e\u003c/a\u003e Fix license specifier (\u003ca href=\"https://redirect.github.com/theskumar/python-dotenv/issues/597\"\u003e#597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/theskumar/python-dotenv/compare/v1.2.1...v1.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/423","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/423","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/423/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":"/python/agents/image-scoring","pr_created_at":"2026-02-24T12:03:21.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"3983310875","node_id":"PR_kwDORXp-JM7F6VxZ","number":9,"state":"closed","title":"chore(deps): bump the all-dependencies group in /python/agents/image-scoring with 8 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-03-09T02:17:49.000Z","author_association":null,"state_reason":null,"created_at":"2026-02-24T12:03:21.000Z","updated_at":"2026-03-09T02:17:50.000Z","time_to_close":1088068,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":8,"packages":[{"name":"google-adk","old_version":"1.18.0","new_version":"1.25.1","repository_url":"https://github.com/google/adk-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"pillow","old_version":"12.0.0","new_version":"12.1.1","repository_url":"https://github.com/python-pillow/Pillow"},{"name":"pytest","old_version":"9.0.1","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"agent-starter-pack","old_version":"0.20.4","new_version":"0.38.0","repository_url":"https://github.com/GoogleCloudPlatform/agent-starter-pack"},{"name":"ruff","old_version":"0.14.4","new_version":"0.15.2","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.18.2","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"types-requests","old_version":"2.32.4.20250913","new_version":"2.32.4.20260107","repository_url":"https://github.com/typeshed-internal/stub_uploader"}],"path":"/python/agents/image-scoring","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/image-scoring with 8 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.18.0` | `1.25.1` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [pillow](https://github.com/python-pillow/Pillow) | `12.0.0` | `12.1.1` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.1` | `9.0.2` |\n| [agent-starter-pack](https://github.com/GoogleCloudPlatform/agent-starter-pack) | `0.20.4` | `0.38.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.14.4` | `0.15.2` |\n| [mypy](https://github.com/python/mypy) | `1.18.2` | `1.19.1` |\n| [types-requests](https://github.com/typeshed-internal/stub_uploader) | `2.32.4.20250913` | `2.32.4.20260107` |\n\nUpdates `google-adk` from 1.18.0 to 1.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace check of instance for LlmAgent with hasAttribute check (\u003ca href=\"https://github.com/google/adk-python/commit/7110336788662abb8c9bbbb0a53a50cc09130d5e\"\u003e7110336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLog exception details before re-raising in MCP session execution (\u003ca href=\"https://github.com/google/adk-python/commit/de79bf12b564a4eefc7e6a2568dbe0f08bb6efeb\"\u003ede79bf1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7a6b62da62f56e327a7782b123129247ba1e68f7\"\u003e\u003ccode\u003e7a6b62d\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/3a1d459cd4702eda5d4267e03ad0717bd534b0c8\"\u003e\u003ccode\u003e3a1d459\u003c/code\u003e\u003c/a\u003e fix: Fix pickling lock errors in McpSessionManager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8cd22fb746f2ddac83ba31f7679138557a914925\"\u003e\u003ccode\u003e8cd22fb\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/079f7a38be5c2dcae604a93a8dabc2fd60af79db\"\u003e\u003ccode\u003e079f7a3\u003c/code\u003e\u003c/a\u003e fix: Support escaped curly braces in instruction templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e\u003ccode\u003e34da2d5\u003c/code\u003e\u003c/a\u003e feat: enable dependency injection for agent loader in FastAPI app gen\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003e\u003ccode\u003ebcbfeba\u003c/code\u003e\u003c/a\u003e feat: pass trace context in MCP tool call's _meta field with Otel propagator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9dccd6a69223925ed1c452189b33a922e6934643\"\u003e\u003ccode\u003e9dccd6a\u003c/code\u003e\u003c/a\u003e feat(conformance): read report's version info from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/38b4869c414c3e84616db81aafac49f41dd12fa9\"\u003e\u003ccode\u003e38b4869\u003c/code\u003e\u003c/a\u003e chore(ci): migrate release pipeline from release-please App to GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/657acfadbbb6f81fd489aec11061715adce7c07f\"\u003e\u003ccode\u003e657acfa\u003c/code\u003e\u003c/a\u003e docs: Add PostgreSQL session storage sample and documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/61c329f8ce7659574410744ab3868ca002946ed8\"\u003e\u003ccode\u003e61c329f\u003c/code\u003e\u003c/a\u003e ci: match the environment with internal ones for pyink/isort/unittest\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.18.0...v1.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pillow` from 12.0.0 to 12.1.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python-pillow/Pillow/releases\"\u003epillow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e12.1.1\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.1.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePatch libavif for svt-av1 4.0 compatibility \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9413\"\u003e#9413\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix OOB Write with invalid tile extents \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e12.1.0\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\"\u003ehttps://pillow.readthedocs.io/en/stable/releasenotes/12.1.0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eDeprecations\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDeprecate getdata(), in favour of new get_flattened_data() \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDocumentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSpecify APNG duration type when opening \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdded release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9350\"\u003e#9350\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9366\"\u003e#9366\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate ImageMorph documentation \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9349\"\u003e#9349\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eDocs: update major bump cadence \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9334\"\u003e#9334\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eAdd release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9070\"\u003e#9070\u003c/a\u003e \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9320\"\u003e#9320\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated Ubuntu version \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9306\"\u003e#9306\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate macOS tested Pillow versions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9265\"\u003e#9265\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependencies\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate harfbuzz to 12.3.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9355\"\u003e#9355\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate xz to 5.8.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9343\"\u003e#9343\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libjpeg-turbo to 3.1.3 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9333\"\u003e#9333\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated zlib-ng to 2.3.2 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9324\"\u003e#9324\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.53 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9325\"\u003e#9325\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate actions/checkout action to v6 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9323\"\u003e#9323\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate dependency mypy to v1.19.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9322\"\u003e#9322\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated libpng to 1.6.51 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9305\"\u003e#9305\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated brotli to 1.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9284\"\u003e#9284\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate libimagequant to 4.4.1 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9301\"\u003e#9301\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate zlib-ng to 2.3.1, except on manylinux2014 aarch64 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9312\"\u003e#9312\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdated harfbuzz to 12.2.0 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9289\"\u003e#9289\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eUpdate github-actions \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9277\"\u003e#9277\u003c/a\u003e [@\u003ca href=\"https://github.com/apps/renovate\"\u003erenovate[bot]\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTesting\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace pre-commit with prek \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9360\"\u003e#9360\u003c/a\u003e [\u003ca href=\"https://github.com/hugovk\"\u003e\u003ccode\u003e@​hugovk\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest PyQt6 on Python 3.14 on Windows \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9353\"\u003e#9353\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eTest 32-bit Windows on Windows Server 2022 \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9345\"\u003e#9345\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003cli\u003eCorrect variable type \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9335\"\u003e#9335\u003c/a\u003e [\u003ca href=\"https://github.com/radarhere\"\u003e\u003ccode\u003e@​radarhere\u003c/code\u003e\u003c/a\u003e]\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/5158d98c807e719c5938aa3886913ef0ea6814e9\"\u003e\u003ccode\u003e5158d98\u003c/code\u003e\u003c/a\u003e 12.1.1 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/9000313cc5d4a31bdcdd6d7f0781101abab553aa\"\u003e\u003ccode\u003e9000313\u003c/code\u003e\u003c/a\u003e Fix OOB Write with invalid tile extents (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9427\"\u003e#9427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/cd0111849fb32c40860e3ee3d57b9b1cee4260cf\"\u003e\u003ccode\u003ecd01118\u003c/code\u003e\u003c/a\u003e Patch libavif for svt-av1 4.0 compatibility\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/46f45f674d47b5d8bc54230dda8fe9e214598b87\"\u003e\u003ccode\u003e46f45f6\u003c/code\u003e\u003c/a\u003e 12.1.0 version bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/c9ac097edb5594f63c40acd9afe6802547200379\"\u003e\u003ccode\u003ec9ac097\u003c/code\u003e\u003c/a\u003e Simplify band splitting (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9291\"\u003e#9291\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/3baedf264804d199bc19458d11bcff02ce7598eb\"\u003e\u003ccode\u003e3baedf2\u003c/code\u003e\u003c/a\u003e Deprecate getdata(), in favour of new get_flattened_data() (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9292\"\u003e#9292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/b51a0366852c1d519d108dfec8fc2d738cd8080f\"\u003e\u003ccode\u003eb51a036\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9368\"\u003e#9368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/8d08e31533065b623399a54bc92b39a756599ad4\"\u003e\u003ccode\u003e8d08e31\u003c/code\u003e\u003c/a\u003e Add release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9369\"\u003e#9369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/432707ea810ae619e2a9e4a9737c169cacaa8eda\"\u003e\u003ccode\u003e432707e\u003c/code\u003e\u003c/a\u003e Added release notes for \u003ca href=\"https://redirect.github.com/python-pillow/Pillow/issues/9348\"\u003e#9348\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python-pillow/Pillow/commit/2d589107fb3a4aba8389932a65ff771bf9b4deb1\"\u003e\u003ccode\u003e2d58910\u003c/code\u003e\u003c/a\u003e Specify APNG duration type when opening\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python-pillow/Pillow/compare/12.0.0...12.1.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 9.0.1 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/9.0.1...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `agent-starter-pack` from 0.20.4 to 0.38.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/releases\"\u003eagent-starter-pack's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump fast-xml-parser from 5.3.5 to 5.3.6 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/818\"\u003eGoogleCloudPlatform/agent-starter-pack#818\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use gemini-3-flash-preview as eval judge model by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/820\"\u003eGoogleCloudPlatform/agent-starter-pack#820\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: improve enhance command with bug fixes and UX improvements by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/828\"\u003eGoogleCloudPlatform/agent-starter-pack#828\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003erefactor: slim down Python guidance template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/830\"\u003eGoogleCloudPlatform/agent-starter-pack#830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor Github Action per b/485167538 by \u003ca href=\"https://github.com/google-admin\"\u003e\u003ccode\u003e@​google-admin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/829\"\u003eGoogleCloudPlatform/agent-starter-pack#829\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.38.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/831\"\u003eGoogleCloudPlatform/agent-starter-pack#831\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.37.0...v0.38.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.37.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump cryptography from 45.0.7 to 46.0.5 in /agent_starter_pack/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/778\"\u003eGoogleCloudPlatform/agent-starter-pack#778\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update for adk java by \u003ca href=\"https://github.com/allen-stephen\"\u003e\u003ccode\u003e@​allen-stephen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/785\"\u003eGoogleCloudPlatform/agent-starter-pack#785\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add smart-merge to enhance command by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/784\"\u003eGoogleCloudPlatform/agent-starter-pack#784\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: group non-Python agents under Other Languages in selection menu by \u003ca href=\"https://github.com/elia-secchi\"\u003e\u003ccode\u003e@​elia-secchi\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/790\"\u003eGoogleCloudPlatform/agent-starter-pack#790\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add Vertex AI Search and Vector Search data connectors for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/791\"\u003eGoogleCloudPlatform/agent-starter-pack#791\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump langchain-text-splitters from 0.3.8 to 0.3.9 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/794\"\u003eGoogleCloudPlatform/agent-starter-pack#794\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump qs from 6.14.1 to 6.14.2 in /agent_starter_pack/base_templates/typescript by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/786\"\u003eGoogleCloudPlatform/agent-starter-pack#786\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add configurable agent guidance filename with smart merge by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/783\"\u003eGoogleCloudPlatform/agent-starter-pack#783\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: refresh dependency locks and handle missing terraform in setup-cicd by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/796\"\u003eGoogleCloudPlatform/agent-starter-pack#796\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump requests from 2.32.3 to 2.32.4 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/795\"\u003eGoogleCloudPlatform/agent-starter-pack#795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: delete unused datastore terraform files in agentic_rag projects by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/797\"\u003eGoogleCloudPlatform/agent-starter-pack#797\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use *\u003cem\u003e/\u003c/em\u003e glob pattern for agentic_rag and adk_live E2E triggers by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/798\"\u003eGoogleCloudPlatform/agent-starter-pack#798\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use europe-west4 region for agentic_rag E2E tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/799\"\u003eGoogleCloudPlatform/agent-starter-pack#799\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: add RAG projects to scheduled cleanup by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/800\"\u003eGoogleCloudPlatform/agent-starter-pack#800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: update makefile snapshots and hashes for agentic_rag by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/802\"\u003eGoogleCloudPlatform/agent-starter-pack#802\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump urllib3 from 1.26.20 to 2.6.3 in /agent_starter_pack/agents/agentic_rag/data_ingestion by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/793\"\u003eGoogleCloudPlatform/agent-starter-pack#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.37.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/803\"\u003eGoogleCloudPlatform/agent-starter-pack#803\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: mock Vertex AI Search/Vector Search in agentic_rag integration tests by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/804\"\u003eGoogleCloudPlatform/agent-starter-pack#804\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: optimize data processing containers and sync with pyproject.toml by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/805\"\u003eGoogleCloudPlatform/agent-starter-pack#805\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChange project version to 0.36.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/806\"\u003eGoogleCloudPlatform/agent-starter-pack#806\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.37.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/807\"\u003eGoogleCloudPlatform/agent-starter-pack#807\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.36.0...v0.37.0\"\u003ehttps://github.com/GoogleCloudPlatform/agent-starter-pack/compare/v0.36.0...v0.37.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ebuild(deps): bump nbconvert from 7.16.6 to 7.17.0 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/768\"\u003eGoogleCloudPlatform/agent-starter-pack#768\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump protobuf from 5.29.5 to 5.29.6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/764\"\u003eGoogleCloudPlatform/agent-starter-pack#764\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: correct import ordering in agentic_rag bq_analytics template  by \u003ca href=\"https://github.com/haiyuan-eng-google\"\u003e\u003ccode\u003e@​haiyuan-eng-google\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/777\"\u003eGoogleCloudPlatform/agent-starter-pack#777\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: add TypeScript ADK agent template (adk_ts) by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/731\"\u003eGoogleCloudPlatform/agent-starter-pack#731\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: align zod version with \u003ccode\u003e@​google/adk\u003c/code\u003e dependency in TypeScript template by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/779\"\u003eGoogleCloudPlatform/agent-starter-pack#779\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003echore: release v0.36.0 by \u003ca href=\"https://github.com/eliasecchig\"\u003e\u003ccode\u003e@​eliasecchig\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/780\"\u003eGoogleCloudPlatform/agent-starter-pack#780\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/haiyuan-eng-google\"\u003e\u003ccode\u003e@​haiyuan-eng-google\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/pull/777\"\u003eGoogleCloudPlatform/agent-starter-pack#777\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a107bc9b67128329a72564f898568a6bfebe66ac\"\u003e\u003ccode\u003ea107bc9\u003c/code\u003e\u003c/a\u003e chore: release v0.38.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/831\"\u003e#831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/a202a6cd16c6f49cbe0e30d540e33ed8379f2cd3\"\u003e\u003ccode\u003ea202a6c\u003c/code\u003e\u003c/a\u003e Refactor Github Action per b/485167538 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/829\"\u003e#829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/671a8f213aad80003b53ef81a08a607937247f2d\"\u003e\u003ccode\u003e671a8f2\u003c/code\u003e\u003c/a\u003e refactor: slim down Python guidance template (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/830\"\u003e#830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/dab55e89bcffa5e7fad16c8c3a4572b9fb479dda\"\u003e\u003ccode\u003edab55e8\u003c/code\u003e\u003c/a\u003e fix: improve enhance command with bug fixes and UX improvements (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/828\"\u003e#828\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/78608760e4e1347f73d1ff84a25f8908d8cef9c7\"\u003e\u003ccode\u003e7860876\u003c/code\u003e\u003c/a\u003e fix: use gemini-3-flash-preview as eval judge model with numSamples=1 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/820\"\u003e#820\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/8d80885c5edc1eab6adf0af6770298f9d7ea9de3\"\u003e\u003ccode\u003e8d80885\u003c/code\u003e\u003c/a\u003e build(deps): bump fast-xml-parser (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/818\"\u003e#818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/82594b0ff0bd075a05681f860feaad9265705f11\"\u003e\u003ccode\u003e82594b0\u003c/code\u003e\u003c/a\u003e chore: bump version to 0.37.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/807\"\u003e#807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/99cb74cda39e94f6a4ac0e36d80ce3e9c31419e9\"\u003e\u003ccode\u003e99cb74c\u003c/code\u003e\u003c/a\u003e Change project version to 0.36.0 (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/806\"\u003e#806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/5cf4473f217e5aeb20a41e4de5d2f678ea8ad5eb\"\u003e\u003ccode\u003e5cf4473\u003c/code\u003e\u003c/a\u003e feat: optimize data processing containers and sync with pyproject.toml (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/805\"\u003e#805\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/commit/accdeaa606877665b80108b89bd66107018ecdf9\"\u003e\u003ccode\u003eaccdeaa\u003c/code\u003e\u003c/a\u003e fix: mock Vertex AI Search/Vector Search in agentic_rag integration tests (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/agent-starter-pack/issues/804\"\u003e#804\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/agent-starter-pack/compare/0.20.4...v0.38.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ruff` from 0.14.4 to 0.15.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/releases\"\u003eruff's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412 rules, up from the stable default set of 59 rules. The new rules are mostly a superset of the stable defaults, with the exception of these rules, which are removed from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with configuration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\r\n# ruff.toml\r\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub discussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e[\u003ccode\u003eflake8-pyi\u003c/code\u003e] Also check string annotations (\u003ccode\u003ePYI041\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/19023\"\u003e#19023\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/astral-sh/ruff/blob/main/CHANGELOG.md\"\u003eruff's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.15.2\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-02-19.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eExpand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23385\"\u003e#23385\u003c/a\u003e)\u003c/p\u003e\n\u003cp\u003eIn preview, Ruff now enables a significantly expanded default rule set of 412\nrules, up from the stable default set of 59 rules. The new rules are mostly a\nsuperset of the stable defaults, with the exception of these rules, which are\nremoved from the preview defaults:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-imports-on-one-line\"\u003e\u003ccode\u003emultiple-imports-on-one-line\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE401\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE402\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/module-import-not-at-top-of-file\"\u003e\u003ccode\u003emodule-import-not-at-top-of-file\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE701\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/multiple-statements-on-one-line-semicolon\"\u003e\u003ccode\u003emultiple-statements-on-one-line-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE702\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/useless-semicolon\"\u003e\u003ccode\u003euseless-semicolon\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE703\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/none-comparison\"\u003e\u003ccode\u003enone-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE711\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/true-false-comparison\"\u003e\u003ccode\u003etrue-false-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE712\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-in-test\"\u003e\u003ccode\u003enot-in-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE713\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/not-is-test\"\u003e\u003ccode\u003enot-is-test\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE714\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/type-comparison\"\u003e\u003ccode\u003etype-comparison\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE721\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/lambda-assignment\"\u003e\u003ccode\u003elambda-assignment\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE731\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-variable-name\"\u003e\u003ccode\u003eambiguous-variable-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE741\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-class-name\"\u003e\u003ccode\u003eambiguous-class-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE742\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/ambiguous-function-name\"\u003e\u003ccode\u003eambiguous-function-name\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eE743\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star\"\u003e\u003ccode\u003eundefined-local-with-import-star\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF403\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF405\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/undefined-local-with-nested-import-star-usage\"\u003e\u003ccode\u003eundefined-local-with-nested-import-star-usage\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF406\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://docs.astral.sh/ruff/rules/forward-annotation-syntax-error\"\u003e\u003ccode\u003eforward-annotation-syntax-error\u003c/code\u003e\u003c/a\u003e (\u003ccode\u003eF722\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eIf you use preview and prefer the old defaults, you can restore them with\nconfiguration like:\u003c/p\u003e\n\u003cpre lang=\"toml\"\u003e\u003ccode\u003e\n# ruff.toml\n\u003cp\u003e[lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\u003c/p\u003e\n\u003ch1\u003epyproject.toml\u003c/h1\u003e\n\u003cp\u003e[tool.ruff.lint]\nselect = [\u0026quot;E4\u0026quot;, \u0026quot;E7\u0026quot;, \u0026quot;E9\u0026quot;, \u0026quot;F\u0026quot;]\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eIf you do give them a try, feel free to share your feedback in the \u003ca href=\"https://github.com/astral-sh/ruff/discussions/23203\"\u003eGitHub\ndiscussion\u003c/a\u003e!\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9d18ee9115f9cbb4c21478baa7c1fa2b46e0759c\"\u003e\u003ccode\u003e9d18ee9\u003c/code\u003e\u003c/a\u003e Hard code workflow name and \u003ccode\u003ecancel-in-progress\u003c/code\u003e only for PRs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23431\"\u003e#23431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/7cc15f024b931fe56365f40de3fab01219c092c4\"\u003e\u003ccode\u003e7cc15f0\u003c/code\u003e\u003c/a\u003e Bump 0.15.2 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23430\"\u003e#23430\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d1b544393ae9cddd8e48ebee8dbfd54bda89f375\"\u003e\u003ccode\u003ed1b5443\u003c/code\u003e\u003c/a\u003e Add extension mapping to configuration file options (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23384\"\u003e#23384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/222574af90c5c0ca8f84c8385cf30c7c10ac2496\"\u003e\u003ccode\u003e222574a\u003c/code\u003e\u003c/a\u003e Expand the default rule set (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23385\"\u003e#23385\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1465b5de3829549b45397e9587b83ab7ac6d26d0\"\u003e\u003ccode\u003e1465b5d\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003eflake8-async\u003c/code\u003e] Fix \u003ccode\u003ein_async_context\u003c/code\u003e logic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23426\"\u003e#23426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/410902fa401afda969cc000f13be341896e6868e\"\u003e\u003ccode\u003e410902f\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Fix handling of \u003ccode\u003etyping.{io,re}\u003c/code\u003e (\u003ccode\u003eUP035\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23131\"\u003e#23131\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/729610acd9e19f57526e8ca40f355626154826bb\"\u003e\u003ccode\u003e729610a\u003c/code\u003e\u003c/a\u003e [ty] Fall back to ambiguous for large control flow graphs (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23399\"\u003e#23399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1425c185b0a47be87112762f65b5bf7e323fb950\"\u003e\u003ccode\u003e1425c18\u003c/code\u003e\u003c/a\u003e [ty] Add code folding support\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/97acaaea5f993f33d3f5bb27c5db760a2f3d1e8a\"\u003e\u003ccode\u003e97acaae\u003c/code\u003e\u003c/a\u003e [ty] Fix stack overflow for self-referential \u003ccode\u003eTypeOf\u003c/code\u003e in annotations (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23407\"\u003e#23407\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/1f380c82584a6dab7e8715bc7dd5ae187da1e69a\"\u003e\u003ccode\u003e1f380c8\u003c/code\u003e\u003c/a\u003e [ty] Update tests \u003ccode\u003ereveal_type\u003c/code\u003e and \u003ccode\u003eNever\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23418\"\u003e#23418\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.14.4...0.15.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.18.2 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkivskyi\u003c/li\u003e\n\u003cli\u003eJames Hilton-Balfe\u003c/li\u003e\n\u003cli\u003ejhance\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eJukka Lehtosalo\u003c/li\u003e\n\u003cli\u003eKarelKenens\u003c/li\u003e\n\u003cli\u003eKevin Kannammalil\u003c/li\u003e\n\u003cli\u003eMarc Mueller\u003c/li\u003e\n\u003cli\u003eMichael Carlstrom\u003c/li\u003e\n\u003cli\u003eMichael J. Sullivan\u003c/li\u003e\n\u003cli\u003ePiotr Sawicki\u003c/li\u003e\n\u003cli\u003eRandolf Scholz\u003c/li\u003e\n\u003cli\u003eShantanu\u003c/li\u003e\n\u003cli\u003eSigve Sebastian Farstad\u003c/li\u003e\n\u003cli\u003esobolevn\u003c/li\u003e\n\u003cli\u003eStanislav Terliakov\u003c/li\u003e\n\u003cli\u003eStephen Morton\u003c/li\u003e\n\u003cli\u003eTheodore Ando\u003c/li\u003e\n\u003cli\u003eThiago J. Barbalho\u003c/li\u003e\n\u003cli\u003ewyattscarpenter\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eI’d also like to thank my employer, Dropbox, for supporting mypy development.\u003c/p\u003e\n\u003ch2\u003eMypy 1.18\u003c/h2\u003e\n\u003cp\u003eWe’ve just uploaded mypy 1.18.1 to the Python Package Index (\u003ca href=\"https://pypi.org/project/mypy/\"\u003ePyPI\u003c/a\u003e).\nMypy is a static type checker for Python. This release includes new features, performance\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/412c19a6bde31e7afa7f41afdf8356664689ae80\"\u003e\u003ccode\u003e412c19a\u003c/code\u003e\u003c/a\u003e Bump version to 1.19.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/20aea0a6ca0710f5427239bdd2fd8e8bf1caf634\"\u003e\u003ccode\u003e20aea0a\u003c/code\u003e\u003c/a\u003e Update changelog for 1.19.1 (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20414\"\u003e#20414\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/2b23b507524bf1bd7513eea6f2a16fb91e072cb6\"\u003e\u003ccode\u003e2b23b50\u003c/code\u003e\u003c/a\u003e Serialize raw errors in cache metas (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20372\"\u003e#20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/f60f90fb8872bf722e32aefd548daaf6d8560e05\"\u003e\u003ccode\u003ef60f90f\u003c/code\u003e\u003c/a\u003e Fail on PyPy in main instead of setup.py (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20389\"\u003e#20389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/58d485b4ea4776e0b9d4045b306cb0818ecc2aa6\"\u003e\u003ccode\u003e58d485b\u003c/code\u003e\u003c/a\u003e Fail with an explicit error on PyPy (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20384\"\u003e#20384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/a4b31a26788b70c4a2a19adbafa2bbda43dc2e8b\"\u003e\u003ccode\u003ea4b31a2\u003c/code\u003e\u003c/a\u003e Allow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20383\"\u003e#20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/8a6eff478416cd3ed3931a6ed77ce61c88ab69e9\"\u003e\u003ccode\u003e8a6eff4\u003c/code\u003e\u003c/a\u003e [mypyc] fix generator regression with empty tuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20371\"\u003e#20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/70eceea682c041c0d8e8462dffef9c7bb252e014\"\u003e\u003ccode\u003e70eceea\u003c/code\u003e\u003c/a\u003e Fix noncommutative joins with bounded TypeVars (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20345\"\u003e#20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/3890fc49bf7cc02db04b1e63eb2540aaacdeecc0\"\u003e\u003ccode\u003e3890fc4\u003c/code\u003e\u003c/a\u003e Fix crash involving Unpack-ed TypeVarTuple (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20323\"\u003e#20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/python/mypy/commit/c93d917a86993e06dcc88e508f28f4f5199ce1c8\"\u003e\u003ccode\u003ec93d917\u003c/code\u003e\u003c/a\u003e Fix crash on star import of redefinition (\u003ca href=\"https://redirect.github.com/python/mypy/issues/20333\"\u003e#20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/python/mypy/compare/v1.18.2...v1.19.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-requests` from 2.32.4.20250913 to 2.32.4.20260107\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/typeshed-internal/stub_uploader/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\nDependabot 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`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e 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)\n- `@dependabot ignore \u003cdependency name\u003e` 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)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\n\u003c/details\u003e","html_url":"https://github.com/gsimeon/adk-samples/pull/9","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/9","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/9/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":"/python/agents/short-movie-agents","pr_created_at":"2026-02-24T12:02:41.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"3983307190","node_id":"PR_kwDORXp-JM7F6U9Z","number":5,"state":"open","title":"chore(deps): bump the all-dependencies group in /python/agents/short-movie-agents with 10 updates","user":"dependabot[bot]","labels":[],"assignees":[],"locked":false,"comments_count":6,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-24T12:02:41.000Z","updated_at":"2026-05-11T02:32:19.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"all-dependencies","update_count":10,"packages":[{"name":"google-adk","old_version":"1.14.1","new_version":"1.25.1","repository_url":"https://github.com/google/adk-python"},{"name":"opentelemetry-exporter-gcp-trace","old_version":"1.9.0","new_version":"1.11.0","repository_url":"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"fastapi","old_version":"0.115.12","new_version":"0.133.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.34.1","new_version":"0.41.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"psycopg2-binary","old_version":"2.9.10","new_version":"2.9.11","repository_url":"https://github.com/psycopg/psycopg2"},{"name":"pytest","old_version":"8.3.5","new_version":"9.0.2","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"pytest-asyncio","old_version":"0.26.0","new_version":"1.3.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"mypy","old_version":"1.15.0","new_version":"1.19.1","repository_url":"https://github.com/python/mypy"},{"name":"jupyter","old_version":"1.0.0","new_version":"1.1.1"}],"path":"/python/agents/short-movie-agents","ecosystem":"pip"},"body":"Bumps the all-dependencies group in /python/agents/short-movie-agents with 10 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [google-adk](https://github.com/google/adk-python) | `1.14.1` | `1.25.1` |\n| [opentelemetry-exporter-gcp-trace](https://github.com/GoogleCloudPlatform/opentelemetry-operations-python) | `1.9.0` | `1.11.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.115.12` | `0.133.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.34.1` | `0.41.0` |\n| [psycopg2-binary](https://github.com/psycopg/psycopg2) | `2.9.10` | `2.9.11` |\n| [pytest](https://github.com/pytest-dev/pytest) | `8.3.5` | `9.0.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.26.0` | `1.3.0` |\n| [mypy](https://github.com/python/mypy) | `1.15.0` | `1.19.1` |\n| [jupyter](https://jupyter.org) | `1.0.0` | `1.1.1` |\n\nUpdates `google-adk` from 1.14.1 to 1.25.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/releases\"\u003egoogle-adk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.25.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev1.25.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/google/adk-python/blob/main/CHANGELOG.md\"\u003egoogle-adk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.25.0...v1.25.1\"\u003e1.25.1\u003c/a\u003e (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickling lock errors in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4e2d6159ae3552954aaae295fef3e09118502898\"\u003e4e2d615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/google/adk-python/compare/v1.24.1...v1.25.0\"\u003e1.25.0\u003c/a\u003e (2026-02-11)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Core]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a demo for the simple prompt optimizer for the optimization interface (\u003ca href=\"https://github.com/google/adk-python/commit/0abf4cd2c7103a071506c9398455a3bd66fe5da5\"\u003e0abf4cd\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--auto_create_session\u003c/code\u003e flag to \u003ccode\u003eadk api_server\u003c/code\u003e CLI (\u003ca href=\"https://github.com/google/adk-python/commit/40c15d059599472b40f48272a464eb3cb7345fc6\"\u003e40c15d0\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eadd_events_to_memory\u003c/code\u003e facade for event-delta (\u003ca href=\"https://github.com/google/adk-python/commit/59e88972ae4f10274444593db0607f40cfcc597e\"\u003e59e8897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd post-invocation token-threshold compaction with event retention (\u003ca href=\"https://github.com/google/adk-python/commit/a88e8647558a9b9d0bfdf38d2d8de058e3ba0596\"\u003ea88e864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd report generation to \u003ccode\u003eadk conformance test\u003c/code\u003e command (\u003ca href=\"https://github.com/google/adk-python/commit/43c437e38b9109b68a81de886d1901e4d8f87a01\"\u003e43c437e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Models]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd base_url option to Gemini LLM class (\u003ca href=\"https://github.com/google/adk-python/commit/781f605a1e5de6d77b69d7e7b9835ec6fc8de4bf\"\u003e781f605\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Tools]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnhance google credentials config to support externally passed access token (\u003ca href=\"https://github.com/google/adk-python/commit/3cf43e3842d9987499ea70d6f63d6e1c4d4a07db\"\u003e3cf43e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpdate agent simulator by improving prompts and add environment data (\u003ca href=\"https://github.com/google/adk-python/commit/7af1858f46b66fa4471c5ba7943385f2d23d08d3\"\u003e7af1858\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd a load MCP resource tool (\u003ca href=\"https://github.com/google/adk-python/commit/e25227da5e91a8c1192af709f8e8bb2a471ded92\"\u003ee25227d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd SkillToolset to adk (\u003ca href=\"https://github.com/google/adk-python/commit/8d0279251ce4fad6f0c84bd7777eb5a74f7ba07a\"\u003e8d02792\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[Web]\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e/health\u003c/code\u003e and \u003ccode\u003e/version\u003c/code\u003e endpoints to ADK web server (\u003ca href=\"https://github.com/google/adk-python/commit/25ec2c6b614cf8d185ff6dbdac5697a210be68da\"\u003e25ec2c6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse async iteration for VertexAiSessionService.list_sessions pagination (\u003ca href=\"https://github.com/google/adk-python/commit/758d337c76d877e3174c35f06551cc9beb1def06\"\u003e758d337\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix event loop closed bug in McpSessionManager (\u003ca href=\"https://github.com/google/adk-python/commit/4aa475145f196fb35fe97290dd9f928548bc737f\"\u003e4aa4751\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve thought_signature in function call conversions for interactions API integration (\u003ca href=\"https://github.com/google/adk-python/commit/20105690100d9c2f69c061ac08be5e94c50dc39c\"\u003e2010569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePropagate grounding and citation metadata in streaming responses (\u003ca href=\"https://github.com/google/adk-python/commit/e6da4172924ecc36ffc2535199c450a2a51c7bcc\"\u003ee6da417\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd endpoints to get/list artifact version metadata (\u003ca href=\"https://github.com/google/adk-python/commit/e0b9712a492bf84ac17679095b333642a79b8ee6\"\u003ee0b9712\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSupport escaped curly braces in instruction templates (\u003ca href=\"https://github.com/google/adk-python/commit/7c7d25a4a6e4389e23037e70b8efdcd5341f44ea\"\u003e7c7d25a\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrip timezone for PostgreSQL timestamps in DatabaseSessionService (\u003ca href=\"https://github.com/google/adk-python/commit/19b607684f15ce2b6ffd60382211ba5600705743\"\u003e19b6076\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrompt token may be None in streaming mode (\u003ca href=\"https://github.com/google/adk-python/commit/32ee07df01f10dbee0e98ca9d412440a7fe9163d\"\u003e32ee07d\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePass invocation_id from \u003ccode\u003e/run\u003c/code\u003e endpoint to \u003ccode\u003eRunner.run_async\u003c/code\u003e (\u003ca href=\"https://github.com/google/adk-python/commit/d2dba27134f833e5d929fdf363ada9364cc852f9\"\u003ed2dba27\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConditionally preserve function call IDs in LLM requests (\u003ca href=\"https://github.com/google/adk-python/commit/663cb75b3288d8d0649412e1009329502b21cbbc\"\u003e663cb75\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate VertexAiMemoryBankService to use the async Vertex AI client (\u003ca href=\"https://github.com/google/adk-python/commit/64a44c28974de77cf8934f9c3d1bc03691b90e7b\"\u003e64a44c2\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHandle list values in Gemini schema sanitization (\u003ca href=\"https://github.com/google/adk-python/commit/fd8a9e3962cca4f422beb7316cbe732edf726d51\"\u003efd8a9e3\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUsed logger to log instead of print in MCP (\u003ca href=\"https://github.com/google/adk-python/commit/6bc70a6bab79b679a4b18ad146b3450fb9014475\"\u003e6bc70a6\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eImprovements\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eReplace check of instance for LlmAgent with hasAttribute check (\u003ca href=\"https://github.com/google/adk-python/commit/7110336788662abb8c9bbbb0a53a50cc09130d5e\"\u003e7110336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLog exception details before re-raising in MCP session execution (\u003ca href=\"https://github.com/google/adk-python/commit/de79bf12b564a4eefc7e6a2568dbe0f08bb6efeb\"\u003ede79bf1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/7a6b62da62f56e327a7782b123129247ba1e68f7\"\u003e\u003ccode\u003e7a6b62d\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/3a1d459cd4702eda5d4267e03ad0717bd534b0c8\"\u003e\u003ccode\u003e3a1d459\u003c/code\u003e\u003c/a\u003e fix: Fix pickling lock errors in McpSessionManager\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/8cd22fb746f2ddac83ba31f7679138557a914925\"\u003e\u003ccode\u003e8cd22fb\u003c/code\u003e\u003c/a\u003e chore(version): Bump version and update changelog for 1.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/079f7a38be5c2dcae604a93a8dabc2fd60af79db\"\u003e\u003ccode\u003e079f7a3\u003c/code\u003e\u003c/a\u003e fix: Support escaped curly braces in instruction templates\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/34da2d5b26e82f96f1951334fe974a0444843720\"\u003e\u003ccode\u003e34da2d5\u003c/code\u003e\u003c/a\u003e feat: enable dependency injection for agent loader in FastAPI app gen\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/bcbfeba953d46fca731b11542a00103cef374e57\"\u003e\u003ccode\u003ebcbfeba\u003c/code\u003e\u003c/a\u003e feat: pass trace context in MCP tool call's _meta field with Otel propagator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/9dccd6a69223925ed1c452189b33a922e6934643\"\u003e\u003ccode\u003e9dccd6a\u003c/code\u003e\u003c/a\u003e feat(conformance): read report's version info from the server\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/38b4869c414c3e84616db81aafac49f41dd12fa9\"\u003e\u003ccode\u003e38b4869\u003c/code\u003e\u003c/a\u003e chore(ci): migrate release pipeline from release-please App to GitHub Actions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/657acfadbbb6f81fd489aec11061715adce7c07f\"\u003e\u003ccode\u003e657acfa\u003c/code\u003e\u003c/a\u003e docs: Add PostgreSQL session storage sample and documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/google/adk-python/commit/61c329f8ce7659574410744ab3868ca002946ed8\"\u003e\u003ccode\u003e61c329f\u003c/code\u003e\u003c/a\u003e ci: match the environment with internal ones for pyink/isort/unittest\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/google/adk-python/compare/v1.14.1...v1.25.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opentelemetry-exporter-gcp-trace` from 1.9.0 to 1.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/releases\"\u003eopentelemetry-exporter-gcp-trace's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLogging exporter support to output structured json instead of making RPCs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/440\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#440\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitored resource in logging exporter by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/445\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#445\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet upper bound on opentelemetry-sdk for logging breaking changes by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/447\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#447\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.10.0...v1.11.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev1.10.0 release\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd space to logging exporter README. Make minor update to releasing.md. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/379\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate OTLP trace example. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/386\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd telemetry endpoint to trace examples by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/395\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#395\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSetup OTel logs and events in quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/397\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#397\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate quickstart README.md by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/400\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#400\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix lint and style issues and quickstart with ruff by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/399\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#399\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse uv in instrumentation quickstart by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/402\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#402\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd microsecond precision to quickstart logs by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/401\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#401\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate go dependencies in samples/instrumentation-quickstart/integrationtest by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/403\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#403\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLangGraph console agent with instrumentation sample by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/404\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#404\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python3.7 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/408\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#408\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate Cloud Logging Exporter to handle bytes in dict body by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/407\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#407\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.4.0 to 2.5.0 in /samples/langgraph-sql-agent by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/412\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#412\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support for exponential histograms by \u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove PatchedVertexAI since the upstream bug is fixed by \u003ca href=\"https://github.com/aabmass\"\u003e\u003ccode\u003e@​aabmass\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/415\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#415\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop support for python 3.8 by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/419\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#419\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADK instrumentation sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/418\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#418\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd region tags \u0026amp; cleanup ADK Sample by \u003ca href=\"https://github.com/psx95\"\u003e\u003ccode\u003e@​psx95\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/421\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#421\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDo not write a warning log when \u003ccode\u003eLogRecord.body\u003c/code\u003e is None by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/427\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#427\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup the resource detector code a bit by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/389\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#389\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  of type \u003ccode\u003eMapping[str, List[Mapping]]\u003c/code\u003e by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/430\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#430\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute is not present. by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/417\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#417\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate logic in cloud logging exporter to handle various types in LogRecord.attributes by \u003ca href=\"https://github.com/DylanRussell\"\u003e\u003ccode\u003e@​DylanRussell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/432\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#432\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tgwizard\"\u003e\u003ccode\u003e@​tgwizard\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/pull/413\"\u003eGoogleCloudPlatform/opentelemetry-operations-python#413\u003c/a\u003e\n\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\"\u003ehttps://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.10.0\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/834331e412bd12bd699d06317b64024246b50de6\"\u003e\u003ccode\u003e834331e\u003c/code\u003e\u003c/a\u003e Release 1.11.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/d72f606bdc819c7777b0cbdfdf881fe8346ac09e\"\u003e\u003ccode\u003ed72f606\u003c/code\u003e\u003c/a\u003e Update adk sample to use --otel_to_cloud instead of custom main.py (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/446\"\u003e#446\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6886ff73b52332b5e9f60be3224d55989b98bf0f\"\u003e\u003ccode\u003e6886ff7\u003c/code\u003e\u003c/a\u003e Set upper bound on opentelemetry-sdk for logging breaking changes (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/447\"\u003e#447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/74f1389b08eeaec59b59e021930844842088a618\"\u003e\u003ccode\u003e74f1389\u003c/code\u003e\u003c/a\u003e Add temporary support for \u003ccode\u003eaiplatform.googleapis.com/ReasoningEngine\u003c/code\u003e monitor...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/c9ae87a72291589e9a15d8b69d74fecfeb19047a\"\u003e\u003ccode\u003ec9ae87a\u003c/code\u003e\u003c/a\u003e Logging exporter support to output structured json instead of making RPCs (\u003ca href=\"https://redirect.github.com/GoogleCloudPlatform/opentelemetry-operations-python/issues/440\"\u003e#440\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/58f22f328fa9ea51385c350a877626975dc327d4\"\u003e\u003ccode\u003e58f22f3\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 2/2) bump version to 1.11.0.dev0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/6358cf56263a875224c3db7fee79b40144866f15\"\u003e\u003ccode\u003e6358cf5\u003c/code\u003e\u003c/a\u003e Release 1.10.0 (Part 1/2) release commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/ed247f5074ba5f2d1c5ab9a2e410e4f29dfc21f5\"\u003e\u003ccode\u003eed247f5\u003c/code\u003e\u003c/a\u003e Update logic in cloud logging exporter to handle various types in LogRecord.a...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/837543f1b6d030625460352b10afa302faab4f0f\"\u003e\u003ccode\u003e837543f\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003eLogRecord.event_name\u003c/code\u003e to set the log ID when the gcp log name attribute ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/commit/f4a864a4a4640cd1d88e4312782398569cbb64e2\"\u003e\u003ccode\u003ef4a864a\u003c/code\u003e\u003c/a\u003e Update cloud logging exporter to correctly handle when \u003ccode\u003eLogRecord.body\u003c/code\u003e is  o...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GoogleCloudPlatform/opentelemetry-operations-python/compare/v1.9.0...v1.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.115.12 to 0.133.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.133.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Add support for Starlette 1.0.0+. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14987\"\u003e#14987\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14986\"\u003e#14986\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e👥 Update FastAPI People - Experts. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14972\"\u003e#14972\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Allow skipping \u003ccode\u003ebenchmark\u003c/code\u003e job in \u003ccode\u003etest\u003c/code\u003e workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14974\"\u003e#14974\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.132.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔒️ Add \u003ccode\u003estrict_content_type\u003c/code\u003e checking for JSON requests. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14978\"\u003e#14978\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eNow FastAPI checks, by default, that JSON requests have a \u003ccode\u003eContent-Type\u003c/code\u003e header with a valid JSON value, like \u003ccode\u003eapplication/json\u003c/code\u003e, and rejects requests that don't.\u003c/li\u003e\n\u003cli\u003eIf the clients for your app don't send a valid \u003ccode\u003eContent-Type\u003c/code\u003e header you can disable this with \u003ccode\u003estrict_content_type=False\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eCheck the new docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/strict-content-type/\"\u003eStrict Content-Type Checking\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆ Bump flask from 3.1.2 to 3.1.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14949\"\u003e#14949\u003c/a\u003e by \u003ca href=\"https://github.com/apps/dependabot\"\u003e\u003ccode\u003e@​dependabot[bot]\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e⬆ Update all dependencies to use \u003ccode\u003egriffelib\u003c/code\u003e instead of \u003ccode\u003egriffe\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14973\"\u003e#14973\u003c/a\u003e by \u003ca href=\"https://github.com/svlandeg\"\u003e\u003ccode\u003e@​svlandeg\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Fix \u003ccode\u003eFastAPI People\u003c/code\u003e workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14951\"\u003e#14951\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Do not run codspeed with coverage as it's not tracked. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14966\"\u003e#14966\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Do not include benchmark tests in coverage to speed up coverage processing. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14965\"\u003e#14965\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.131.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🗑️ Deprecate \u003ccode\u003eORJSONResponse\u003c/code\u003e and \u003ccode\u003eUJSONResponse\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14964\"\u003e#14964\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.130.0\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✨ Serialize JSON response with Pydantic (in Rust), when there's a Pydantic return type or response model. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14962\"\u003e#14962\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\n\u003cul\u003e\n\u003cli\u003eThis results in 2x (or more) performance increase for JSON responses.\u003c/li\u003e\n\u003cli\u003eNew docs: \u003ca href=\"https://fastapi.tiangolo.com/advanced/custom-response/#json-performance\"\u003eCustom Response - JSON Performance\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.129.2\u003c/h2\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade pytest. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14959\"\u003e#14959\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Fix CI, do not attempt to publish \u003ccode\u003efastapi-slim\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14958\"\u003e#14958\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003efastapi-slim\u003c/code\u003e, no more versions will be released, use only \u003ccode\u003e\u0026quot;fastapi[standard]\u0026quot;\u003c/code\u003e or \u003ccode\u003efastapi\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14957\"\u003e#14957\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Update pyproject.toml, remove unneeded lines. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14956\"\u003e#14956\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/daba0aa328c862dd15589ea5e3157e07aaa9679d\"\u003e\u003ccode\u003edaba0aa\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.133.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0c3581d5c45dd7603b01a2401c7783a2abfb362e\"\u003e\u003ccode\u003e0c3581d\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c73bc945374cdabc6ce84bff7b172a2e7056350e\"\u003e\u003ccode\u003ec73bc94\u003c/code\u003e\u003c/a\u003e ⬆️ Add support for Starlette 1.0.0+ (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14987\"\u003e#14987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6c6883861516ac680485549053f389185e704394\"\u003e\u003ccode\u003e6c68838\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.132.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/29d082ba24cbf0911c677c657e84a3674a688c00\"\u003e\u003ccode\u003e29d082b\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2686c7fbbf9abb17902a2981a9d9fca01f5117b8\"\u003e\u003ccode\u003e2686c7f\u003c/code\u003e\u003c/a\u003e ♻️ Refactor logic to handle OpenAPI and Swagger UI escaping data (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14986\"\u003e#14986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/2f9c914d440e99fe8b62646b51e4d24c5bcd858b\"\u003e\u003ccode\u003e2f9c914\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/0cf27ecf8826ab8d1c8c21a4b9883ddae480d2a8\"\u003e\u003ccode\u003e0cf27ec\u003c/code\u003e\u003c/a\u003e 👥 Update FastAPI People - Experts (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14972\"\u003e#14972\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3f30ca1a5e2ed4cca1f8102b39a40e56151a018e\"\u003e\u003ccode\u003e3f30ca1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6af38321261afde391dd28f60ec0dab9c15f0629\"\u003e\u003ccode\u003e6af3832\u003c/code\u003e\u003c/a\u003e 👷 Allow skipping \u003ccode\u003ebenchmark\u003c/code\u003e job in \u003ccode\u003etest\u003c/code\u003e workflow (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14974\"\u003e#14974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.115.12...0.133.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `uvicorn` from 0.34.1 to 0.41.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/releases\"\u003euvicorn's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.41.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/t-kawasumi\"\u003e\u003ccode\u003e@​t-kawasumi\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2776\"\u003eKludex/uvicorn#2776\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fardyn\"\u003e\u003ccode\u003e@​fardyn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2800\"\u003eKludex/uvicorn#2800\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ewie\"\u003e\u003ccode\u003e@​ewie\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2807\"\u003eKludex/uvicorn#2807\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/shevron\"\u003e\u003ccode\u003e@​shevron\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2788\"\u003eKludex/uvicorn#2788\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jonashaag\"\u003e\u003ccode\u003e@​jonashaag\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2707\"\u003eKludex/uvicorn#2707\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.40.0...0.41.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.40.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDrop Python 3.9 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2772\"\u003eKludex/uvicorn#2772\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.39.0...0.40.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.39.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eexplicitly start ASGI run with empty context by \u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(websockets): Send close frame on ASGI return by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2769\"\u003eKludex/uvicorn#2769\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pmeier\"\u003e\u003ccode\u003e@​pmeier\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2742\"\u003eKludex/uvicorn#2742\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\"\u003ehttps://github.com/Kludex/uvicorn/compare/0.38.0...0.39.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.38.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/uvicorn/pull/2723\"\u003eKludex/uvicorn#2723\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/uvicorn/blob/main/docs/release-notes.md\"\u003euvicorn's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.41.0 (February 16, 2026)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd socket path to \u003ccode\u003escope[\u0026quot;server\u0026quot;]\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRename \u003ccode\u003eLifespanOn.error_occured\u003c/code\u003e to \u003ccode\u003eerror_occurred\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2776\"\u003e#2776\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eEnsure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.40.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eRemove\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eDrop support for Python 3.9 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2772\"\u003e#2772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.39.0 (December 21, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSend close frame on ASGI return for WebSockets (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2769\"\u003e#2769\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExplicitly start ASGI run with empty context (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2742\"\u003e#2742\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.38.0 (October 18, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2723\"\u003e#2723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.37.0 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eAdded\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e--timeout-worker-healthcheck\u003c/code\u003e option (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2711\"\u003e#2711\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eos.PathLike[str]\u003c/code\u003e type to \u003ccode\u003essl_ca_certs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2676\"\u003e#2676\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.1 (September 23, 2025)\u003c/h2\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRaise an exception when calling removed \u003ccode\u003eConfig.setup_event_loop()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2709\"\u003e#2709\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.36.0 (September 20, 2025)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/9283c0f15cfa82307f57daba4d1b1880902adfb2\"\u003e\u003ccode\u003e9283c0f\u003c/code\u003e\u003c/a\u003e Version 0.41.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2821\"\u003e#2821\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a01a33eb8f3ac044cab5964421b9aa308a2bcfca\"\u003e\u003ccode\u003ea01a33e\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003e--limit-max-requests-jitter\u003c/code\u003e to stagger worker restarts (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2707\"\u003e#2707\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/2ce65bde1509faa958775df8153bdeb5dbaf6f58\"\u003e\u003ccode\u003e2ce65bd\u003c/code\u003e\u003c/a\u003e Ignore permission denied errors in watchfiles reloader (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2817\"\u003e#2817\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/654f2ed7d7c1a014116d8662e6544f5309375137\"\u003e\u003ccode\u003e654f2ed\u003c/code\u003e\u003c/a\u003e Ensure lifespan shutdown runs when \u003ccode\u003eshould_exit\u003c/code\u003e is set during startup (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2812\"\u003e#2812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/a03d9f6f0e99383c76934a82def5a83aeb6b0a47\"\u003e\u003ccode\u003ea03d9f6\u003c/code\u003e\u003c/a\u003e Reduce the log level of 'request limit exceeded' messages (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2788\"\u003e#2788\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/e377de40d0a2a1b1d9f55483ee4c1cceb2474502\"\u003e\u003ccode\u003ee377de4\u003c/code\u003e\u003c/a\u003e Add socket path to scope[\u0026quot;server\u0026quot;] (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2561\"\u003e#2561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/0779f7f8a4df1cc98433eb30d69027499a0cb7f8\"\u003e\u003ccode\u003e0779f7f\u003c/code\u003e\u003c/a\u003e Poll for readiness in \u003ccode\u003etest_multiprocess_health_check\u003c/code\u003e and \u003ccode\u003erun_server\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2816\"\u003e#2816\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7e9ce2c974f1d78d192e81caa7890e2bbae8e711\"\u003e\u003ccode\u003e7e9ce2c\u003c/code\u003e\u003c/a\u003e Poll for PID changes in \u003ccode\u003etest_multiprocess_sighup\u003c/code\u003e instead of fixed sleep (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2\"\u003e#2\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/99f0d8734d441bf4a1467093766c779a5a1c9868\"\u003e\u003ccode\u003e99f0d87\u003c/code\u003e\u003c/a\u003e Fix grep warning in scripts/sync-version (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2807\"\u003e#2807\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/7ae2e6375a90b2e6a3370aa252f5ac2dc06ab892\"\u003e\u003ccode\u003e7ae2e63\u003c/code\u003e\u003c/a\u003e chore(deps): bump the python-packages group with 18 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2801\"\u003e#2801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.34.1...0.41.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `psycopg2-binary` from 2.9.10 to 2.9.11\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psycopg/psycopg2/blob/master/NEWS\"\u003epsycopg2-binary's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eCurrent release\u003c/h2\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.11\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.14.\u003c/li\u003e\n\u003cli\u003eAvoid a segfault passing more arguments than placeholders if Python is built\nwith assertions enabled (:ticket:\u003ccode\u003e[#1791](https://github.com/psycopg/psycopg2/issues/1791)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eAdd riscv64 platform binary packages (:ticket:\u003ccode\u003e[#1813](https://github.com/psycopg/psycopg2/issues/1813)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 18.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.8.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.10\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.13.\u003c/li\u003e\n\u003cli\u003eReceive notifications on commit (:ticket:\u003ccode\u003e[#1728](https://github.com/psycopg/psycopg2/issues/1728)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e~psycopg2.errorcodes\u003c/code\u003e map and \u003ccode\u003e~psycopg2.errors\u003c/code\u003e classes updated to\nPostgreSQL 17.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.7.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.9\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for Python 3.12.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.6.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.8\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWheel package bundled with PostgreSQL 16 libpq in order to add support for\nrecent features, such as \u003ccode\u003esslcertmode\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.7\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix propagation of exceptions raised during module initialization\n(:ticket:\u003ccode\u003e[#1598](https://github.com/psycopg/psycopg2/issues/1598)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eFix building when pg_config returns an empty string (:ticket:\u003ccode\u003e[#1599](https://github.com/psycopg/psycopg2/issues/1599)\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eWheel package bundled with OpenSSL 1.1.1v.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWhat's new in psycopg 2.9.6\n^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/fd9ae8cad2bcfc3e7e9410e7b6f07cda8f4f05ec\"\u003e\u003ccode\u003efd9ae8c\u003c/code\u003e\u003c/a\u003e chore: bump to version 2.9.11\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d923840546942534f0956d9202f914fd9feac5fd\"\u003e\u003ccode\u003ed923840\u003c/code\u003e\u003c/a\u003e chore: update docs requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/d42dc7169d3cd93517e282e9ef5dc2a2b40650a2\"\u003e\u003ccode\u003ed42dc71\u003c/code\u003e\u003c/a\u003e Merge branch 'fix-1791'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4fde6560c32f06ad1304404c9f7f86148dcc4be0\"\u003e\u003ccode\u003e4fde656\u003c/code\u003e\u003c/a\u003e fix: avoid failed assert passing more arguments than placeholders\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/8308c19d6af0d904b313997539ed33415990a74e\"\u003e\u003ccode\u003e8308c19\u003c/code\u003e\u003c/a\u003e fix: drop warning about the use of deprecated PyWeakref_GetObject function\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1a1eabf098a3374409bb2ab4b594777b900f396d\"\u003e\u003ccode\u003e1a1eabf\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/github-script from 7 to 8\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/897af8b38beda851d7257dfc525129e37c0ec9e0\"\u003e\u003ccode\u003e897af8b\u003c/code\u003e\u003c/a\u003e build(deps): bump peter-evans/repository-dispatch from 3 to 4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/ceefd305117113ca10e383a626e87ba0796f3638\"\u003e\u003ccode\u003eceefd30\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/checkout from 4 to 5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/4dc585430cabe94cee96c5a9de0265d0f55370f1\"\u003e\u003ccode\u003e4dc5854\u003c/code\u003e\u003c/a\u003e build(deps): bump actions/setup-python from 5 to 6\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psycopg/psycopg2/commit/1945788dcf6172bb1b9328ebc3587ccf0e6a659c\"\u003e\u003ccode\u003e1945788\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/psycopg/psycopg2/issues/1802\"\u003e#1802\u003c/a\u003e from edgarrmondragon/cp314-wheels\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psycopg/psycopg2/compare/2.9.10...2.9.11\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest` from 8.3.5 to 9.0.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest/releases\"\u003epytest's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e9.0.2\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.2 (2025-12-06)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress feature added in pytest 9.0.0 has been disabled by default, except on Windows, due to compatibility issues with some terminal emulators.\u003c/p\u003e\n\u003cp\u003eYou may enable it again by passing \u003ccode\u003e-p terminalprogress\u003c/code\u003e. We may enable it by default again once compatibility improves in the future.\u003c/p\u003e\n\u003cp\u003eAdditionally, when the environment variable \u003ccode\u003eTERM\u003c/code\u003e is \u003ccode\u003edumb\u003c/code\u003e, the escape codes are no longer emitted, even if the plugin is enabled.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the \u003ccode\u003etmp_path_retention_count\u003c/code\u003e settings in the API reference from number to string.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13946\"\u003e#13946\u003c/a\u003e: The private \u003ccode\u003econfig.inicfg\u003c/code\u003e attribute was changed in a breaking manner in pytest 9.0.0.\nDue to its usage in the ecosystem, it is now restored to working order using a compatibility shim.\nIt will be deprecated in pytest 9.1 and removed in pytest 10.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13965\"\u003e#13965\u003c/a\u003e: Fixed quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eImproved documentation\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/4492\"\u003e#4492\u003c/a\u003e: The API Reference now contains cross-reference-able documentation of \u003ccode\u003epytest's command-line flags \u0026lt;command-line-flags\u0026gt;\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e9.0.1\u003c/h2\u003e\n\u003ch1\u003epytest 9.0.1 (2025-11-12)\u003c/h1\u003e\n\u003ch2\u003eBug fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13895\"\u003e#13895\u003c/a\u003e: Restore support for skipping tests via \u003ccode\u003eraise unittest.SkipTest\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13896\"\u003e#13896\u003c/a\u003e: The terminal progress plugin added in pytest 9.0 is now automatically disabled when iTerm2 is detected, it generated desktop notifications instead of the desired functionality.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13904\"\u003e#13904\u003c/a\u003e: Fixed the TOML type of the verbosity settings in the API reference from number to string.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13910\"\u003e#13910\u003c/a\u003e: Fixed \u003c!-- raw HTML omitted --\u003eUserWarning: Do not expect file_or_dir\u003c!-- raw HTML omitted --\u003e on some earlier Python 3.12 and 3.13 point versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePackaging updates and notes for downstreams\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributor-facing changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13891\"\u003e#13891\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13942\"\u003e#13942\u003c/a\u003e: The CI/CD part of the release automation is now capable of\ncreating GitHub Releases without having a Git checkout on\ndisk -- by \u003ccode\u003ebluetech\u003c/code\u003e and \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13933\"\u003e#13933\u003c/a\u003e: The tox configuration has been adjusted to make sure the desired\nversion string can be passed into its \u003ccode\u003epackage_env\u003c/code\u003e through\nthe \u003ccode\u003eSETUPTOOLS_SCM_PRETEND_VERSION_FOR_PYTEST\u003c/code\u003e environment\nvariable as a part of the release process -- by \u003ccode\u003ewebknjaz\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/3d10b5148e03eb82b3ee29181dbdc73cf82699e2\"\u003e\u003ccode\u003e3d10b51\u003c/code\u003e\u003c/a\u003e Prepare release version 9.0.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/188750b725add8c3400eee6fbb6b80559c296d69\"\u003e\u003ccode\u003e188750b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14030\"\u003e#14030\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/1e4b01d1f...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/b7d7bef90cb9a6db8ac1d3dd5b9ae0eb9abd6c58\"\u003e\u003ccode\u003eb7d7bef\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14014\"\u003e#14014\u003c/a\u003e from bluetech/compat-note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bd08e85ac76614ff5ca9ae338aee8d8b06c8fae0\"\u003e\u003ccode\u003ebd08e85\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14013\"\u003e#14013\u003c/a\u003e from pytest-dev/patchback/backports/9.0.x/922b60377...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/bc783862991241c442c9f9c068e51737ec15ea10\"\u003e\u003ccode\u003ebc78386\u003c/code\u003e\u003c/a\u003e Add CLI options reference documentation (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13930\"\u003e#13930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/5a4e398ce89bc23d2cf3fd98c042fdffb6fa8afa\"\u003e\u003ccode\u003e5a4e398\u003c/code\u003e\u003c/a\u003e Fix docs typo (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14005\"\u003e#14005\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14008\"\u003e#14008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/d7ae6df394398168bf9d926f803c26849c8f07ee\"\u003e\u003ccode\u003ed7ae6df\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14006\"\u003e#14006\u003c/a\u003e from pytest-dev/maintenance/update-plugin-list-tmpl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/556f6a22e12d13d1ffeceaf64424eb95d5e0fb87\"\u003e\u003ccode\u003e556f6a2\u003c/code\u003e\u003c/a\u003e pre-commit: fix rst-lint after new release (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13999\"\u003e#13999\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/14001\"\u003e#14001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/c60fbe63a26f64a42738e3f3527a8f79024fdf50\"\u003e\u003ccode\u003ec60fbe6\u003c/code\u003e\u003c/a\u003e Fix quadratic-time behavior when handling \u003ccode\u003eunittest\u003c/code\u003e subtests in Python 3.10 ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest/commit/73d9b011183d9a1c4a7007c1119d97a6e627788e\"\u003e\u003ccode\u003e73d9b01\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pytest-dev/pytest/issues/13995\"\u003e#13995\u003c/a\u003e from nicoddemus/patchback/backports/9.0.x/1b5200c0f...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest/compare/8.3.5...9.0.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.26.0 to 1.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 1.3.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.3.0\"\u003e1.3.0\u003c/a\u003e - 2025-11-10\u003c/h1\u003e\n\u003ch2\u003eRemoved\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for Python 3.9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1278\"\u003e#1278\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for pytest 9 (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1279\"\u003e#1279\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eTested Python versions include free threaded Python 3.14t (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1274\"\u003e#1274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTests are run in the same pytest process, instead of spawning a subprocess with \u003ccode\u003epytest.Pytester.runpytest_subprocess\u003c/code\u003e. This prevents the test suite from accidentally using a system installation of pytest-asyncio, which could result in test errors. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1275\"\u003e#1275\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.2.0\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/1.2.0\"\u003e1.2.0\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003e--asyncio-debug\u003c/code\u003e CLI option and \u003ccode\u003easyncio_debug\u003c/code\u003e configuration option to enable asyncio debug mode for the default event loop. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/980\"\u003e#980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eA \u003ccode\u003epytest.UsageError\u003c/code\u003e for invalid configuration values of \u003ccode\u003easyncio_default_fixture_loop_scope\u003c/code\u003e and \u003ccode\u003easyncio_default_test_loop_scope\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1189\"\u003e#1189\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCompatibility with the Pyright type checker (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/731\"\u003e#731\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eFixed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eRuntimeError: There is no current event loop in thread 'MainThread'\u003c/code\u003e when any test unsets the event loop (such as when using \u003ccode\u003easyncio.run\u003c/code\u003e and \u003ccode\u003easyncio.Runner\u003c/code\u003e). (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1177\"\u003e#1177\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecation warning when decorating an asynchronous fixture with \u003ccode\u003e@pytest.fixture\u003c/code\u003e in [strict]{.title-ref} mode. The warning message now refers to the correct package. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1198\"\u003e#1198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump the minimum required version of tox to v4.28. This change is only relevant if you use the \u003ccode\u003etox.ini\u003c/code\u003e file provided by pytest-asyncio to run tests.\u003c/li\u003e\n\u003cli\u003eExtend dependency on typing-extensions\u0026gt;=4.12 from Python\u0026lt;3.10 to Python\u0026lt;3.13.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 1.1.1\u003c/h2\u003e\n\u003ch1\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/tree/v1.1.1\"\u003ev1.1.1\u003c/a\u003e - 2025-09-12\u003c/h1\u003e\n\u003ch2\u003eNotes for Downstream Packagers\u003c/h2\u003e\n\u003cp\u003e- Addresses a build problem with setuptoos-scm \u0026gt;= 9 caused by invalid setuptools-scm configuration in pytest-asyncio. (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1192\"\u003e#1192\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003epytest-asyncio 1.1.0\u003c/h2\u003e\n\u003ch1\u003eAdded\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003ePropagation of ContextVars from async fixtures to other fixtures and tests on Python 3.10 and older (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/127\"\u003e#127\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCancellation of tasks when the \u003ccode\u003eloop_scope\u003c/code\u003e ends (\u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/200\"\u003e#200\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWarning when the current event loop is closed by a test\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eFixed\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/2e9695fcf8c5c514f30f57b7d14ab83846357b96\"\u003e\u003ccode\u003e2e9695f\u003c/code\u003e\u003c/a\u003e docs: Compile changelog for v1.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/dd0e9ba3fa672fd6bf375004319742f8d3a50e12\"\u003e\u003ccode\u003edd0e9ba\u003c/code\u003e\u003c/a\u003e docs: Reference correct issue in news fragment.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4c31abe5bf46bca3c9bdc7b18405f3deba4145d0\"\u003e\u003ccode\u003e4c31abe\u003c/code\u003e\u003c/a\u003e Build(deps): Bump nh3 from 0.3.1 to 0.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/13e94770d7bb146c329ae0e02486c0a6b38f3772\"\u003e\u003ccode\u003e13e9477\u003c/code\u003e\u003c/a\u003e Link to migration guides from changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4d2cf3c36f47d7c4d563d401cdf229b35da34fbe\"\u003e\u003ccode\u003e4d2cf3c\u003c/code\u003e\u003c/a\u003e tests: handle Python 3.14 DefaultEventLoopPolicy deprecation warnings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/ee3549b6efb729b934e370e2be8040b25b034010\"\u003e\u003ccode\u003eee3549b\u003c/code\u003e\u003c/a\u003e test: Remove obsolete test for the event_loop fixture.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/7a67c82c5ae548f0968438e9dfa0f282d51c4597\"\u003e\u003ccode\u003e7a67c82\u003c/code\u003e\u003c/a\u003e tests: Fix failing test by preventing warning conversion to error.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/a17b689a750d05b6fc9369f5fb2b06baaba83536\"\u003e\u003ccode\u003ea17b689\u003c/code\u003e\u003c/a\u003e test: add pytest config to isolated test directories\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/18afc9df5a3153dc1fbdc4e11a56517ef95480df\"\u003e\u003ccode\u003e18afc9d\u003c/code\u003e\u003c/a\u003e fix(tests): replace runpytest_subprocess with runpytest\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cdc6bd1de75b4738289eafd546f5e27a0bfd3b41\"\u003e\u003ccode\u003ecdc6bd1\u003c/code\u003e\u003c/a\u003e Add support for pytest 9 and drop Python 3.9 support\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.26.0...v1.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.15.0 to 1.19.1\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/python/mypy/blob/master/CHANGELOG.md\"\u003emypy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch3\u003eMypy 1.19.1\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix noncommutative joins with bounded TypeVars (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20345\"\u003e20345\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRespect output format for cached runs by serializing raw errors in cache metas (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20372\"\u003e20372\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003etypes.NoneType\u003c/code\u003e in match cases (A5rocks, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20383\"\u003e20383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix mypyc generator regression with empty tuple (BobTheBuidler, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20371\"\u003e20371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash involving Unpack-ed TypeVarTuple (Shantanu, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20323\"\u003e20323\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on star import of redefinition (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20333\"\u003e20333\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix crash on typevar with forward ref used in other module (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20334\"\u003e20334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFail with an explicit error on PyPy (Ivan Levkivskyi, PR \u003ca href=\"https://redirect.github.com/python/mypy/pull/20389\"\u003e20389\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eAcknowledgements\u003c/h3\u003e\n\u003cp\u003eThanks to all mypy contributors who contributed to this release:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA5rocks\u003c/li\u003e\n\u003cli\u003eBobTheBuidler\u003c/li\u003e\n\u003cli\u003ebzoracler\u003c/li\u003e\n\u003cli\u003eChainfire\u003c/li\u003e\n\u003cli\u003eChristoph Tyralla\u003c/li\u003e\n\u003cli\u003eDavid Foster\u003c/li\u003e\n\u003cli\u003eFrank Dana\u003c/li\u003e\n\u003cli\u003eGuo Ci\u003c/li\u003e\n\u003cli\u003eiap\u003c/li\u003e\n\u003cli\u003eIvan Levkiv...\n\n_Description has been truncated_","html_url":"https://github.com/gsimeon/adk-samples/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/gsimeon%2Fadk-samples/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":null,"pr_created_at":"2026-02-09T09:44:24.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"3915453234","node_id":"PR_kwDOPTwklM7CbxSd","number":384,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 17 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-09T09:44:24.000Z","updated_at":"2026-02-17T13:47:28.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":17,"packages":[{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.2.2","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"numpy","old_version":"2.3.5","new_version":"2.4.2","repository_url":"https://github.com/numpy/numpy"},{"name":"authlib","old_version":"1.6.6","new_version":"1.6.7","repository_url":"https://github.com/authlib/authlib"},{"name":"cryptography","old_version":"46.0.3","new_version":"46.0.4","repository_url":"https://github.com/pyca/cryptography"},{"name":"google-cloud-monitoring","old_version":"2.28.0","new_version":"2.29.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"opencv-python","old_version":"4.12.0.88","new_version":"4.13.0.92","repository_url":"https://github.com/opencv/opencv-python"},{"name":"scipy","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"supabase","old_version":"2.25.1","new_version":"2.27.3","repository_url":"https://github.com/supabase/supabase-py"},{"name":"pytest-asyncio","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"celery","old_version":"5.6.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.9.1","new_version":"2.10.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"fastapi","old_version":"0.124.4","new_version":"0.128.5","repository_url":"https://github.com/fastapi/fastapi"},{"name":"torchvision","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/pytorch/vision"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 17 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.2.2` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.4.2` |\n| [authlib](https://github.com/authlib/authlib) | `1.6.6` | `1.6.7` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.3` | `46.0.4` |\n| [google-cloud-monitoring](https://github.com/googleapis/google-cloud-python) | `2.28.0` | `2.29.1` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [opencv-python](https://github.com/opencv/opencv-python) | `4.12.0.88` | `4.13.0.92` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.3` | `1.17.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.25.1` | `2.27.3` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.25.2` | `0.26.0` |\n| [celery](https://github.com/celery/celery) | `5.6.0` | `5.6.2` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.9.1` | `2.10.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.4` | `0.128.5` |\n| [torchvision](https://github.com/pytorch/vision) | `0.24.1` | `0.25.0` |\n\n\nUpdates `werkzeug` from 3.1.4 to 3.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.5/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/43?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/43?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless of extension or surrounding spaces. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-87hc-h4r5-73f7\"\u003eGHSA-87hc-h4r5-73f7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary. This fixes the previous attempt, which caused incorrect content lengths. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3077\"\u003e#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with \u003ccode\u003epin_security=False\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3075\"\u003e#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2026-01-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless\nof extension or surrounding spaces. :ghsa:\u003ccode\u003e87hc-h4r5-73f7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary.\nThis fixes the previous attempt, which caused incorrect content lengths.\n:issue:\u003ccode\u003e3065\u003c/code\u003e :issue:\u003ccode\u003e3077\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with\n\u003ccode\u003epin_security=False\u003c/code\u003e. :issue:\u003ccode\u003e3075\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/e3d06f4b1f7ff40a63eba78f81d9cda18f805d6d\"\u003e\u003ccode\u003ee3d06f4\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7ae1d254e04a0c33e241ac1cca4783ce6c875ca3\"\u003e\u003ccode\u003e7ae1d25\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/37797aba260022c871718e0908b472727d366d09\"\u003e\u003ccode\u003e37797ab\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esafe_join\u003c/code\u003e prevents windows special device names with compound extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3db44c79caa74c00848ceefb0bd3d608e3d09cea\"\u003e\u003ccode\u003e3db44c7\u003c/code\u003e\u003c/a\u003e fix duplicate reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/a40f8fa05ff1108ba1096e7cd359d0599f5cd386\"\u003e\u003ccode\u003ea40f8fa\u003c/code\u003e\u003c/a\u003e fix class name typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/0f76c353b10afc2f8129aa3684ccc3262516a0c0\"\u003e\u003ccode\u003e0f76c35\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3081\"\u003e#3081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/1049dd6b2a363e1ef302b4161c340fb8582f627a\"\u003e\u003ccode\u003e1049dd6\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b48878cf16dfca3c89ac58aca47ab1ecfcb71354\"\u003e\u003ccode\u003eb48878c\u003c/code\u003e\u003c/a\u003e initialize \u003ccode\u003e_pin\u003c/code\u003e in debugger (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/fa0f4f2710b8eaffef7f2b3fbc58fc3ca55247fb\"\u003e\u003ccode\u003efa0f4f2\u003c/code\u003e\u003c/a\u003e initialize _pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f637275bfa68ebd80bec1da9173211ce2dc4fa33\"\u003e\u003ccode\u003ef637275\u003c/code\u003e\u003c/a\u003e start version 3.1.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.4...3.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentence-transformers` from 5.2.0 to 5.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/sentence-transformers/releases\"\u003esentence-transformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.2.2 - Replace mandatory \u003ccode\u003erequests\u003c/code\u003e dependency with optional \u003ccode\u003ehttpx\u003c/code\u003e dependency\u003c/h2\u003e\n\u003cp\u003eThis patch release replaces mandatory \u003ccode\u003erequests\u003c/code\u003e dependency with an optional \u003ccode\u003ehttpx\u003c/code\u003e dependency.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\npip install sentence-transformers[train]==5.2.2\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.2.2\npip install sentence-transformers[onnx-gpu]==5.2.2\npip install sentence-transformers[onnx]==5.2.2\npip install sentence-transformers[openvino]==5.2.2\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eTransformers v5 Support\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/huggingface/transformers/releases/tag/v5.0.0\"\u003eTransformers v5.0\u003c/a\u003e and its required \u003ccode\u003ehuggingface_hub\u003c/code\u003e versions have dropped support of \u003ccode\u003erequests\u003c/code\u003e in favor of \u003ccode\u003ehttpx\u003c/code\u003e. The former was also used in \u003ccode\u003esentence-transformers\u003c/code\u003e, but not listed explicitly as a dependency. This patch removes the use of \u003ccode\u003erequests\u003c/code\u003e in favor of \u003ccode\u003ehttpx\u003c/code\u003e, although it's now optional and not automatically imported. This should also save some import time.\u003c/p\u003e\n\u003cp\u003eImporting Sentence Transformers should now not crash if \u003ccode\u003erequests\u003c/code\u003e is not installed.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003edeps\u003c/code\u003e] Replace requests dependency with optional httpx dependency by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3618\"\u003ehuggingface/sentence-transformers#3618\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.1...v5.2.2\"\u003ehttps://github.com/huggingface/sentence-transformers/compare/v5.2.1...v5.2.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.2.1 - Joint Transformers v4 and v5 compatibility\u003c/h2\u003e\n\u003cp\u003eThis patch release adds support for the full \u003ca href=\"https://github.com/huggingface/transformers/releases/tag/v5.0.0\"\u003eTransformers v5 release\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eInstall this version with\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# Training + Inference\npip install sentence-transformers[train]==5.2.1\n\u003ch1\u003eInference only, use one of:\u003c/h1\u003e\n\u003cp\u003epip install sentence-transformers==5.2.1\npip install sentence-transformers[onnx-gpu]==5.2.1\npip install sentence-transformers[onnx]==5.2.1\npip install sentence-transformers[openvino]==5.2.1\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003ch2\u003eTransformers v5 Support\u003c/h2\u003e\n\u003cp\u003eSentence Transformers v5.2.0 already introduced support for the Transformers v5.0 release candidates, but this release is adding support for the full release. The intention is to maintain backward compatibility with v4.x. The library includes dual CI testing for both version for now, allowing users to upgrade to the newest Transformers features when ready. In future versions, Sentence Transformers may start requiring Transformers v5.0 or higher.\u003c/p\u003e\n\u003ch2\u003eAll Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIntroduce compatibility with transformers 5.0.0rc01 by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3597\"\u003ehuggingface/sentence-transformers#3597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSpecify numpy manually in dependencies, as it's directly used/imported by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3608\"\u003ehuggingface/sentence-transformers#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand test suite to full transformers v5 by \u003ca href=\"https://github.com/tomaarsen\"\u003e\u003ccode\u003e@​tomaarsen\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/pull/3615\"\u003ehuggingface/sentence-transformers#3615\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/f7f750689c83a1148b85ddf1ba5f4bea09e8ceaf\"\u003e\u003ccode\u003ef7f7506\u003c/code\u003e\u003c/a\u003e Release v5.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/c78ecf35a1b4beee64100629b34d55d459dd22fa\"\u003e\u003ccode\u003ec78ecf3\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003edeps\u003c/code\u003e] Replace requests dependency with optional httpx dependency (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3618\"\u003e#3618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/18ec0d60b5d4a4fb6d83476c095ca0641a363c25\"\u003e\u003ccode\u003e18ec0d6\u003c/code\u003e\u003c/a\u003e Release v5.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/9db10fe097194c0486899ec6b563943248d332d0\"\u003e\u003ccode\u003e9db10fe\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003ecompat\u003c/code\u003e] Expand test suite to full transformers v5 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3615\"\u003e#3615\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/a1ed1ef9c053b88a29205810b11d7fda2c268fb1\"\u003e\u003ccode\u003ea1ed1ef\u003c/code\u003e\u003c/a\u003e Specify numpy manually in dependencies, as it's directly used/imported (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3608\"\u003e#3608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/08cada09277a6a03357b0c6440ea534ebd72951f\"\u003e\u003ccode\u003e08cada0\u003c/code\u003e\u003c/a\u003e docs: fix typo in custom models: reemain -\u0026gt; remain (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3596\"\u003e#3596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/236620339d21bcae57334c70a9bbf3212751abb2\"\u003e\u003ccode\u003e2366203\u003c/code\u003e\u003c/a\u003e Introduce compatibility with transformers 5.0.0rc01 (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3597\"\u003e#3597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/631b085ccbee4bf895855e5a52f88b0146b3eecc\"\u003e\u003ccode\u003e631b085\u003c/code\u003e\u003c/a\u003e Merge branch 'main' into v5.2-release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/sentence-transformers/commit/0277f4bc1f2e109c385d8978cbe1632ec7bdb562\"\u003e\u003ccode\u003e0277f4b\u003c/code\u003e\u003c/a\u003e Turn mine_hard_negatives into a clickable link in index.rst (\u003ca href=\"https://redirect.github.com/huggingface/sentence-transformers/issues/3593\"\u003e#3593\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/huggingface/sentence-transformers/compare/v5.2.0...v5.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.4.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.2 (Feb 1, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.2 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.2 is a patch release that fixes bugs discovered after the\n2.4.1 release. Highlights are:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixes memory leaks\u003c/li\u003e\n\u003cli\u003eUpdates OpenBLAS to fix hangs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eDaniel Tang +\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eKumar Aditya\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eVikram Kumar +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 12 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30629\"\u003e#30629\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30636\"\u003e#30636\u003c/a\u003e: TYP: \u003ccode\u003earange\u003c/code\u003e: accept datetime strings\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30657\"\u003e#30657\u003c/a\u003e: MAINT: avoid possible race condition by not touching \u003ccode\u003eos.environ\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30700\"\u003e#30700\u003c/a\u003e: BUG: validate contraction axes in tensordot (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30521\"\u003e#30521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30701\"\u003e#30701\u003c/a\u003e: DOC: __array_namespace__info__: set_module not __module__ (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30679\"\u003e#30679\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30702\"\u003e#30702\u003c/a\u003e: BUG: fix free-threaded PyObject layout in replace_scalar_type_names...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30703\"\u003e#30703\u003c/a\u003e: TST: fix limited API example in tests for latest Cython\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30709\"\u003e#30709\u003c/a\u003e: BUG: Fix some bugs found via valgrind (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30680\"\u003e#30680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30712\"\u003e#30712\u003c/a\u003e: MAINT: replace ob_type access with Py_TYPE in PyArray_CheckExact\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30713\"\u003e#30713\u003c/a\u003e: BUG: Fixup the quantile promotion fixup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30736\"\u003e#30736\u003c/a\u003e: BUG: fix thread safety of \u003ccode\u003earray_getbuffer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30667\"\u003e#30667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30737\"\u003e#30737\u003c/a\u003e: backport scipy-openblas version change\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003cli\u003eYou can use the \u003ccode\u003ekeyring\u003c/code\u003e app to store the PyPI password for twine. See the\nonline twine documentation for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003cp\u003eCheck the numpy-release repo\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/c81c49f77451340651a751e76bca607d85e4fd55\"\u003e\u003ccode\u003ec81c49f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30757\"\u003e#30757\u003c/a\u003e from charris/prepare-2.4.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b3ae9c59de627110458653836f1be81280222f85\"\u003e\u003ccode\u003eb3ae9c5\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.2 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9de89843c3918fa133f1aab9fb4435c38a3b0ba6\"\u003e\u003ccode\u003e9de8984\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30737\"\u003e#30737\u003c/a\u003e from mattip/scipy-openblas-backport\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/b7be329895e32de44578742b2745fb307cdf8625\"\u003e\u003ccode\u003eb7be329\u003c/code\u003e\u003c/a\u003e backport scipy-openblas version change\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7ff98637f80dc1ff7a18fce8025ffabdded76094\"\u003e\u003ccode\u003e7ff9863\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30736\"\u003e#30736\u003c/a\u003e from charris/backport-30667\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/431fffbe91d86c04738f039e0048441f8f9b5fff\"\u003e\u003ccode\u003e431fffb\u003c/code\u003e\u003c/a\u003e MAINT: Skip tests that require \u003cstrong\u003ebuffer\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/127235fcd9b2e80764da8f6c64f942a6bddb093a\"\u003e\u003ccode\u003e127235f\u003c/code\u003e\u003c/a\u003e BUG: fix thread safety of \u003ccode\u003earray_getbuffer\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30667\"\u003e#30667\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/18bdb2e675b68daa5afc3250c41982ff77b3867f\"\u003e\u003ccode\u003e18bdb2e\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30713\"\u003e#30713\u003c/a\u003e from charris/backport-30710\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/41dd7512de6dc3dd665b71d4e3a321aa1150dc48\"\u003e\u003ccode\u003e41dd751\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30712\"\u003e#30712\u003c/a\u003e from charris/backport-30705\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7a278da99943376313b8f631905c3baaa7a82a30\"\u003e\u003ccode\u003e7a278da\u003c/code\u003e\u003c/a\u003e BUG: Fixup the quantile promotion fixup\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.4.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `authlib` from 1.6.6 to 1.6.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/releases\"\u003eauthlib's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ehttps://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eSet supported algorithms for the default \u003ccode\u003ejwt\u003c/code\u003e instance.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/authlib/authlib/blob/main/docs/changelog.rst\"\u003eauthlib's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 1.6.7\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eUnreleased\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for \u003ccode\u003eOpenID Connect RP-Initiated Logout 1.0 \u0026lt;https://openid.net/specs/openid-connect-rpinitiated-1_0.html\u0026gt;\u003c/code\u003e_.\nSee :ref:\u003ccode\u003especs/rpinitiated\u003c/code\u003e for details. :issue:\u003ccode\u003e500\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePer RFC 6749 Section 3.3, the \u003ccode\u003escope\u003c/code\u003e parameter is now optional at both\nauthorization and token endpoints. \u003ccode\u003eclient.get_allowed_scope()\u003c/code\u003e is called\nto determine the default scope when omitted. :issue:\u003ccode\u003e845\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eStop support for Python 3.9, start support Python 3.14. :pr:\u003ccode\u003e850\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eAuthorizationServerMetadata.validate()\u003c/code\u003e to compose with RFC extension classes.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eexpires_at=0\u003c/code\u003e being incorrectly treated as \u003ccode\u003eNone\u003c/code\u003e. :issue:\u003ccode\u003e530\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003eResourceProtector\u003c/code\u003e decorator to be used without parentheses. :issue:\u003ccode\u003e604\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/38e872a3f5b97d2658507acc8762a4e18adaa50e\"\u003e\u003ccode\u003e38e872a\u003c/code\u003e\u003c/a\u003e chore: release 1.6.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/authlib/authlib/commit/b87c32ed07b8ae7f805873e1c9cafd1016761df7\"\u003e\u003ccode\u003eb87c32e\u003c/code\u003e\u003c/a\u003e fix: remove \u0026quot;none\u0026quot; algorithm from default jwt instance\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/authlib/authlib/compare/v1.6.6...v1.6.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `cryptography` from 46.0.3 to 46.0.4\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/cryptography/blob/main/CHANGELOG.rst\"\u003ecryptography's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e46.0.4 - 2026-01-27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* `Dropped support for win_arm64 wheels`_.\n* Updated Windows, macOS, and Linux wheels to be compiled with OpenSSL 3.5.5.\n\u003cp\u003e.. _v46-0-3:\u003cbr /\u003e\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/cryptography/commit/e6f44fc8e6391f05d719fb9d369692325b87a471\"\u003e\u003ccode\u003ee6f44fc\u003c/code\u003e\u003c/a\u003e bump for 46.0.4 and drop win arm64 due to CI issues (\u003ca href=\"https://redirect.github.com/pyca/cryptography/issues/14217\"\u003e#14217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/pyca/cryptography/compare/46.0.3...46.0.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-monitoring` from 2.28.0 to 2.29.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/releases\"\u003egoogle-cloud-monitoring's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-monitoring 2.29.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.29.0...google-cloud-monitoring-v2.29.1\"\u003e2.29.1\u003c/a\u003e (2026-02-05)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003efix mypy errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15494\"\u003e#15494\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1f4c2862\"\u003e1f4c2862\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-monitoring's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.29.0...google-cloud-documentai-v2.29.1\"\u003e2.29.1\u003c/a\u003e (2024-06-24)\u003c/h2\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate the comment to add a note about \u003ccode\u003edocumentai.processors.create\u003c/code\u003e permission (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9318d94ce12bd7a2e242f1ac9cbe491307c84ea6\"\u003e9318d94\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.28.0...google-cloud-documentai-v2.29.0\"\u003e2.29.0\u003c/a\u003e (2024-06-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-documentai] Make Layout Parser generally available in V1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/12762\"\u003e#12762\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9fd16ad8837e31c3b06475b195c70c45f6979f6c\"\u003e9fd16ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b99ac6a8b113311d1ae8e5a5f00ffce0e7eb3f2d\"\u003e\u003ccode\u003eb99ac6a\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260205T080503Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15528\"\u003e#15528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/34ac70dc34ea4634193ac5f300a7fb3e94d29564\"\u003e\u003ccode\u003e34ac70d\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260204T231539Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15526\"\u003e#15526\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/6837229965debe3aeb713104767a183f6e2f5b2d\"\u003e\u003ccode\u003e6837229\u003c/code\u003e\u003c/a\u003e chore: librarian onboard pull request: 20260204T073039Z (google-cloud-apiregi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/fe0a0b4638a8f5301c30be43fd2f2898ddc6db37\"\u003e\u003ccode\u003efe0a0b4\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260204T082423Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15521\"\u003e#15521\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4997475aadea9e3df262ff640b2383e2bf8aa47e\"\u003e\u003ccode\u003e4997475\u003c/code\u003e\u003c/a\u003e feat: generate libraries (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15502\"\u003e#15502\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/4daf9cc283e66f49904b74c1067d245ba43e833a\"\u003e\u003ccode\u003e4daf9cc\u003c/code\u003e\u003c/a\u003e fix: fix mypy (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15496\"\u003e#15496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/1f4c2862d77afa893f7a968af57e7adf54d49d0e\"\u003e\u003ccode\u003e1f4c286\u003c/code\u003e\u003c/a\u003e fix: fix mypy errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15494\"\u003e#15494\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/ca15a7e691a1f66e1b3beaa9b88a2e450a6947f5\"\u003e\u003ccode\u003eca15a7e\u003c/code\u003e\u003c/a\u003e fix: fix mypy errors in google-cloud-monitoring-dashboards/google/monitoring ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/0d24b06a330c578479c34ee0ca7bc1ba7fc6b3ab\"\u003e\u003ccode\u003e0d24b06\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260129T080803Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15492\"\u003e#15492\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/7260dd490bb261f0f6bb2f4833bd9a3ce6b3d386\"\u003e\u003ccode\u003e7260dd4\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260127T190835Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15489\"\u003e#15489\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.28.0...google-cloud-monitoring-v2.29.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opencv-python` from 4.12.0.88 to 4.13.0.92\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0.92\u003c/h2\u003e\n\u003cp\u003eFollow up release for 4.13.0 with X server dependency fix. See \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28438\"\u003e#28438\u003c/a\u003e for details.\u003c/p\u003e\n\u003ch2\u003e4.13.0.90\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.13.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython specific:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManylinux 2_28 support, Numpy 2.4 support, Python 3.14 support\u003c/li\u003e\n\u003cli\u003eTuned Python bindings for logging \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27812\"\u003e#27812\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMarked Feature2D.detectAndCompute mask as optional in Python type stubs \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27544\"\u003e#27544\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMarked distCoeffs/R/D as optional in calib3d functions \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27564\"\u003e#27564\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded DLPACK support \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27581\"\u003e#27581\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27861\"\u003e#27861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed memory leaks in pybindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27738\"\u003e#27738\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd PathLike type hints for args annotated with CV_WRAP_FILE_PATH \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27767\"\u003e#27767\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed memory leak in pyopencv_to for path-like objects \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28047\"\u003e#28047\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTunned Python bindings: use export_name as resolved typename for AliasTypeNode \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27997\"\u003e#27997\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003epython: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28093\"\u003e#28093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed python scalar typing issues \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27620\"\u003e#27620\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed bug in ifdef state machine in header parser for bindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27393\"\u003e#27393\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWrap GridType field in cv::findCirclesGrid parameters structure \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27689\"\u003e#27689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.3 to 1.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.0\u003c/code\u003e is the culmination of 6 months of hard work. It contains\nmany new features, numerous bug-fixes, improved test coverage and better\ndocumentation. There have been a number of deprecations and API changes\nin this release, which are documented below. All users are encouraged to\nupgrade to this release, as there are a large number of bug-fixes and\noptimizations. Before upgrading, we recommend that users check that\ntheir own code does not use deprecated SciPy functionality (to do so,\nrun your code with \u003ccode\u003epython -Wd\u003c/code\u003e and check for \u003ccode\u003eDeprecationWarning\u003c/code\u003e s).\nOur development attention will now shift to bug-fix releases on the\n\u003ccode\u003e1.17.x\u003c/code\u003e branch, and on adding new features on the main branch.\u003c/p\u003e\n\u003cp\u003eThis release requires Python \u003ccode\u003e3.11\u003c/code\u003e-\u003ccode\u003e3.14\u003c/code\u003e and NumPy \u003ccode\u003e1.26.4\u003c/code\u003e or greater.\u003c/p\u003e\n\u003ch1\u003eHighlights of this release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMany SciPy functions have gained native support for batching of N-dimensional\narray input and additional support for the array API standard. An overall\nsummary of the latter is now available in a \u003ca href=\"https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage\"\u003eset of tables\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.sparse\u003c/code\u003e, \u003ccode\u003ecoo_array\u003c/code\u003e now supports indexing. This includes integers,\nslices, arrays, \u003ccode\u003enp.newaxis\u003c/code\u003e, \u003ccode\u003eEllipsis\u003c/code\u003e, in 1D, 2D and the relatively\nnew nD. In \u003ccode\u003escipy.sparse.linalg\u003c/code\u003e, ARPACK and PROPACK rewrites from Fortran77\nto C now empower the use of external pseudorandom number generators, e.g.\nfrom numpy.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.spatial\u003c/code\u003e, \u003ccode\u003etransform.Rotation\u003c/code\u003e and \u003ccode\u003etransform.RigidTransform\u003c/code\u003e\nhave been extended to support N-D arrays. \u003ccode\u003egeometric_slerp\u003c/code\u003e now has support\nfor extrapolation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.stats\u003c/code\u003e has gained the matrix t and logistic distributions and many\nperformance and accuracy improvements.\u003c/li\u003e\n\u003cli\u003eInitial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has\nbeen added, including for MKL and Apple Accelerate. Please report any issues with\nILP64 you encounter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew features\u003c/h1\u003e\n\u003ch1\u003e\u003ccode\u003escipy.integrate\u003c/code\u003e improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThe integration routines \u003ccode\u003edopri5\u003c/code\u003e, \u003ccode\u003edopri853\u003c/code\u003e, \u003ccode\u003eLSODA\u003c/code\u003e, \u003ccode\u003evode\u003c/code\u003e, and\n\u003ccode\u003ezvode\u003c/code\u003e have been ported from Fortran77 to C.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.integrate.quad\u003c/code\u003e now has a fast path for returning 0 when the integration\ninterval is empty.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eBDF\u003c/code\u003e, \u003ccode\u003eDOP853\u003c/code\u003e, \u003ccode\u003eRK23\u003c/code\u003e, \u003ccode\u003eRK45\u003c/code\u003e, \u003ccode\u003eOdeSolver\u003c/code\u003e, \u003ccode\u003eDenseOutput\u003c/code\u003e,\n\u003ccode\u003eode\u003c/code\u003e, and \u003ccode\u003ecomplex_ode\u003c/code\u003e classes now support subscription, making them\ngeneric types, for compatibility with \u003ccode\u003escipy-stubs\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c75ae75176236f233824e9a0483c26a69e6dfec\"\u003e\u003ccode\u003e8c75ae7\u003c/code\u003e\u003c/a\u003e REL: 1.17.0 \u0026quot;final\u0026quot; release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9d7f110540b5f054cfd99820b5eb02b56a7f2aab\"\u003e\u003ccode\u003e9d7f110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24298\"\u003e#24298\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.0_final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/94373b602e384cf613e1287b209609a7908c6f5e\"\u003e\u003ccode\u003e94373b6\u003c/code\u003e\u003c/a\u003e MAINT: test wheels [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/723f4e2f83214c237d6afa8a9761f4ef1e00c1fe\"\u003e\u003ccode\u003e723f4e2\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 relnotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bf042f043f1f59a1856827c249453d899abc12fc\"\u003e\u003ccode\u003ebf042f0\u003c/code\u003e\u003c/a\u003e CI: ensure we use pinned scipy-openblas version also in ILP64 job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3e00a04941ca2e7cacf6130fd9c28a8aeeefcad8\"\u003e\u003ccode\u003e3e00a04\u003c/code\u003e\u003c/a\u003e CI: fix issue with ILP64 job; point to fixed numpy/meson commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/39bceab6f85ae717595c2291f6efe0ca29c53ee0\"\u003e\u003ccode\u003e39bceab\u003c/code\u003e\u003c/a\u003e BUG: stats: fix va_args memory corruption bug\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8f563872fa61c891fede2b547c02190413ec9858\"\u003e\u003ccode\u003e8f56387\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/c50e9c03eafec0bb7703acafffc948deb78a567c\"\u003e\u003ccode\u003ec50e9c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24304\"\u003e#24304\u003c/a\u003e from ev-br/edit_relnotes_for_ILP64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/b204495c6122f3670c67000ae29963676024be87\"\u003e\u003ccode\u003eb204495\u003c/code\u003e\u003c/a\u003e DOC: clarify ILP64 support caveats in the release notes, remove mentions of O...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.3...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.25.1 to 2.27.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.3\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.2...v2.27.3\"\u003e2.27.3\u003c/a\u003e (2026-02-03)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003edeprecate python 3.9 in all packages (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1365\"\u003e#1365\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cc72ed75d4c2d05514476d4e8f2786f5e09a174b\"\u003ecc72ed7\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eensure storage_url has trailing slash to prevent warning (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1367\"\u003e#1367\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/4267ff134542a742c8cabb1daf01597c3198494d\"\u003e4267ff1\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca ...\n\n_Description has been truncated_","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/384","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/384","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/384/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":null,"pr_created_at":"2026-02-03T00:00:10.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"3888203792","node_id":"PR_kwDOJKSTjM7BCE1L","number":11934,"state":"open","title":"chore(libs/deps): bump the production-dependencies group across 1 directory with 8 updates","user":"dependabot[bot]","labels":["size/xl","dependencies","python"],"assignees":[],"locked":false,"comments_count":9,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-02-03T00:00:10.000Z","updated_at":"2026-02-07T00:01:10.385Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(libs/deps): bump","group_name":"production-dependencies","update_count":8,"packages":[{"name":"fastapi","old_version":"0.116.1","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"launchdarkly-server-sdk","old_version":"9.12.0","new_version":"9.14.1","repository_url":"https://github.com/launchdarkly/python-server-sdk"},{"name":"pydantic","old_version":"2.11.7","new_version":"2.12.5","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-settings","old_version":"2.10.1","new_version":"2.12.0","repository_url":"https://github.com/pydantic/pydantic-settings"},{"name":"pyjwt","old_version":"2.10.1","new_version":"2.11.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"supabase","old_version":"2.16.0","new_version":"2.27.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.40.0","repository_url":"https://github.com/Kludex/uvicorn"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 8 updates in the /autogpt_platform/autogpt_libs directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.116.1` | `0.128.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [launchdarkly-server-sdk](https://github.com/launchdarkly/python-server-sdk) | `9.12.0` | `9.14.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.11.7` | `2.12.5` |\n| [pydantic-settings](https://github.com/pydantic/pydantic-settings) | `2.10.1` | `2.12.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.10.1` | `2.11.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.16.0` | `2.27.2` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.40.0` |\n\n\nUpdates `fastapi` from 0.116.1 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocs\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e📝 Add documentary to website. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14600\"\u003e#14600\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14602\"\u003e#14602\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🌐 Update translations for de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14581\"\u003e#14581\u003c/a\u003e by \u003ca href=\"https://github.com/nilslindemann\"\u003e\u003ccode\u003e@​nilslindemann\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Update pre-commit to use local Ruff instead of hook. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14604\"\u003e#14604\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e✅ Add missing tests for code examples. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14569\"\u003e#14569\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Remove \u003ccode\u003elint\u003c/code\u003e job from \u003ccode\u003etest\u003c/code\u003e CI workflow. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14593\"\u003e#14593\u003c/a\u003e by \u003ca href=\"https://github.com/YuriiMotov\"\u003e\u003ccode\u003e@​YuriiMotov\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Update secrets check. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14592\"\u003e#14592\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e👷 Run CodSpeed tests in parallel to other tests to speed up CI. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14586\"\u003e#14586\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔨 Update scripts and pre-commit to autofix files. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14585\"\u003e#14585\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add deprecation warnings when using \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14583\"\u003e#14583\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eTranslations\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Korean, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14546\"\u003e#14546\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔧 Add LLM prompt file for Japanese, generated from the existing translations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14545\"\u003e#14545\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Upgrade OpenAI model for translations to gpt-5.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14579\"\u003e#14579\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.126.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for Pydantic v1, keeping short temporary support for Pydantic v2's \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14575\"\u003e#14575\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/8322a4445a3b25acd9b26b61192571b2d92f9bcd\"\u003e\u003ccode\u003e8322a44\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.128.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4b2cfcfd34d0b2e158a05b377426e0c8376b94de\"\u003e\u003ccode\u003e4b2cfcf\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/e3006305518a56ea35f62a31748ad26fe4356fcc\"\u003e\u003ccode\u003ee300630\u003c/code\u003e\u003c/a\u003e ➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14609\"\u003e#14609\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/1b3bea8b6be2220cc1544653ea785d2134fcb35b\"\u003e\u003ccode\u003e1b3bea8\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/34e884156f38dff4094a7764ff895c4d4b872060\"\u003e\u003ccode\u003e34e8841\u003c/code\u003e\u003c/a\u003e ✅ Run performance tests only on Pydantic v2 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14608\"\u003e#14608\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cd90c78391f86f3fd06d5b327bffad9666b05b44\"\u003e\u003ccode\u003ecd90c78\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.127.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/93f4dfd88b7d62bda89eb521ebd9322e357e6fff\"\u003e\u003ccode\u003e93f4dfd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/535b5daa317a9d1d1f9a1058e57650a7beefa861\"\u003e\u003ccode\u003e535b5da\u003c/code\u003e\u003c/a\u003e 🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14605\"\u003e#14605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/6b53786f626db95a42fd0f66afd360bab161f4b1\"\u003e\u003ccode\u003e6b53786\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d98f4eb56eae3155034fe631d9639d95171fb9ab\"\u003e\u003ccode\u003ed98f4eb\u003c/code\u003e\u003c/a\u003e 🔧 Update pre-commit to use local Ruff instead of hook (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/14604\"\u003e#14604\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.116.1...0.128.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `launchdarkly-server-sdk` from 9.12.0 to 9.14.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/releases\"\u003elaunchdarkly-server-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev9.14.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1\"\u003e9.14.1\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e441a5ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.14.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0\"\u003e9.14.0\u003c/a\u003e (2025-12-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadding data system option to create file datasource intializer (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003ee5b121f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e3700d1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003ee6395fa\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/386\"\u003e#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emodified initializer behavior to spec (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e064f65c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.13.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1\"\u003e9.13.1\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude ldclient.datasystem in docs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/379\"\u003e#379\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/318c6fea0738d296713768afc8e08ee9b2360dc2\"\u003e318c6fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003eThis PR was generated with \u003ca href=\"https://github.com/googleapis/release-please\"\u003eRelease Please\u003c/a\u003e. See \u003ca href=\"https://github.com/googleapis/release-please#release-please\"\u003edocumentation\u003c/a\u003e.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003ev9.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0\"\u003e9.13.0\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/blob/main/CHANGELOG.md\"\u003elaunchdarkly-server-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.14.0...9.14.1\"\u003e9.14.1\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eRemove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e441a5ec\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.1...9.14.0\"\u003e9.14.0\u003c/a\u003e (2025-12-04)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eadding data system option to create file datasource intializer (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003ee5b121f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eadding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e3700d1d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003ee6395fa\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/386\"\u003e#386\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003emodified initializer behavior to spec (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e064f65c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.13.0...9.13.1\"\u003e9.13.1\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eInclude ldclient.datasystem in docs (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/379\"\u003e#379\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/318c6fea0738d296713768afc8e08ee9b2360dc2\"\u003e318c6fe\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.3...9.13.0\"\u003e9.13.0\u003c/a\u003e (2025-11-19)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eexperimental:\u003c/strong\u003e Release EAP support for FDv2 data system (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/376\"\u003e#376\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/0e7c32b4df12daef25e9b2e9b637225c3e74a2dd\"\u003e0e7c32b\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.2...9.12.3\"\u003e9.12.3\u003c/a\u003e (2025-10-30)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix overly generic type hint on File data source (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/365\"\u003e#365\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/52a7499f7cf1d4311f89fa98e65bca670e127aa6\"\u003e52a7499\u003c/a\u003e), closes \u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/364\"\u003e#364\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.1...9.12.2\"\u003e9.12.2\u003c/a\u003e (2025-10-27)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix incorrect event count in failure message (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/359\"\u003e#359\u003c/a\u003e) (\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/91f416329bd3e53a622ce58caa63cdd6cdcc8896\"\u003e91f4163\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.12.1\"\u003e9.12.1\u003c/a\u003e (2025-09-30)\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/54e62cc706443035e828fa6d9042950239544239\"\u003e\u003ccode\u003e54e62cc\u003c/code\u003e\u003c/a\u003e chore(main): release 9.14.1 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/389\"\u003e#389\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/441a5ecb3d3f1428801c44b875b32ef396df2fa3\"\u003e\u003ccode\u003e441a5ec\u003c/code\u003e\u003c/a\u003e fix: Remove all synchronizers in daemon mode (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/388\"\u003e#388\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/7bb537827ffdee0cc3b89c6e57115968649551b2\"\u003e\u003ccode\u003e7bb5378\u003c/code\u003e\u003c/a\u003e chore(main): release 9.14.0 (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/382\"\u003e#382\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e6395fa5316bef1c0d2829b4cc4b655fece8b8ea\"\u003e\u003ccode\u003ee6395fa\u003c/code\u003e\u003c/a\u003e fix: Add warning if relying on Redis \u003ccode\u003emax_connections\u003c/code\u003e parameter (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/387\"\u003e#387\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/45786a9a7e6608d19f4dd0ac185d3c4aaf1bbf83\"\u003e\u003ccode\u003e45786a9\u003c/code\u003e\u003c/a\u003e chore: Expose flag change listeners from data system (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/384\"\u003e#384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/2b7eedc83618ba430ae4f501a32f678c252cb0fa\"\u003e\u003ccode\u003e2b7eedc\u003c/code\u003e\u003c/a\u003e chore: Clean up unused _data_availability (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/383\"\u003e#383\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/3700d1ddd9ef6c7a505ec24783c71753cea89abb\"\u003e\u003ccode\u003e3700d1d\u003c/code\u003e\u003c/a\u003e feat: adding file data source as an intializer (\u003ca href=\"https://redirect.github.com/launchdarkly/python-server-sdk/issues/381\"\u003e#381\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/04a2c538e5d0f1f87f35feaaa949ae55d3cb8716\"\u003e\u003ccode\u003e04a2c53\u003c/code\u003e\u003c/a\u003e chore: PR comments\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/064f65c76135c385a6fdcb0209caa0e7a8cf872c\"\u003e\u003ccode\u003e064f65c\u003c/code\u003e\u003c/a\u003e fix: modified initializer behavior to spec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/launchdarkly/python-server-sdk/commit/e5b121f92a09fcaf717f88b426348798961ab62e\"\u003e\u003ccode\u003ee5b121f\u003c/code\u003e\u003c/a\u003e feat: adding data system option to create file datasource intializer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/launchdarkly/python-server-sdk/compare/9.12.0...9.14.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic` from 2.11.7 to 2.12.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/releases\"\u003epydantic's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 2025-11-26\u003c/h2\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.4...v2.12.5\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.4 2025-11-05\u003c/h2\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method of the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.12.3...v2.12.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.12.3 2025-10-17\u003c/h2\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003cp\u003eThis is the third 2.13 patch release, fixing issues related to the \u003ccode\u003eFieldInfo\u003c/code\u003e class, and reverting a change to the supported \u003ca href=\"https://docs.pydantic.dev/latest/concepts/validators/#model-validators\"\u003e\u003cem\u003eafter\u003c/em\u003e model validator\u003c/a\u003e function signatures.\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic/blob/main/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.5 (2025-11-26)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.5\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fifth 2.12 patch release, addressing an issue with the \u003ccode\u003eMISSING\u003c/code\u003e sentinel and providing several documentation improvements.\u003c/p\u003e\n\u003cp\u003eThe next 2.13 minor release will be published in a couple weeks, and will include a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature addressing\nthe remaining unexpected changes to the \u003cem\u003eserialize as any\u003c/em\u003e behavior.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix pickle error when using \u003ccode\u003emodel_construct()\u003c/code\u003e on a model with \u003ccode\u003eMISSING\u003c/code\u003e as a default value by \u003ca href=\"https://github.com/ornariece\"\u003e\u003ccode\u003e@​ornariece\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12522\"\u003e#12522\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eSeveral updates to the documentation by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.4 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis is the fourth 2.12 patch release, fixing more regressions, and reverting a change in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis patch release also fixes an issue with the serialization of IP address types, when \u003ccode\u003eserialize_as_any\u003c/code\u003e is used. The next patch release\nwill try to address the remaining issues with \u003cem\u003eserialize as any\u003c/em\u003e behavior by introducing a new \u003cem\u003epolymorphic serialization\u003c/em\u003e feature, that\nshould be used in most cases in place of \u003cem\u003eserialize as any\u003c/em\u003e.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with forward references in parent \u003ccode\u003eTypedDict\u003c/code\u003e classes by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12427\"\u003e#12427\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis issue is only relevant on Python 3.14 and greater.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eExclude fields with \u003ccode\u003eexclude_if\u003c/code\u003e from JSON Schema required fields by \u003ca href=\"https://github.com/Viicos\"\u003e\u003ccode\u003e@​Viicos\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic/pull/12430\"\u003e#12430\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRevert URL percent-encoding of credentials in the \u003ccode\u003ebuild()\u003c/code\u003e method\nof the \u003ca href=\"https://docs.pydantic.dev/latest/api/networks/\"\u003e\u003ccode\u003eAnyUrl\u003c/code\u003e and Dsn types\u003c/a\u003e by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in\n\u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1833\"\u003epydantic-core#1833\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis was initially considered as a bugfix, but caused regressions and as such was fully reverted. The next release will include\nan opt-in option to percent-encode components of the URL.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd type inference for IP address types by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1868\"\u003epydantic-core#1868\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThe 2.12 changes to the \u003ccode\u003eserialize_as_any\u003c/code\u003e behavior made it so that IP address types could not properly serialize to JSON.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAvoid getting default values from defaultdict by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1853\"\u003epydantic-core#1853\u003c/a\u003e.\u003c/p\u003e\n\u003cp\u003eThis fixes a subtle regression in the validation behavior of the \u003ca href=\"https://docs.python.org/3/library/collections.html#collections.defaultdict\"\u003e\u003ccode\u003ecollections.defaultdict\u003c/code\u003e\u003c/a\u003e\ntype.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix issue with field serializers on nested typed dictionaries by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1879\"\u003epydantic-core#1879\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAdd more \u003ccode\u003epydantic-core\u003c/code\u003e builds for the three-threaded version of Python 3.14 by \u003ca href=\"https://github.com/davidhewitt\"\u003e\u003ccode\u003e@​davidhewitt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-core/pull/1864\"\u003epydantic-core#1864\u003c/a\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.12.3 (2025-10-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.12.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/bd2d0dd0137dfa1a8fdff2529b9dfb1547980150\"\u003e\u003ccode\u003ebd2d0dd\u003c/code\u003e\u003c/a\u003e Prepare release v2.12.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7d0302ec7ec2cf115de3450a615522875bdd8b56\"\u003e\u003ccode\u003e7d0302e\u003c/code\u003e\u003c/a\u003e Document security implications when using \u003ccode\u003ecreate_model()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/e9ef980def726b6f59b6c495ddc9dc259a0228db\"\u003e\u003ccode\u003ee9ef980\u003c/code\u003e\u003c/a\u003e Fix typo in Standard Library Types documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f2c20c00c265a31a13c48f9bae923a87c829952e\"\u003e\u003ccode\u003ef2c20c0\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003epydantic-docs\u003c/code\u003e dev dependency, make use of versioning blocks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a76c1aa26f2d64a3fd080ac515d80832689197e8\"\u003e\u003ccode\u003ea76c1aa\u003c/code\u003e\u003c/a\u003e Update documentation about JSON Schema\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8cbc72ca489891e574fba45238ee8bd4f8e719a2\"\u003e\u003ccode\u003e8cbc72c\u003c/code\u003e\u003c/a\u003e Add documentation about custom \u003ccode\u003e__init__()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/99eba599069da137b3f708ffa74627f2b456ba73\"\u003e\u003ccode\u003e99eba59\u003c/code\u003e\u003c/a\u003e Add additional test for \u003ccode\u003eFieldInfo.get_default()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c71076988e507ea93844c77c3bf0bbb85a5716af\"\u003e\u003ccode\u003ec710769\u003c/code\u003e\u003c/a\u003e Special case \u003ccode\u003eMISSING\u003c/code\u003e sentinel in \u003ccode\u003esmart_deepcopy()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/20a9d771c210fd77d52366ac923258c4c199727f\"\u003e\u003ccode\u003e20a9d77\u003c/code\u003e\u003c/a\u003e Do not delete mock validator/serializer in \u003ccode\u003erebuild_dataclass()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/c86515a3a8f2120148fab2eaedd3bc45925779d0\"\u003e\u003ccode\u003ec86515a\u003c/code\u003e\u003c/a\u003e Update parts of the model and \u003ccode\u003erevalidate_instances\u003c/code\u003e documentation\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.11.7...v2.12.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pydantic-settings` from 2.10.1 to 2.12.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pydantic/pydantic-settings/releases\"\u003epydantic-settings's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.12.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for enum kebab case. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/686\"\u003epydantic/pydantic-settings#686\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eApply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd NestedSecretsSettings source by \u003ca href=\"https://github.com/makukha\"\u003e\u003ccode\u003e@​makukha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/690\"\u003epydantic/pydantic-settings#690\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStrip non-explicit default values. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/692\"\u003epydantic/pydantic-settings#692\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCoerce env vars if strict is True. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/693\"\u003epydantic/pydantic-settings#693\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore init kwarg names before returning final state dictionary. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/700\"\u003epydantic/pydantic-settings#700\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDrop Python3.9 support by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/699\"\u003epydantic/pydantic-settings#699\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt test_protected_namespace_defaults for dev. Pydantic by \u003ca href=\"https://github.com/musicinmybrain\"\u003e\u003ccode\u003e@​musicinmybrain\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/637\"\u003epydantic/pydantic-settings#637\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Python 3.14 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/704\"\u003epydantic/pydantic-settings#704\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare release 2.12 by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/705\"\u003epydantic/pydantic-settings#705\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/688\"\u003epydantic/pydantic-settings#688\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/v2.11.0...v2.12.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCLI Serialize Support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/643\"\u003epydantic/pydantic-settings#643\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eInspect type aliases to determine if an annotation is complex by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRevert \u0026quot;fix: Respect 'cli_parse_args' from model_config with settings_customise_sources (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/611\"\u003e#611\u003c/a\u003e)\u0026quot; by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/655\"\u003epydantic/pydantic-settings#655\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove parsing of command line arguments from \u003ccode\u003eCliSettingsSource.__init__\u003c/code\u003e. by \u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eturn off allow_abbrev on subparsers by \u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Serialization Fixes by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/649\"\u003epydantic/pydantic-settings#649\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix PydanticModel type checking. by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/659\"\u003epydantic/pydantic-settings#659\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAvoid env_prefix falling back to env vars without prefix by \u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/648\"\u003epydantic/pydantic-settings#648\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eWarn if model_config sets unused keys for missing settings sources by \u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIncluded endpoint_url kwarg in AWSSecretsManagerSettingsSource class by \u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typo (\u0026quot;Accesing\u0026quot;) in the \u0026quot;Adding sources\u0026quot; docs by \u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCLI Windows Path Fix by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/669\"\u003epydantic/pydantic-settings#669\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCli root model support by \u003ca href=\"https://github.com/kschwab\"\u003e\u003ccode\u003e@​kschwab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/677\"\u003epydantic/pydantic-settings#677\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSnake case conversion in Azure Key Vault by \u003ca href=\"https://github.com/AndreuCodina\"\u003e\u003ccode\u003e@​AndreuCodina\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/680\"\u003epydantic/pydantic-settings#680\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eInitSettingsSource\u003c/code\u003e resolution deterministic by \u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate deps by \u003ca href=\"https://github.com/hramezani\"\u003e\u003ccode\u003e@​hramezani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/683\"\u003epydantic/pydantic-settings#683\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tselepakis\"\u003e\u003ccode\u003e@​tselepakis\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/644\"\u003epydantic/pydantic-settings#644\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/trygve-baerland\"\u003e\u003ccode\u003e@​trygve-baerland\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/656\"\u003epydantic/pydantic-settings#656\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mroch\"\u003e\u003ccode\u003e@​mroch\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/658\"\u003epydantic/pydantic-settings#658\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/HomerusJa\"\u003e\u003ccode\u003e@​HomerusJa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/663\"\u003epydantic/pydantic-settings#663\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/adrianohrl\"\u003e\u003ccode\u003e@​adrianohrl\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/664\"\u003epydantic/pydantic-settings#664\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/deepyaman\"\u003e\u003ccode\u003e@​deepyaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/668\"\u003epydantic/pydantic-settings#668\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/enrico-stauss\"\u003e\u003ccode\u003e@​enrico-stauss\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/pull/681\"\u003epydantic/pydantic-settings#681\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\"\u003ehttps://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/584983d253a0fac4dfb294d1e6f9ef188add468b\"\u003e\u003ccode\u003e584983d\u003c/code\u003e\u003c/a\u003e Prepare release 2.12 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/705\"\u003e#705\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/6b4d87e77698476433031c0056ce71aa4f4a7c4e\"\u003e\u003ccode\u003e6b4d87e\u003c/code\u003e\u003c/a\u003e Add Python 3.14 (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/704\"\u003e#704\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/02de5b622b8648404aa792df01599aa1179c3aa7\"\u003e\u003ccode\u003e02de5b6\u003c/code\u003e\u003c/a\u003e Adapt test_protected_namespace_defaults for dev. Pydantic (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4239ea460a5c465a4ce908c52e9606549b38fa98\"\u003e\u003ccode\u003e4239ea4\u003c/code\u003e\u003c/a\u003e Drop Python3.9 support (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/699\"\u003e#699\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/5008c694f684f88fd310f476871ec021426e98d7\"\u003e\u003ccode\u003e5008c69\u003c/code\u003e\u003c/a\u003e Restore init kwarg names before returning final state dictionary. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/700\"\u003e#700\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4433101fef6770d3fc0844846f7f3837bfec3b10\"\u003e\u003ccode\u003e4433101\u003c/code\u003e\u003c/a\u003e Coerce env vars if strict is True. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/693\"\u003e#693\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4d2ebfd543e6011f6b71a99042007adf7e613ae9\"\u003e\u003ccode\u003e4d2ebfd\u003c/code\u003e\u003c/a\u003e Strip non-explicit default values. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/692\"\u003e#692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/4a6ffcaeae451199b1873c6709b28aceae7317a7\"\u003e\u003ccode\u003e4a6ffca\u003c/code\u003e\u003c/a\u003e Add NestedSecretsSettings source (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/690\"\u003e#690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/7a6e96ebfc89ddb5b20dfb068c8ed46b6ff18a7f\"\u003e\u003ccode\u003e7a6e96e\u003c/code\u003e\u003c/a\u003e Apply source order: init \u0026gt; env \u0026gt; dotenv \u0026gt; secrets \u0026gt; defaults and pres… (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/688\"\u003e#688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic-settings/commit/68563eddc09856b94ea0ca156dd75040b4e048e4\"\u003e\u003ccode\u003e68563ed\u003c/code\u003e\u003c/a\u003e Support for enum kebab case. (\u003ca href=\"https://redirect.github.com/pydantic/pydantic-settings/issues/686\"\u003e#686\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic-settings/compare/2.10.1...v2.12.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyjwt` from 2.10.1 to 2.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/releases\"\u003epyjwt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.11.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed type error in comment by \u003ca href=\"https://github.com/shuhaib-aot\"\u003e\u003ccode\u003e@​shuhaib-aot\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1026\"\u003ejpadilla/pyjwt#1026\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1018\"\u003ejpadilla/pyjwt#1018\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1033\"\u003ejpadilla/pyjwt#1033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake note of use of leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1034\"\u003ejpadilla/pyjwt#1034\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1035\"\u003ejpadilla/pyjwt#1035\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/964\"\u003e#964\u003c/a\u003e: Validate key against allowed types for Algorithm family by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/985\"\u003ejpadilla/pyjwt#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFeat \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1024\"\u003e#1024\u003c/a\u003e: Add iterator for PyJWKSet by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1041\"\u003ejpadilla/pyjwt#1041\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1039\"\u003e#1039\u003c/a\u003e: Add iss, issuer type checks by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1040\"\u003ejpadilla/pyjwt#1040\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/660\"\u003e#660\u003c/a\u003e: Improve typing/logic for \u003ccode\u003eoptions\u003c/code\u003e in decode, decode_complete; Improve docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1045\"\u003ejpadilla/pyjwt#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1042\"\u003ejpadilla/pyjwt#1042\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1052\"\u003ejpadilla/pyjwt#1052\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1053\"\u003ejpadilla/pyjwt#1053\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1022\"\u003e#1022\u003c/a\u003e: Map \u003ccode\u003ealgorithm=None\u003c/code\u003e to \u0026quot;none\u0026quot; by \u003ca href=\"https://github.com/qqii\"\u003e\u003ccode\u003e@​qqii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1056\"\u003ejpadilla/pyjwt#1056\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1055\"\u003ejpadilla/pyjwt#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1058\"\u003ejpadilla/pyjwt#1058\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1060\"\u003ejpadilla/pyjwt#1060\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1061\"\u003ejpadilla/pyjwt#1061\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1047\"\u003e#1047\u003c/a\u003e: Correct \u003ccode\u003ePyJWKClient.get_signing_key_from_jwt\u003c/code\u003e annotation  by \u003ca href=\"https://github.com/khvn26\"\u003e\u003ccode\u003e@​khvn26\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1048\"\u003ejpadilla/pyjwt#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1062\"\u003ejpadilla/pyjwt#1062\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed doc string typo in _validate_jti() function \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1063\"\u003e#1063\u003c/a\u003e by \u003ca href=\"https://github.com/kuldeepkhatke\"\u003e\u003ccode\u003e@​kuldeepkhatke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1064\"\u003ejpadilla/pyjwt#1064\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1065\"\u003ejpadilla/pyjwt#1065\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate SECURITY.md by \u003ca href=\"https://github.com/auvipy\"\u003e\u003ccode\u003e@​auvipy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1057\"\u003ejpadilla/pyjwt#1057\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTyping fix: use \u003ccode\u003efloat\u003c/code\u003e instead of \u003ccode\u003eint\u003c/code\u003e for \u003ccode\u003elifespan\u003c/code\u003e and \u003ccode\u003etimeout\u003c/code\u003e by \u003ca href=\"https://github.com/nikitagashkov\"\u003e\u003ccode\u003e@​nikitagashkov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1068\"\u003ejpadilla/pyjwt#1068\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1067\"\u003ejpadilla/pyjwt#1067\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1071\"\u003ejpadilla/pyjwt#1071\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1076\"\u003ejpadilla/pyjwt#1076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix TYP header documentation by \u003ca href=\"https://github.com/fobiasmog\"\u003e\u003ccode\u003e@​fobiasmog\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1046\"\u003ejpadilla/pyjwt#1046\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edoc: Document claims sub and jti by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1088\"\u003ejpadilla/pyjwt#1088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1077\"\u003ejpadilla/pyjwt#1077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/setup-python from 5 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1089\"\u003ejpadilla/pyjwt#1089\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/stale from 8 to 10 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1090\"\u003ejpadilla/pyjwt#1090\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 4 to 5 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1083\"\u003ejpadilla/pyjwt#1083\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1091\"\u003ejpadilla/pyjwt#1091\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1093\"\u003ejpadilla/pyjwt#1093\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[pre-commit.ci] pre-commit autoupdate by \u003ca href=\"https://github.com/pre-commit-ci\"\u003e\u003ccode\u003e@​pre-commit-ci\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1096\"\u003ejpadilla/pyjwt#1096\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eResolve package build warnings by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1105\"\u003ejpadilla/pyjwt#1105\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10+ by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1104\"\u003ejpadilla/pyjwt#1104\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix a \u003ccode\u003eSyntaxWarning\u003c/code\u003e caused by invalid escape sequences by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1103\"\u003ejpadilla/pyjwt#1103\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStandardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1110\"\u003ejpadilla/pyjwt#1110\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate from \u003ccode\u003epep517\u003c/code\u003e, which is deprecated, to \u003ccode\u003ebuild\u003c/code\u003e by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1108\"\u003ejpadilla/pyjwt#1108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incorrectly-named test suite function by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1116\"\u003ejpadilla/pyjwt#1116\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1111\"\u003ejpadilla/pyjwt#1111\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/download-artifact from 4 to 6 by \u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1118\"\u003ejpadilla/pyjwt#1118\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscalate test suite warnings to errors by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1107\"\u003ejpadilla/pyjwt#1107\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1109\"\u003ejpadilla/pyjwt#1109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSimplify the test suite decorators by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1113\"\u003ejpadilla/pyjwt#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1115\"\u003ejpadilla/pyjwt#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild a shared wheel once in the test suite by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/pull/1114\"\u003ejpadilla/pyjwt#1114\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jpadilla/pyjwt/blob/master/CHANGELOG.rst\"\u003epyjwt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ccode\u003ev2.11.0 \u0026lt;https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\u0026gt;\u003c/code\u003e__\u003c/h2\u003e\n\u003cp\u003eFixed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Enforce ECDSA curve validation per RFC 7518 Section 3.4.\n- Fix build system warnings by @kurtmckee in `[#1105](https://github.com/jpadilla/pyjwt/issues/1105) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1105\u0026gt;`__\n- Validate key against allowed types for Algorithm family in `[#964](https://github.com/jpadilla/pyjwt/issues/964) \u0026lt;https://github.com/jpadilla/pyjwt/pull/964\u0026gt;`__\n- Add iterator for JWKSet in `[#1041](https://github.com/jpadilla/pyjwt/issues/1041) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1041\u0026gt;`__\n- Validate `iss` claim is a string during encoding and decoding by @pachewise in `[#1040](https://github.com/jpadilla/pyjwt/issues/1040) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1040\u0026gt;`__\n- Improve typing/logic for `options` in decode, decode_complete by @pachewise in `[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;`__\n- Declare float supported type for lifespan and timeout by @nikitagashkov in `[#1068](https://github.com/jpadilla/pyjwt/issues/1068) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1068\u0026gt;`__\n- Fix ``SyntaxWarning``\\s/``DeprecationWarning``\\s caused by invalid escape sequences by @kurtmckee in `[#1103](https://github.com/jpadilla/pyjwt/issues/1103) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1103\u0026gt;`__\n- Development: Build a shared wheel once to speed up test suite setup times by @kurtmckee in `[#1114](https://github.com/jpadilla/pyjwt/issues/1114) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1114\u0026gt;`__\n- Development: Test type annotations across all supported Python versions,\n  increase the strictness of the type checking, and remove the mypy pre-commit hook\n  by @kurtmckee in `[#1112](https://github.com/jpadilla/pyjwt/issues/1112) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1112\u0026gt;`__\n\u003cp\u003eAdded\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14, and test against PyPy 3.10 and 3.11 by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1104](https://github.com/jpadilla/pyjwt/issues/1104) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1104\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Migrate to \u003ccode\u003ebuild\u003c/code\u003e to test package building in CI by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1108](https://github.com/jpadilla/pyjwt/issues/1108) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1108\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Improve coverage config and eliminate unused test suite code by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1115](https://github.com/jpadilla/pyjwt/issues/1115) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1115\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Standardize CHANGELOG links to PRs by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1110](https://github.com/jpadilla/pyjwt/issues/1110) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1110\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Fix Read the Docs builds by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1111](https://github.com/jpadilla/pyjwt/issues/1111) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1111\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Add example of using leeway with nbf by \u003ca href=\"https://github.com/djw8605\"\u003e\u003ccode\u003e@​djw8605\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1034](https://github.com/jpadilla/pyjwt/issues/1034) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1034\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Refactored docs with \u003ccode\u003eautodoc\u003c/code\u003e; added \u003ccode\u003ePyJWS\u003c/code\u003e and \u003ccode\u003ejwt.algorithms\u003c/code\u003e docs by \u003ca href=\"https://github.com/pachewise\"\u003e\u003ccode\u003e@​pachewise\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1045](https://github.com/jpadilla/pyjwt/issues/1045) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1045\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDocs: Documentation improvements for \u0026quot;sub\u0026quot; and \u0026quot;jti\u0026quot; claims by \u003ca href=\"https://github.com/cleder\"\u003e\u003ccode\u003e@​cleder\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1088](https://github.com/jpadilla/pyjwt/issues/1088) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1088\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eDevelopment: Add pyupgrade as a pre-commit hook by \u003ca href=\"https://github.com/kurtmckee\"\u003e\u003ccode\u003e@​kurtmckee\u003c/code\u003e\u003c/a\u003e in \u003ccode\u003e[#1109](https://github.com/jpadilla/pyjwt/issues/1109) \u0026lt;https://github.com/jpadilla/pyjwt/pull/1109\u0026gt;\u003c/code\u003e__\u003c/li\u003e\n\u003cli\u003eAdd minimum key length validation for HMAC and RSA keys (CWE-326).\nWarns by default via \u003ccode\u003eInsecureKeyLengthWarning\u003c/code\u003e when keys are below\nminimum recommended lengths per RFC 7518 Section 3.2 (HMAC) and\nNIST SP 800-131A (RSA). Pass \u003ccode\u003eenforce_minimum_key_length=True\u003c/code\u003e in\noptions to \u003ccode\u003ePyJWT\u003c/code\u003e or \u003ccode\u003ePyJWS\u003c/code\u003e to raise \u003ccode\u003eInvalidKeyError\u003c/code\u003e instead.\u003c/li\u003e\n\u003cli\u003eRefactor \u003ccode\u003ePyJWT\u003c/code\u003e to own an internal \u003ccode\u003ePyJWS\u003c/code\u003e instance instead of\ncalling global \u003ccode\u003eapi_jws\u003c/code\u003e functions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/697344d25990641b8b2aa85f0a60634b590b5702\"\u003e\u003ccode\u003e697344d\u003c/code\u003e\u003c/a\u003e bump up version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/e4d0aec0248ef30cfc91bbcf0f011b0a318864c9\"\u003e\u003ccode\u003ee4d0aec\u003c/code\u003e\u003c/a\u003e fix: pre-commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/df9a6a0c44906ff5f48676a65f522f21e31fcc0d\"\u003e\u003ccode\u003edf9a6a0\u003c/code\u003e\u003c/a\u003e fix: failing test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/2b2e53cd2377d09b082831c9406689c6cfe1ae80\"\u003e\u003ccode\u003e2b2e53c\u003c/code\u003e\u003c/a\u003e fix: docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/635c8d89dd8b8bea1813fe8830a26d0274a4e724\"\u003e\u003ccode\u003e635c8d8\u003c/code\u003e\u003c/a\u003e fix: failing mypy\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/96ae3563b9db8f5e18621c4d612f622cf476c92b\"\u003e\u003ccode\u003e96ae356\u003c/code\u003e\u003c/a\u003e feat: add minimum key length validation for HMAC and RSA\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/5b8622773358e56d3d3c0a9acf404809ff34433a\"\u003e\u003ccode\u003e5b86227\u003c/code\u003e\u003c/a\u003e fix: enforce ECDSA curve validation per RFC 7518 Section 3.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/04947d75dc45ba1a4a66eaa2b24fbb0eb512ceab\"\u003e\u003ccode\u003e04947d7\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1125\"\u003e#1125\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/dd448344c3eb7bc54b7b395e0f6b00bb811be24a\"\u003e\u003ccode\u003edd44834\u003c/code\u003e\u003c/a\u003e Fix leeway value in usage documentation (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1124\"\u003e#1124\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jpadilla/pyjwt/commit/407f0bde99383fd9c63f1ed4ef922322ab72b5a1\"\u003e\u003ccode\u003e407f0bd\u003c/code\u003e\u003c/a\u003e Thoroughly test type annotations, and resolve errors (\u003ca href=\"https://redirect.github.com/jpadilla/pyjwt/issues/1112\"\u003e#1112\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jpadilla/pyjwt/compare/2.10.1...2.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.16.0 to 2.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26....\n\n_Description has been truncated_","html_url":"https://github.com/Significant-Gravitas/AutoGPT/pull/11934","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Significant-Gravitas%2FAutoGPT/issues/11934","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/11934/packages"}},{"old_version":"3.12.1","new_version":"3.13.0","update_type":"minor","path":null,"pr_created_at":"2026-01-26T09:47:17.000Z","version_change":"3.12.1 → 3.13.0","issue":{"uuid":"3855233586","node_id":"PR_kwDOPTwklM6_VBmR","number":369,"state":"open","title":"chore(deps)(deps): bump the python-dependencies group across 1 directory with 13 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-01-26T09:47:17.000Z","updated_at":"2026-02-02T10:41:02.707Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps)(deps): bump","group_name":"python-dependencies","update_count":13,"packages":[{"name":"werkzeug","old_version":"3.1.4","new_version":"3.1.5","repository_url":"https://github.com/pallets/werkzeug"},{"name":"numpy","old_version":"2.3.5","new_version":"2.4.1","repository_url":"https://github.com/numpy/numpy"},{"name":"google-cloud-monitoring","old_version":"2.28.0","new_version":"2.29.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-logging","old_version":"3.12.1","new_version":"3.13.0","repository_url":"https://github.com/googleapis/python-logging"},{"name":"opencv-python","old_version":"4.12.0.88","new_version":"4.13.0.90","repository_url":"https://github.com/opencv/opencv-python"},{"name":"scipy","old_version":"1.16.3","new_version":"1.17.0","repository_url":"https://github.com/scipy/scipy"},{"name":"supabase","old_version":"2.25.1","new_version":"2.27.2","repository_url":"https://github.com/supabase/supabase-py"},{"name":"pytest-asyncio","old_version":"0.25.2","new_version":"0.26.0","repository_url":"https://github.com/pytest-dev/pytest-asyncio"},{"name":"celery","old_version":"5.6.0","new_version":"5.6.2","repository_url":"https://github.com/celery/celery"},{"name":"starlette","old_version":"0.50.0","new_version":"0.52.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.9.1","new_version":"2.10.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"fastapi","old_version":"0.124.4","new_version":"0.128.0","repository_url":"https://github.com/fastapi/fastapi"},{"name":"torchvision","old_version":"0.24.1","new_version":"0.25.0","repository_url":"https://github.com/pytorch/vision"}],"path":null,"ecosystem":"pip"},"body":"Bumps the python-dependencies group with 13 updates in the /apps/backend directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.4` | `3.1.5` |\n| [numpy](https://github.com/numpy/numpy) | `2.3.5` | `2.4.1` |\n| [google-cloud-monitoring](https://github.com/googleapis/google-cloud-python) | `2.28.0` | `2.29.0` |\n| [google-cloud-logging](https://github.com/googleapis/python-logging) | `3.12.1` | `3.13.0` |\n| [opencv-python](https://github.com/opencv/opencv-python) | `4.12.0.88` | `4.13.0.90` |\n| [scipy](https://github.com/scipy/scipy) | `1.16.3` | `1.17.0` |\n| [supabase](https://github.com/supabase/supabase-py) | `2.25.1` | `2.27.2` |\n| [pytest-asyncio](https://github.com/pytest-dev/pytest-asyncio) | `0.25.2` | `0.26.0` |\n| [celery](https://github.com/celery/celery) | `5.6.0` | `5.6.2` |\n| [starlette](https://github.com/Kludex/starlette) | `0.50.0` | `0.52.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.9.1` | `2.10.0` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.124.4` | `0.128.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.24.1` | `0.25.0` |\n\n\nUpdates `werkzeug` from 3.1.4 to 3.1.5\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/releases\"\u003ewerkzeug's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.1.5\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.5 security fix release, which fixes security issues and bugs but does not otherwise change behavior and should not result in breaking changes compared to the latest feature release.\u003c/p\u003e\n\u003cp\u003ePyPI: \u003ca href=\"https://pypi.org/project/Werkzeug/3.1.5/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.5/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-5\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/43?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/43?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless of extension or surrounding spaces. \u003ca href=\"https://github.com/pallets/werkzeug/security/advisories/GHSA-87hc-h4r5-73f7\"\u003eGHSA-87hc-h4r5-73f7\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary. This fixes the previous attempt, which caused incorrect content lengths. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3065\"\u003e#3065\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3077\"\u003e#3077\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with \u003ccode\u003epin_security=False\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3075\"\u003e#3075\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/werkzeug/blob/main/CHANGES.rst\"\u003ewerkzeug's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.1.5\u003c/h2\u003e\n\u003cp\u003eReleased 2026-01-08\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003esafe_join\u003c/code\u003e on Windows does not allow more special device names, regardless\nof extension or surrounding spaces. :ghsa:\u003ccode\u003e87hc-h4r5-73f7\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eThe multipart form parser handles a \u003ccode\u003e\\r\\n\u003c/code\u003e sequence at a chunk boundary.\nThis fixes the previous attempt, which caused incorrect content lengths.\n:issue:\u003ccode\u003e3065\u003c/code\u003e :issue:\u003ccode\u003e3077\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e when initializing \u003ccode\u003eDebuggedApplication\u003c/code\u003e with\n\u003ccode\u003epin_security=False\u003c/code\u003e. :issue:\u003ccode\u003e3075\u003c/code\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/e3d06f4b1f7ff40a63eba78f81d9cda18f805d6d\"\u003e\u003ccode\u003ee3d06f4\u003c/code\u003e\u003c/a\u003e release version 3.1.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/7ae1d254e04a0c33e241ac1cca4783ce6c875ca3\"\u003e\u003ccode\u003e7ae1d25\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/37797aba260022c871718e0908b472727d366d09\"\u003e\u003ccode\u003e37797ab\u003c/code\u003e\u003c/a\u003e \u003ccode\u003esafe_join\u003c/code\u003e prevents windows special device names with compound extensions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/3db44c79caa74c00848ceefb0bd3d608e3d09cea\"\u003e\u003ccode\u003e3db44c7\u003c/code\u003e\u003c/a\u003e fix duplicate reference\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/a40f8fa05ff1108ba1096e7cd359d0599f5cd386\"\u003e\u003ccode\u003ea40f8fa\u003c/code\u003e\u003c/a\u003e fix class name typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/0f76c353b10afc2f8129aa3684ccc3262516a0c0\"\u003e\u003ccode\u003e0f76c35\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3081\"\u003e#3081\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/1049dd6b2a363e1ef302b4161c340fb8582f627a\"\u003e\u003ccode\u003e1049dd6\u003c/code\u003e\u003c/a\u003e Correct parsing up to a potential partial boundary\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b48878cf16dfca3c89ac58aca47ab1ecfcb71354\"\u003e\u003ccode\u003eb48878c\u003c/code\u003e\u003c/a\u003e initialize \u003ccode\u003e_pin\u003c/code\u003e in debugger (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3078\"\u003e#3078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/fa0f4f2710b8eaffef7f2b3fbc58fc3ca55247fb\"\u003e\u003ccode\u003efa0f4f2\u003c/code\u003e\u003c/a\u003e initialize _pin\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f637275bfa68ebd80bec1da9173211ce2dc4fa33\"\u003e\u003ccode\u003ef637275\u003c/code\u003e\u003c/a\u003e start version 3.1.5\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.4...3.1.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.3.5 to 2.4.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/releases\"\u003enumpy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.4.1 (Jan 10, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.1 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.1 is a patch release that fixes bugs discoved after the\n2.4.0 release. In particular, the typo \u003ccode\u003eSeedlessSequence\u003c/code\u003e is preserved to\nenable wheels using the random Cython API and built against NumPy \u0026lt; 2.4.0\nto run without errors.\u003c/p\u003e\n\u003cp\u003eThis release supports Python versions 3.11-3.14\u003c/p\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eA total of 9 people contributed to this release. People with a \u0026quot;+\u0026quot; by their\nnames contributed a patch for the first time.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAlexander Shadchin\u003c/li\u003e\n\u003cli\u003eBill Tompkins +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003eRaghuveer Devulapalli\u003c/li\u003e\n\u003cli\u003eRalf Gommers\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 15 pull requests were merged for this release.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30490\"\u003e#30490\u003c/a\u003e: MAINT: Prepare 2.4.x for further development\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30503\"\u003e#30503\u003c/a\u003e: DOC: \u003ccode\u003enumpy.select\u003c/code\u003e: fix \u003ccode\u003edefault\u003c/code\u003e parameter docstring...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30504\"\u003e#30504\u003c/a\u003e: REV: Revert part of \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30164\"\u003e#30164\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30500\"\u003e#30500\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30506\"\u003e#30506\u003c/a\u003e: TYP: \u003ccode\u003enumpy.select\u003c/code\u003e: allow passing array-like \u003ccode\u003edefault\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30507\"\u003e#30507\u003c/a\u003e: MNT: use if constexpr for compile-time branch selection\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30513\"\u003e#30513\u003c/a\u003e: BUG: Fix leak in flat assignment iterator\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30516\"\u003e#30516\u003c/a\u003e: BUG: fix heap overflow in fixed-width string multiply (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30511\"\u003e#30511\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30523\"\u003e#30523\u003c/a\u003e: BUG: Ensure summed weights returned by np.average always are...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30527\"\u003e#30527\u003c/a\u003e: TYP: Fix return type of histogram2d\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30594\"\u003e#30594\u003c/a\u003e: MAINT: avoid passing ints to random functions that take double...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30595\"\u003e#30595\u003c/a\u003e: BLD: Avoiding conflict with pygit2 for static build\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30596\"\u003e#30596\u003c/a\u003e: MAINT: Fix msvccompiler missing error on FreeBSD\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30608\"\u003e#30608\u003c/a\u003e: BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30620\"\u003e#30620\u003c/a\u003e: ENH: use more fine-grained critical sections in array coercion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30623\"\u003e#30623\u003c/a\u003e: BUG: Undo result type change of quantile/percentile but keep...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.0 (Dec 20, 2025)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.0 release continues the work to improve free threaded Python\nsupport, user dtypes implementation, and annotations. There are many expired\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst\"\u003enumpy's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eThis is a walkthrough of the NumPy 2.4.0 release on Linux, which will be the\nfirst feature release using the \u003ccode\u003enumpy/numpy-release \u0026lt;https://github.com/numpy/numpy-release\u0026gt;\u003c/code\u003e__ repository.\u003c/p\u003e\n\u003cp\u003eThe commands can be copied into the command line, but be sure to replace 2.4.0\nwith the correct version. This should be read together with the\n:ref:\u003ccode\u003egeneral release guide \u0026lt;prepare_release\u0026gt;\u003c/code\u003e.\u003c/p\u003e\n\u003ch1\u003eFacility preparation\u003c/h1\u003e\n\u003cp\u003eBefore beginning to make a release, use the \u003ccode\u003erequirements/*_requirements.txt\u003c/code\u003e files to\nensure that you have the needed software. Most software can be installed with\npip, but some will require apt-get, dnf, or whatever your system uses for\nsoftware. You will also need a GitHub personal access token (PAT) to push the\ndocumentation. There are a few ways to streamline things:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eGit can be set up to use a keyring to store your GitHub personal access token.\nSearch online for the details.\u003c/li\u003e\n\u003cli\u003eYou can use the \u003ccode\u003ekeyring\u003c/code\u003e app to store the PyPI password for twine. See the\nonline twine documentation for details.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003ePrior to release\u003c/h1\u003e\n\u003ch2\u003eAdd/drop Python versions\u003c/h2\u003e\n\u003cp\u003eWhen adding or dropping Python versions, multiple config and CI files need to\nbe edited in addition to changing the minimum version in \u003ccode\u003epyproject.toml\u003c/code\u003e.\nMake these changes in an ordinary PR against main and backport if necessary.\nWe currently release wheels for new Python versions after the first Python RC\nonce manylinux and cibuildwheel support that new Python version.\u003c/p\u003e\n\u003ch2\u003eBackport pull requests\u003c/h2\u003e\n\u003cp\u003eChanges that have been marked for this release must be backported to the\nmaintenance/2.4.x branch.\u003c/p\u003e\n\u003ch2\u003eUpdate 2.4.0 milestones\u003c/h2\u003e\n\u003cp\u003eLook at the issues/prs with 2.4.0 milestones and either push them off to a\nlater version, or maybe remove the milestone. You may need to add a milestone.\u003c/p\u003e\n\u003cp\u003eCheck the numpy-release repo\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d24bb7f48d3b0e3471c68f1309c130d0b65ee72a\"\u003e\u003ccode\u003ed24bb7f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30624\"\u003e#30624\u003c/a\u003e from charris/prepare-for-2.4.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d3bfd6d61d8b5a9429aebe2b58070381a289aeac\"\u003e\u003ccode\u003ed3bfd6d\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.1 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/abe3d863a1e945183f173cf29428699965c10b1c\"\u003e\u003ccode\u003eabe3d86\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30623\"\u003e#30623\u003c/a\u003e from charris/backport-30601\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/5d8907855c225864d7d741254d48448119b41a84\"\u003e\u003ccode\u003e5d89078\u003c/code\u003e\u003c/a\u003e TST: Add test showing that q promotes (for \u0026quot;interpolating ones\u0026quot;)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/16890cea47e717ae3d7cea546797f1e4a1959c75\"\u003e\u003ccode\u003e16890ce\u003c/code\u003e\u003c/a\u003e BUG: Fix result type change and make weak q safe\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/bf7ef0be8532985cd5d05424e0f7747a4750f7cc\"\u003e\u003ccode\u003ebf7ef0b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30620\"\u003e#30620\u003c/a\u003e from charris/backport-30514\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/3d3af25fe7830f66fbf903aebd765999404376c4\"\u003e\u003ccode\u003e3d3af25\u003c/code\u003e\u003c/a\u003e ENH: use more fine-grained critical sections in array coercion internals (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30\"\u003e#30\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8b7f19798e654c572d1a918da35f73933b6d6047\"\u003e\u003ccode\u003e8b7f197\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30608\"\u003e#30608\u003c/a\u003e from charris/update-vendored-meson\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/30999f623181dc4b8c71cf359463484b9aab4157\"\u003e\u003ccode\u003e30999f6\u003c/code\u003e\u003c/a\u003e BLD: update vendored Meson to 1.9.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/e6bea65b639820b5672a5dced69a231ed5f01176\"\u003e\u003ccode\u003ee6bea65\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30596\"\u003e#30596\u003c/a\u003e from charris/remove-msvccompiler-check\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.3.5...v2.4.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-monitoring` from 2.28.0 to 2.29.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/google-cloud-python/blob/main/packages/google-cloud-documentai/CHANGELOG.md\"\u003egoogle-cloud-monitoring's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-documentai-v2.28.0...google-cloud-documentai-v2.29.0\"\u003e2.29.0\u003c/a\u003e (2024-06-05)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[google-cloud-documentai] Make Layout Parser generally available in V1 (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/12762\"\u003e#12762\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/9fd16ad8837e31c3b06475b195c70c45f6979f6c\"\u003e9fd16ad\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/34fcd0469b1ee749329a59ccb3b93c760bd01f52\"\u003e\u003ccode\u003e34fcd04\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260109T154410Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15014\"\u003e#15014\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/bfa895cf4364e1633fe1d5a819637599d9014a38\"\u003e\u003ccode\u003ebfa895c\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260108T223611Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15011\"\u003e#15011\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/63cc1cdfdc37c409bf13260147aef028adace2b2\"\u003e\u003ccode\u003e63cc1cd\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260108T222925Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15010\"\u003e#15010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c60ded47847b04b2536f19c1610b5592b7952d6a\"\u003e\u003ccode\u003ec60ded4\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T181058Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15005\"\u003e#15005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/c0e3e9d221c3b8cd6d99503fadbb8e643db1e325\"\u003e\u003ccode\u003ec0e3e9d\u003c/code\u003e\u003c/a\u003e chore: disable treat warnings as errors (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15008\"\u003e#15008\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45d4cee9e0e48a209b2d9292be29a15125548458\"\u003e\u003ccode\u003e45d4cee\u003c/code\u003e\u003c/a\u003e docs(samples): Update BigQuery Storage Arrow samples batching logic (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14961\"\u003e#14961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/45149baca6064be265db1b653abb405c298a2b41\"\u003e\u003ccode\u003e45149ba\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20260108T162506Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/15001\"\u003e#15001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/d58a9ba338df3df1afca11e155fe449c32631179\"\u003e\u003ccode\u003ed58a9ba\u003c/code\u003e\u003c/a\u003e test: Add 'cryptography' 'cachetools' to test deps for bigquery-storage (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14999\"\u003e#14999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/10289465a87988b9bf35a85893f26ea372ad717b\"\u003e\u003ccode\u003e1028946\u003c/code\u003e\u003c/a\u003e feat: add v1 api for google-cloud-maintenance-api (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14998\"\u003e#14998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/google-cloud-python/commit/b3cb4de3ce50c3ec55af2b132d756252a32641f3\"\u003e\u003ccode\u003eb3cb4de\u003c/code\u003e\u003c/a\u003e chore: librarian generate pull request: 20260107T084051Z (\u003ca href=\"https://redirect.github.com/googleapis/google-cloud-python/issues/14995\"\u003e#14995\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/googleapis/google-cloud-python/compare/google-cloud-monitoring-v2.28.0...google-cloud-monitoring-v2.29.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `google-cloud-logging` from 3.12.1 to 3.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/releases\"\u003egoogle-cloud-logging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003egoogle-cloud-logging 3.13.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6a\"\u003e6be3df6a\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3\"\u003e70f612c3\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/googleapis/python-logging/blob/main/CHANGELOG.md\"\u003egoogle-cloud-logging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003e3.13.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e6be3df6aa94539cd2ab22a4fac55b343862228b2\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eremove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e) (\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e70f612c3281f1df13f3aba6b19bc4e9397297f3d\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/1415883be0937810608b8cadd3530bd0c39b4dab\"\u003e\u003ccode\u003e1415883\u003c/code\u003e\u003c/a\u003e chore: librarian release pull request: 20251215T134006Z (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1066\"\u003e#1066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/6be3df6aa94539cd2ab22a4fac55b343862228b2\"\u003e\u003ccode\u003e6be3df6\u003c/code\u003e\u003c/a\u003e feat: Add support for python 3.14 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1065\"\u003e#1065\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/36fb4270b3cb04014189c0f296ac57cbba6c9127\"\u003e\u003ccode\u003e36fb427\u003c/code\u003e\u003c/a\u003e chore(librarian): onboard to librarian (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1061\"\u003e#1061\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/eb189bf712088ad5a289ca9d69f67d7647864d3b\"\u003e\u003ccode\u003eeb189bf\u003c/code\u003e\u003c/a\u003e chore: update Python generator version to 1.25.1 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/1003\"\u003e#1003\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/a7a28d1b9396e472f153fd76d0d846338c107d5a\"\u003e\u003ccode\u003ea7a28d1\u003c/code\u003e\u003c/a\u003e test: ignore DeprecationWarning for \u003ccode\u003ecredentials_file\u003c/code\u003e argument and Python ve...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/70f612c3281f1df13f3aba6b19bc4e9397297f3d\"\u003e\u003ccode\u003e70f612c\u003c/code\u003e\u003c/a\u003e fix: remove setup.cfg configuration for creating universal wheels (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/981\"\u003e#981\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/e4c445a8569b350373b86cff64c992c0048b009f\"\u003e\u003ccode\u003ee4c445a\u003c/code\u003e\u003c/a\u003e chore: Update gapic-generator-python to 1.25.0 (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/985\"\u003e#985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/googleapis/python-logging/commit/14364a534abe3efa0cf748a123cc41aacc87824d\"\u003e\u003ccode\u003e14364a5\u003c/code\u003e\u003c/a\u003e test: Added cleanup of old sink storage buckets (\u003ca href=\"https://redirect.github.com/googleapis/python-logging/issues/991\"\u003e#991\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/googleapis/python-logging/compare/v3.12.1...v3.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `opencv-python` from 4.12.0.88 to 4.13.0.90\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/opencv/opencv-python/releases\"\u003eopencv-python's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0.90\u003c/h2\u003e\n\u003cp\u003eComplete OpenCV 4.13.0 changelog: \u003ca href=\"https://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\"\u003ehttps://github.com/opencv/opencv/wiki/OpenCV-Change-Logs#version4130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003ePython specific:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eManylinux 2_28 support, Numpy 2.4 support, Python 3.14 support\u003c/li\u003e\n\u003cli\u003eTuned Python bindings for logging \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27812\"\u003e#27812\u003c/a\u003e\nMarked Feature2D.detectAndCompute mask as optional in Python type stubs \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27544\"\u003e#27544\u003c/a\u003e\nMarked distCoeffs/R/D as optional in calib3d functions \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27564\"\u003e#27564\u003c/a\u003e\nAdded DLPACK support \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27581\"\u003e#27581\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27861\"\u003e#27861\u003c/a\u003e\nFixed memory leaks in pybindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27738\"\u003e#27738\u003c/a\u003e\nAdd PathLike type hints for args annotated with CV_WRAP_FILE_PATH \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27767\"\u003e#27767\u003c/a\u003e\nFixed memory leak in pyopencv_to for path-like objects \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28047\"\u003e#28047\u003c/a\u003e\nTunned Python bindings: use export_name as resolved typename for AliasTypeNode \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27997\"\u003e#27997\u003c/a\u003e\npython: fix pytest-cov false warnings by using compile() with full file path in exec_file_wrapper \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/28093\"\u003e#28093\u003c/a\u003e\nFixed python scalar typing issues \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27620\"\u003e#27620\u003c/a\u003e\nFixed bug in ifdef state machine in header parser for bindings \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27393\"\u003e#27393\u003c/a\u003e\nWrap GridType field in cv::findCirclesGrid parameters structure \u003ca href=\"https://redirect.github.com/opencv/opencv/issues/27689\"\u003e#27689\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/opencv/opencv-python/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `scipy` from 1.16.3 to 1.17.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/scipy/scipy/releases\"\u003escipy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eSciPy 1.17.0 Release Notes\u003c/h1\u003e\n\u003cp\u003eSciPy \u003ccode\u003e1.17.0\u003c/code\u003e is the culmination of 6 months of hard work. It contains\nmany new features, numerous bug-fixes, improved test coverage and better\ndocumentation. There have been a number of deprecations and API changes\nin this release, which are documented below. All users are encouraged to\nupgrade to this release, as there are a large number of bug-fixes and\noptimizations. Before upgrading, we recommend that users check that\ntheir own code does not use deprecated SciPy functionality (to do so,\nrun your code with \u003ccode\u003epython -Wd\u003c/code\u003e and check for \u003ccode\u003eDeprecationWarning\u003c/code\u003e s).\nOur development attention will now shift to bug-fix releases on the\n\u003ccode\u003e1.17.x\u003c/code\u003e branch, and on adding new features on the main branch.\u003c/p\u003e\n\u003cp\u003eThis release requires Python \u003ccode\u003e3.11\u003c/code\u003e-\u003ccode\u003e3.14\u003c/code\u003e and NumPy \u003ccode\u003e1.26.4\u003c/code\u003e or greater.\u003c/p\u003e\n\u003ch1\u003eHighlights of this release\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eMany SciPy functions have gained native support for batching of N-dimensional\narray input and additional support for the array API standard. An overall\nsummary of the latter is now available in a \u003ca href=\"https://scipy.github.io/devdocs/dev/api-dev/array_api.html#api-coverage\"\u003eset of tables\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.sparse\u003c/code\u003e, \u003ccode\u003ecoo_array\u003c/code\u003e now supports indexing. This includes integers,\nslices, arrays, \u003ccode\u003enp.newaxis\u003c/code\u003e, \u003ccode\u003eEllipsis\u003c/code\u003e, in 1D, 2D and the relatively\nnew nD. In \u003ccode\u003escipy.sparse.linalg\u003c/code\u003e, ARPACK and PROPACK rewrites from Fortran77\nto C now empower the use of external pseudorandom number generators, e.g.\nfrom numpy.\u003c/li\u003e\n\u003cli\u003eIn \u003ccode\u003escipy.spatial\u003c/code\u003e, \u003ccode\u003etransform.Rotation\u003c/code\u003e and \u003ccode\u003etransform.RigidTransform\u003c/code\u003e\nhave been extended to support N-D arrays. \u003ccode\u003egeometric_slerp\u003c/code\u003e now has support\nfor extrapolation.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.stats\u003c/code\u003e has gained the matrix t and logistic distributions and many\nperformance and accuracy improvements.\u003c/li\u003e\n\u003cli\u003eInitial support for 64-bit integer (ILP64) BLAS and LAPACK libraries has\nbeen added, including for MKL and Apple Accelerate. Please report any issues with\nILP64 you encounter.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eNew features\u003c/h1\u003e\n\u003ch1\u003e\u003ccode\u003escipy.integrate\u003c/code\u003e improvements\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003eThe integration routines \u003ccode\u003edopri5\u003c/code\u003e, \u003ccode\u003edopri853\u003c/code\u003e, \u003ccode\u003eLSODA\u003c/code\u003e, \u003ccode\u003evode\u003c/code\u003e, and\n\u003ccode\u003ezvode\u003c/code\u003e have been ported from Fortran77 to C.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003escipy.integrate.quad\u003c/code\u003e now has a fast path for returning 0 when the integration\ninterval is empty.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003eBDF\u003c/code\u003e, \u003ccode\u003eDOP853\u003c/code\u003e, \u003ccode\u003eRK23\u003c/code\u003e, \u003ccode\u003eRK45\u003c/code\u003e, \u003ccode\u003eOdeSolver\u003c/code\u003e, \u003ccode\u003eDenseOutput\u003c/code\u003e,\n\u003ccode\u003eode\u003c/code\u003e, and \u003ccode\u003ecomplex_ode\u003c/code\u003e classes now support subscription, making them\ngeneric types, for compatibility with \u003ccode\u003escipy-stubs\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8c75ae75176236f233824e9a0483c26a69e6dfec\"\u003e\u003ccode\u003e8c75ae7\u003c/code\u003e\u003c/a\u003e REL: 1.17.0 \u0026quot;final\u0026quot; release commit [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/9d7f110540b5f054cfd99820b5eb02b56a7f2aab\"\u003e\u003ccode\u003e9d7f110\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24298\"\u003e#24298\u003c/a\u003e from tylerjereddy/treddy_prep_1.17.0_final\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/94373b602e384cf613e1287b209609a7908c6f5e\"\u003e\u003ccode\u003e94373b6\u003c/code\u003e\u003c/a\u003e MAINT: test wheels [wheel build]\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/723f4e2f83214c237d6afa8a9761f4ef1e00c1fe\"\u003e\u003ccode\u003e723f4e2\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 relnotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/bf042f043f1f59a1856827c249453d899abc12fc\"\u003e\u003ccode\u003ebf042f0\u003c/code\u003e\u003c/a\u003e CI: ensure we use pinned scipy-openblas version also in ILP64 job\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/3e00a04941ca2e7cacf6130fd9c28a8aeeefcad8\"\u003e\u003ccode\u003e3e00a04\u003c/code\u003e\u003c/a\u003e CI: fix issue with ILP64 job; point to fixed numpy/meson commit\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/39bceab6f85ae717595c2291f6efe0ca29c53ee0\"\u003e\u003ccode\u003e39bceab\u003c/code\u003e\u003c/a\u003e BUG: stats: fix va_args memory corruption bug\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/8f563872fa61c891fede2b547c02190413ec9858\"\u003e\u003ccode\u003e8f56387\u003c/code\u003e\u003c/a\u003e DOC: update 1.17.0 release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/c50e9c03eafec0bb7703acafffc948deb78a567c\"\u003e\u003ccode\u003ec50e9c0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/scipy/scipy/issues/24304\"\u003e#24304\u003c/a\u003e from ev-br/edit_relnotes_for_ILP64\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/scipy/scipy/commit/b204495c6122f3670c67000ae29963676024be87\"\u003e\u003ccode\u003eb204495\u003c/code\u003e\u003c/a\u003e DOC: clarify ILP64 support caveats in the release notes, remove mentions of O...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/scipy/scipy/compare/v1.16.3...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `supabase` from 2.25.1 to 2.27.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/releases\"\u003esupabase's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.27.2\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.1\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.27.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.26.0\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e remove v1 from path concatenation (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1330\"\u003e#1330\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/e3ddf408293caa318f25fc2c3048373442ac6edc\"\u003ee3ddf40\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/supabase/supabase-py/blob/main/CHANGELOG.md\"\u003esupabase's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.1...v2.27.2\"\u003e2.27.2\u003c/a\u003e (2026-01-14)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003ec2ad37f\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eci:\u003c/strong\u003e run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003ea221aac\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003ecfbe594\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.27.0...v2.27.1\"\u003e2.27.1\u003c/a\u003e (2026-01-06)\u003c/h2\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003erealtime:\u003c/strong\u003e use 'event' instead of 'events' in postgres_changes protocol (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1339\"\u003e#1339\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003ec1e7986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003eddb5054\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.26.0...v2.27.0\"\u003e2.27.0\u003c/a\u003e (2025-12-16)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eauth:\u003c/strong\u003e add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003ef600f96\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e6df3545\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.26.0\"\u003e2.26.0\u003c/a\u003e (2025-12-15)\u003c/h2\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e add pyiceberg wrapper (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1326\"\u003e#1326\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/08e3b4caa47badae3df9116c277b3df326e84a53\"\u003e08e3b4c\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003esupabase:\u003c/strong\u003e use yarl URL builder in supabase as well (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1331\"\u003e#1331\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/78ebf2c62107bd2cfc7e2ee4bcdd3388f091a6e3\"\u003e78ebf2c\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003estorage:\u003c/strong\u003e remove v1 from path concatenation (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1330\"\u003e#1330\u003c/a\u003e) (\u003ca href=\"https://github.com/supabase/supabase-py/commit/e3ddf408293caa318f25fc2c3048373442ac6edc\"\u003ee3ddf40\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/81729ca6e329844ca917742aa23ed4041fe91b9d\"\u003e\u003ccode\u003e81729ca\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.2 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1350\"\u003e#1350\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/a221aac029a36693e325125ad036c34936617247\"\u003e\u003ccode\u003ea221aac\u003c/code\u003e\u003c/a\u003e fix(ci): run CI when .github files change (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1349\"\u003e#1349\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c2ad37f9dc2c5a73d9a1ea06f723e0810ab6aecd\"\u003e\u003ccode\u003ec2ad37f\u003c/code\u003e\u003c/a\u003e fix(ci): generate new token for release-please (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1348\"\u003e#1348\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/cfbe5943cbc45679bd85dcfd6860c98435912011\"\u003e\u003ccode\u003ecfbe594\u003c/code\u003e\u003c/a\u003e fix(realtime): ammend reconnect logic to not unsubscribe (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1346\"\u003e#1346\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/ad047a5d3059457e581fbcd1de33bfac183e9ffa\"\u003e\u003ccode\u003ead047a5\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.1 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1343\"\u003e#1343\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/ddb50547db2742411a7ca78fef243f3c5616d57d\"\u003e\u003ccode\u003eddb5054\u003c/code\u003e\u003c/a\u003e fix(storage): catch bad responses from server (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1344\"\u003e#1344\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/c1e7986c5ef6406b1e966cc7aa69971876ef5934\"\u003e\u003ccode\u003ec1e7986\u003c/code\u003e\u003c/a\u003e fix(realtime): use 'event' instead of 'events' in postgres_changes protocol (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/64a0483cd3a56a302b5f46ad4010e96c92c6db94\"\u003e\u003ccode\u003e64a0483\u003c/code\u003e\u003c/a\u003e chore(main): release 2.27.0 (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1336\"\u003e#1336\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/6df354578560fdd2a1a50380420c10b436e7bca1\"\u003e\u003ccode\u003e6df3545\u003c/code\u003e\u003c/a\u003e fix(storage): replace deprecated pydantic Extra with literal values (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1334\"\u003e#1334\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/supabase/supabase-py/commit/f600f96b521d306f07a21601c58c61dc7fc29c68\"\u003e\u003ccode\u003ef600f96\u003c/code\u003e\u003c/a\u003e feat(auth): add X (OAuth 2.0) provider (\u003ca href=\"https://redirect.github.com/supabase/supabase-py/issues/1335\"\u003e#1335\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/supabase/supabase-py/compare/v2.25.1...v2.27.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-asyncio` from 0.25.2 to 0.26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/releases\"\u003epytest-asyncio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003epytest-asyncio 0.26.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdds configuration option that sets default event loop scope for all tests \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/793\"\u003e#793\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImproved type annotations for \u003ccode\u003epytest_asyncio.fixture\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/pull/1045\"\u003e#1045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003etyping-extensions\u003c/code\u003e as additional dependency for Python \u003ccode\u003e\u0026lt;3.10\u003c/code\u003e \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/pull/1045\"\u003e#1045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003epytest-asyncio 0.25.3\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid errors in cleanup of async generators when event loop is already closed \u003ca href=\"https://redirect.github.com/pytest-dev/pytest-asyncio/issues/1040\"\u003e#1040\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/4f8ce457b0a52eba1233349e740ca9e7fb400804\"\u003e\u003ccode\u003e4f8ce45\u003c/code\u003e\u003c/a\u003e docs: Prepare release of v0.26.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/498e8a7786b85027bd8e9992f8af6a05a90e3786\"\u003e\u003ccode\u003e498e8a7\u003c/code\u003e\u003c/a\u003e Build(deps): Bump attrs from 25.1.0 to 25.3.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/01c22ffb63f3bdd158b7d35bd14f8a45ba35338e\"\u003e\u003ccode\u003e01c22ff\u003c/code\u003e\u003c/a\u003e build:  Update project metadata to use SPDX license identifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/78191c98ed4792cd9352bfff0885cc041ee2b1ed\"\u003e\u003ccode\u003e78191c9\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/9a455516ea423fd29c3f45878713ca1715b899e6\"\u003e\u003ccode\u003e9a45551\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/66804094397afc7b4c905c113209a89e4df7a3d5\"\u003e\u003ccode\u003e6680409\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.7.0 to 7.7.1 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/aa82c574feae8611170150222b41bd4c1e72855d\"\u003e\u003ccode\u003eaa82c57\u003c/code\u003e\u003c/a\u003e Build(deps): Bump iniconfig from 2.0.0 to 2.1.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/cca587ea4f2c09b1b25b56cb4a22c44677cf27fc\"\u003e\u003ccode\u003ecca587e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/5d90b296218ef8c3d2bbafd70736bece18eeb984\"\u003e\u003ccode\u003e5d90b29\u003c/code\u003e\u003c/a\u003e Build(deps): Bump hypothesis in /dependencies/default\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/commit/c2622628b6ca1f2d583df375cc370070c2c0c54e\"\u003e\u003ccode\u003ec262262\u003c/code\u003e\u003c/a\u003e Build(deps): Bump coverage from 7.6.12 to 7.7.0 in /dependencies/default\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-asyncio/compare/v0.25.2...v0.26.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `celery` from 5.6.0 to 5.6.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/releases\"\u003ecelery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.6.2\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string by \u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBugfix: Revoked tasks now immediately update backend status to REVOKED by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9869\"\u003ecelery/celery#9869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.2 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10049\"\u003ecelery/celery#10049\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/bruunotrindade\"\u003e\u003ccode\u003e@​bruunotrindade\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10045\"\u003ecelery/celery#10045\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.1...v5.6.2\"\u003ehttps://github.com/celery/celery/compare/v5.6.1...v5.6.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev5.6.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support by \u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown by \u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option by \u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10020\"\u003ecelery/celery#10020\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup by \u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ereliable prefork detection by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10023\"\u003ecelery/celery#10023\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebetter coverage by \u003ca href=\"https://github.com/petrprikryl\"\u003e\u003ccode\u003e@​petrprikryl\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10029\"\u003ecelery/celery#10029\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example by \u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10032\"\u003ecelery/celery#10032\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10033\"\u003ecelery/celery#10033\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 by \u003ca href=\"https://github.com/Nusnus\"\u003e\u003ccode\u003e@​Nusnus\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10037\"\u003ecelery/celery#10037\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Contributors\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/anthonykuzmich7\"\u003e\u003ccode\u003e@​anthonykuzmich7\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10013\"\u003ecelery/celery#10013\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/weetster\"\u003e\u003ccode\u003e@​weetster\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/9986\"\u003ecelery/celery#9986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/JaeHyuckSa\"\u003e\u003ccode\u003e@​JaeHyuckSa\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10016\"\u003ecelery/celery#10016\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/snopoke\"\u003e\u003ccode\u003e@​snopoke\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10015\"\u003ecelery/celery#10015\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/SpaceShaman\"\u003e\u003ccode\u003e@​SpaceShaman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/celery/celery/pull/10030\"\u003ecelery/celery#10030\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.1\"\u003ehttps://github.com/celery/celery/compare/v5.6.0...v5.6.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/celery/celery/blob/main/Changelog.rst\"\u003ecelery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e5.6.2\u003c/h1\u003e\n\u003cp\u003e:release-date: 2026-01-04\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n- Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeError when pool_cls is a string ([#10045](https://github.com/celery/celery/issues/10045))\n- Bugfix: Revoked tasks now immediately update backend status to REVOKED ([#9869](https://github.com/celery/celery/issues/9869))\n- Prepare for release: v5.6.2 ([#10049](https://github.com/celery/celery/issues/10049))\n\u003cp\u003e.. _version-5.6.1:\u003c/p\u003e\n\u003ch1\u003e5.6.1\u003c/h1\u003e\n\u003cp\u003e:release-date: 2025-12-29\n:release-by: Tomer Nosrati\u003c/p\u003e\n\u003cp\u003eWhat's Changed\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Redis Sentinel ACL authentication support (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10013\"\u003e#10013\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Broker heartbeats not sent during graceful shutdown (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9986\"\u003e#9986\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs \u003ca href=\"https://redirect.github.com/celery/celery/issues/5410\"\u003e#5410\u003c/a\u003e -- Document confirm_publish broker transport option (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10016\"\u003e#10016\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eclose DB pools only in prefork mode (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10020\"\u003e#10020\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix: Avoid unnecessary Django database connection creation during cleanup (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10015\"\u003e#10015\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ereliable prefork detection (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10023\"\u003e#10023\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ebetter coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocs: clarify \u003ccode\u003eresult_extended\u003c/code\u003e vs periodic task metadata and show \u003ccode\u003eheaders[\u0026quot;periodic_task_name\u0026quot;]\u003c/code\u003e example (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10030\"\u003e#10030\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStop importing pytest_subtests (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10032\"\u003e#10032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eOnly use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _version-5.6.0:\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6a43c846f183ef0cbade24f4b9a8f7a6ea113b44\"\u003e\u003ccode\u003e6a43c84\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.2 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10049\"\u003e#10049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/333a82f746734151c5cbe848916085455b0a3748\"\u003e\u003ccode\u003e333a82f\u003c/code\u003e\u003c/a\u003e Bugfix: Revoked tasks now immediately update backend status to REVOKED (\u003ca href=\"https://redirect.github.com/celery/celery/issues/9869\"\u003e#9869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/9d6ab110d947270c4edf0b42454266d2954e653d\"\u003e\u003ccode\u003e9d6ab11\u003c/code\u003e\u003c/a\u003e Fix recursive WorkController instantiation in DjangoWorkerFixup + AttributeEr...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21dbc73f81d2fae058de49e665afaa1cd92da5c0\"\u003e\u003ccode\u003e21dbc73\u003c/code\u003e\u003c/a\u003e Prepare for release: v5.6.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10037\"\u003e#10037\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/ba20bed7723c684d12ddd62d6a7c0c0d901b3351\"\u003e\u003ccode\u003eba20bed\u003c/code\u003e\u003c/a\u003e Only use exceptiongroup backport for Python \u0026lt; 3.11 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10033\"\u003e#10033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/21675299bc2d10c648448ec5221136e07c1eec1a\"\u003e\u003ccode\u003e2167529\u003c/code\u003e\u003c/a\u003e Stop importing pytest_subtests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/0527296acb1f1790788301d4395ba6d5ce2a9704\"\u003e\u003ccode\u003e0527296\u003c/code\u003e\u003c/a\u003e Bump google-cloud-firestore from 2.21.0 to 2.22.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/5f8659bdba4561796d66e938a1e2c71d4489562f\"\u003e\u003ccode\u003e5f8659b\u003c/code\u003e\u003c/a\u003e Clarify 'result_extended' setting usage in tasks\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/f19db7008682c782d85e69b5ce736970491752ea\"\u003e\u003ccode\u003ef19db70\u003c/code\u003e\u003c/a\u003e Bump mypy from 1.19.0 to 1.19.1 (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10028\"\u003e#10028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/celery/celery/commit/6da72bde60553a1c350eef1e17d834d004ed099d\"\u003e\u003ccode\u003e6da72bd\u003c/code\u003e\u003c/a\u003e better coverage (\u003ca href=\"https://redirect.github.com/celery/celery/issues/10029\"\u003e#10029\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/celery/celery/compare/v5.6.0...v5.6.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `starlette` from 0.50.0 to 0.52.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/releases\"\u003estarlette's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.52.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions by \u003ca href=\"https://github.com/Kludex\"\u003e\u003ccode\u003e@​Kludex\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003eKludex/starlette#3109\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.52.0...0.52.1\"\u003ehttps://github.com/Kludex/starlette/compare/0.52.0...0.52.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.52.0\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type safety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/HEAD/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003chr /\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/Kludex/starlette/compare/0.51.0...0.52.0\"\u003ehttps://github.com/Kludex/starlette/compare/0.51.0...0.52.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.51.0\u003c/h2\u003e\n\u003ch2\u003eAdded\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eChanged\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/release-notes.md\"\u003estarlette's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.52.1 (January 18, 2026)\u003c/h2\u003e\n\u003ch4\u003eFixed\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eOnly use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3109\"\u003e#3109\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.52.0 (January 18, 2026)\u003c/h2\u003e\n\u003cp\u003eIn this release, \u003ccode\u003eState\u003c/code\u003e can be accessed using dictionary-style syntax for improved type\nsafety (\u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3036\"\u003e#3036\u003c/a\u003e).\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003efrom collections.abc import AsyncIterator\nfrom contextlib import asynccontextmanager\nfrom typing import TypedDict\n\u003cp\u003eimport httpx\u003c/p\u003e\n\u003cp\u003efrom starlette.applications import Starlette\nfrom starlette.requests import Request\u003c/p\u003e\n\u003cp\u003eclass State(TypedDict):\nhttp_client: httpx.AsyncClient\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/asynccontextmanager\"\u003e\u003ccode\u003e@​asynccontextmanager\u003c/code\u003e\u003c/a\u003e\nasync def lifespan(app: Starlette) -\u0026gt; AsyncIterator[State]:\nasync with httpx.AsyncClient() as client:\nyield {\u0026quot;http_client\u0026quot;: client}\u003c/p\u003e\n\u003cp\u003easync def homepage(request: Request[State]):\nclient = request.state[\u0026quot;http_client\u0026quot;]\n# If you run the below line with mypy or pyright, it will reveal the correct type.\nreveal_type(client)  # Revealed type is 'httpx.AsyncClient'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eSee \u003ca href=\"https://github.com/Kludex/starlette/blob/main/docs/lifespan.md#accessing-state\"\u003eAccessing State\u003c/a\u003e for more details.\u003c/p\u003e\n\u003ch2\u003e0.51.0 (January 10, 2026)\u003c/h2\u003e\n\u003ch4\u003eAdded\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eallow_private_network\u003c/code\u003e in \u003ccode\u003eCORSMiddleware\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3065\"\u003e#3065\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eChanged\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eIncrease warning stacklevel on \u003ccode\u003eDeprecationWarning\u003c/code\u003e for wsgi module \u003ca href=\"https://redirect.github.com/Kludex/starlette/pull/3082\"\u003e#3082\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/e5b8a5d200504a2608bed11fe6f66b1d20b9ae2c\"\u003e\u003ccode\u003ee5b8a5d\u003c/code\u003e\u003c/a\u003e Version 0.52.1 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3110\"\u003e#3110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d02eadecb5409e9553922081ac123757849335e7\"\u003e\u003ccode\u003ed02eade\u003c/code\u003e\u003c/a\u003e Only use \u003ccode\u003etyping_extensions\u003c/code\u003e in older Python versions (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3109\"\u003e#3109\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/f490b42f5fa0808ead53115a45d907c6d8e16a47\"\u003e\u003ccode\u003ef490b42\u003c/code\u003e\u003c/a\u003e Version 0.52.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3107\"\u003e#3107\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/d8c7cf9aca95b31c7a70473d03c26bc8ce33cd74\"\u003e\u003ccode\u003ed8c7cf9\u003c/code\u003e\u003c/a\u003e Turn \u003ccode\u003eState\u003c/code\u003e into a \u003ccode\u003eMapping\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3036\"\u003e#3036\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/cfce146611f7cc2b14c524b26d7e1d6cf0ddcd9f\"\u003e\u003ccode\u003ecfce146\u003c/code\u003e\u003c/a\u003e chore: bump coverage (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3103\"\u003e#3103\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/9138e5597285c6120821a6ad862880d479f329f3\"\u003e\u003ccode\u003e9138e55\u003c/code\u003e\u003c/a\u003e fix: setup github pages for deployment (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3102\"\u003e#3102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/aff6df756b231c42ca088788db4bf4b193f7cc5b\"\u003e\u003ccode\u003eaff6df7\u003c/code\u003e\u003c/a\u003e docs: add environment for github docs (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3101\"\u003e#3101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/434bab94749b8522b08bbef3eff5fb742629d4fd\"\u003e\u003ccode\u003e434bab9\u003c/code\u003e\u003c/a\u003e docS: fix gh pages deploy (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3100\"\u003e#3100\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/03426be1d41fc3963cd2dab5f10992e137eaf5f4\"\u003e\u003ccode\u003e03426be\u003c/code\u003e\u003c/a\u003e docs: replace mkdocs by zensical (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3098\"\u003e#3098\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/starlette/commit/df2ee22bc072dc19962120a7559f8fc0de7a094e\"\u003e\u003ccode\u003edf2ee22\u003c/code\u003e\u003c/a\u003e Version 0.51.0 (\u003ca href=\"https://redirect.github.com/Kludex/starlette/issues/3097\"\u003e#3097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/starlette/compare/0.50.0...0.52.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `torch` from 2.9.1 to 2.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytorch/pytorch/releases\"\u003etorch's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePyTorch 2.10.0 Release Notes\u003c/h1\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#highlights\"\u003eHighlights\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#backwards-incompatible-changes\"\u003eBackwards Incompatible Changes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#deprecations\"\u003eDeprecations\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#new-features\"\u003eNew Features\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#improvements\"\u003eImprovements\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#bug-fixes\"\u003eBug fixes\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#performance\"\u003ePerformance\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#documentation\"\u003eDocumentation\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#developers\"\u003eDevelopers\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/blob/HEAD/#security\"\u003eSecurity\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch1\u003eHighlights\u003c/h1\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eFor more details about these highlighted features, you can look at the \u003ca href=\"https://pytorch.org/blog/pytorch-2-10-release-blog/\"\u003erelease blogpost\u003c/a\u003e. Below are the full release notes for this release.\u003c/p\u003e\n\u003ch1\u003eBackwards Incompatible Changes\u003c/h1\u003e\n\u003ch2\u003eDataloader Frontend\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved unused \u003ccode\u003edata_source\u003c/code\u003e argument from Sampler (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/163134\"\u003e#163134\u003c/a\u003e). This is a no-op, unless you have a custom sampler that uses this argument. Please update your custom sampler accordingly.\u003c/li\u003e\n\u003cli\u003eRemoved deprecated imports for torch.utils.data.datapipes.iter.grouping (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/163438\"\u003e#163438\u003c/a\u003e). \u003ccode\u003efrom torch.utils.data.datapipes.iter.grouping import SHARDING_PRIORITIES, ShardingFilterIterDataPipe\u003c/code\u003e is no longer supported. Please import from \u003ccode\u003etorch.utils.data.datapipes.iter.sharding\u003c/code\u003e instead.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etorch.nn\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove Nested Jagged Tensor support from \u003ccode\u003enn.attention.flex_attention\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/pull/161734\"\u003e#161734\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/449b1768410104d3ed79d3bcfe4ba1d65c7f22c0\"\u003e\u003ccode\u003e449b176\u003c/code\u003e\u003c/a\u003e Add Joe Spisak to Core maintainers list (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172585\"\u003e#172585\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f6e6c0aeccd2fc6cc1a5551760285c716144f54b\"\u003e\u003ccode\u003ef6e6c0a\u003c/code\u003e\u003c/a\u003e [Graph Partition] Improve support for mutation ops (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172577\"\u003e#172577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/99cb42467a3109be40378c0b3814ccc4c2815790\"\u003e\u003ccode\u003e99cb424\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;[CI] Add IoU-based accuracy checking for inductor tests segmentation ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/1f74c10529e1fab25a092ed58a00bf1689ace60b\"\u003e\u003ccode\u003e1f74c10\u003c/code\u003e\u003c/a\u003e [CI] Add IoU-based accuracy checking for inductor tests segmentation models (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/e43b5bfde0a39bdd01514eb478373e56761207d8\"\u003e\u003ccode\u003ee43b5bf\u003c/code\u003e\u003c/a\u003e Bump fbgemm and torchrec pinned commit (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172179\"\u003e#172179\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/2c9af439c6f8284b6134a3821b1b9042cab24f50\"\u003e\u003ccode\u003e2c9af43\u003c/code\u003e\u003c/a\u003e Skip modded_nanogpt model in TorchInductor benchmark (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172141\"\u003e#172141\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/0e2459f08fc5329979e6ad986014278f2a87618c\"\u003e\u003ccode\u003e0e2459f\u003c/code\u003e\u003c/a\u003e A few weights_only unpickler fixes (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172105\"\u003e#172105\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/a266b606beaa94ca3cdf410d72a16d060b310439\"\u003e\u003ccode\u003ea266b60\u003c/code\u003e\u003c/a\u003e Touch \u003ccode\u003e__init__.py\u003c/code\u003e in \u003ccode\u003evendored_templates\u003c/code\u003e for CuTeDSL Grouped MM template (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/f3b5d8b6bf3c44dda5d9eedb8962bb04cee3cb9b\"\u003e\u003ccode\u003ef3b5d8b\u003c/code\u003e\u003c/a\u003e [MPS] Remove error-checking sync point from MaxUnpool (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172111\"\u003e#172111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytorch/pytorch/commit/3a5fb54c2ba17698a79243bfb410af7174c6e689\"\u003e\u003ccode\u003e3a5fb54\u003c/code\u003e\u003c/a\u003e Fix MPS mul performance regression (\u003ca href=\"https://redirect.github.com/pytorch/pytorch/issues/172106\"\u003e#172106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytorch/pytorch/compare/v2.9.1...v2.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `fastapi` from 0.124.4 to 0.128.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/fastapi/fastapi/releases\"\u003efastapi's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.128.0\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e➖ Drop support for \u003ccode\u003epydantic.v1\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14609\"\u003e#14609\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e✅ Run performance tests only on Pydantic v2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14608\"\u003e#14608\u003c/a\u003e by \u003ca href=\"https://github.com/tiangolo\"\u003e\u003ccode\u003e@​tiangolo\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.127.1\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔊 Add a custom \u003ccode\u003eFastAPIDeprecationWarning\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/14605\"\u003e#14605\u003c/a\u003e by \u003ca...\n\n_Description has been truncated_","html_url":"https://github.com/AnalineS/roteirosdedispersacao/pull/369","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/AnalineS%2Froteirosdedispersacao/issues/369","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/369/packages"}}]}