{"id":3458,"name":"msal","ecosystem":"pip","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python","issues_count":130,"created_at":"2025-06-06T16:30:11.658Z","updated_at":"2025-06-06T16:30:11.658Z","purl":"pkg:pypi/msal","metadata":{"id":2809085,"name":"msal","ecosystem":"pypi","description":"The Microsoft Authentication Library (MSAL) for Python library enables your app to access the Microsoft Cloud by supporting authentication of users with Microsoft Azure Active Directory accounts (AAD) and Microsoft Accounts (MSA) using industry standard OAuth2 and OpenID Connect.","homepage":"https://github.com/AzureAD/microsoft-authentication-library-for-python","licenses":"MIT","normalized_licenses":["MIT"],"repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python","keywords_array":[],"namespace":null,"versions_count":63,"first_release_published_at":"2018-12-12T19:53:29.000Z","latest_release_published_at":"2025-04-25T13:12:33.000Z","latest_release_number":"1.32.3","last_synced_at":"2025-06-06T01:32:13.608Z","created_at":"2022-04-10T11:39:45.755Z","updated_at":"2025-06-06T01:32:13.608Z","registry_url":"https://pypi.org/project/msal/","install_command":"pip install msal --index-url https://pypi.org/simple","documentation_url":"https://msal-python.readthedocs.io/","metadata":{"funding":null,"documentation":"https://msal-python.readthedocs.io/","classifiers":["Development Status :: 5 - Production/Stable","License :: OSI Approved :: MIT License","Operating System :: OS Independent","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3 :: Only","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"],"normalized_name":"msal"},"repo_metadata":{"id":37809196,"uuid":"67243113","full_name":"AzureAD/microsoft-authentication-library-for-python","owner":"AzureAD","description":"Microsoft Authentication Library (MSAL) for Python makes it easy to authenticate to Microsoft Entra ID. General docs are available here https://learn.microsoft.com/entra/msal/python/ Stable APIs are documented here https://msal-python.readthedocs.io. Questions can be asked on www.stackoverflow.com with tag \"msal\" + \"python\".","archived":false,"fork":false,"pushed_at":"2024-05-14T20:44:12.000Z","size":1589,"stargazers_count":739,"open_issues_count":62,"forks_count":186,"subscribers_count":54,"default_branch":"dev","last_synced_at":"2024-05-15T02:28:12.303Z","etag":null,"topics":["azure","microsoft-identity-platform","msal-python","sdks"],"latest_commit_sha":null,"homepage":"https://stackoverflow.com/questions/tagged/azure-ad-msal+python","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/AzureAD.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"contributing.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2016-09-02T17:45:26.000Z","updated_at":"2024-05-29T19:35:20.319Z","dependencies_parsed_at":"2024-01-26T11:31:02.685Z","dependency_job_id":"5eeba826-1152-4a91-91d1-cd29b1683899","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python","commit_stats":{"total_commits":611,"total_committers":25,"mean_commits":24.44,"dds":0.3142389525368249,"last_synced_commit":"2afec138f85ec0e6af65a147f77902898f828655"},"previous_names":[],"tags_count":52,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AzureAD","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/refs/heads/dev","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":219006044,"owners_count":16423078,"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":"AzureAD","name":"Azure Active Directory","uuid":"2966316","kind":"organization","description":"","email":null,"website":"http://azure.microsoft.com/en-us/services/active-directory/","location":"Redmond, WA","twitter":null,"company":null,"icon_url":"https://avatars.githubusercontent.com/u/2966316?v=4","repositories_count":59,"last_synced_at":"2024-04-10T18:10:54.150Z","metadata":{"has_sponsors_listing":false},"html_url":"https://github.com/AzureAD","funding_links":[],"total_stars":12787,"followers":471,"following":0,"created_at":"2022-11-02T16:23:09.244Z","updated_at":"2024-04-10T18:11:11.855Z","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AzureAD","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/AzureAD/repositories"},"tags":[{"name":"1.28.0","sha":"2d03ad97c5ef865b8d9d1a79b61fb08d6fbdea29","kind":"commit","published_at":"2024-03-19T06:48:45.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.28.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.28.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.28.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.28.0/manifests"},{"name":"1.27.0","sha":"7e045199798adbe5309034de12c64b1816d23489","kind":"commit","published_at":"2024-02-22T20:18:54.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.27.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.27.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.27.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.27.0/manifests"},{"name":"1.27.0b1","sha":"21a625c195aa1d48bce04703fe67ff8e1c682077","kind":"commit","published_at":"2023-12-09T01:35:58.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.27.0b1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.27.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.27.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.27.0b1/manifests"},{"name":"1.26.0","sha":"35310b5953b4524461ddb38b82bec93ee535cad0","kind":"commit","published_at":"2023-12-05T08:59:20.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.26.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.26.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.26.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.26.0/manifests"},{"name":"1.25.0","sha":"bcff60f44dcfa29adb87c0696be43919c43a3b8d","kind":"commit","published_at":"2023-11-03T23:47:00.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.25.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.25.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.25.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.25.0/manifests"},{"name":"1.24.1","sha":"4a88b63309d5c3c825e54c7580e267d1b7931d50","kind":"commit","published_at":"2023-09-29T07:42:24.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.24.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.24.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.1/manifests"},{"name":"1.24.0b2","sha":"9ad3fd7565c91667e111063ee560e1cbdbe53b41","kind":"commit","published_at":"2023-09-19T05:09:28.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.24.0b2","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.24.0b2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0b2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0b2/manifests"},{"name":"1.24.0","sha":"66fc6ebdb4c25609bfb918eb90528402f5963e41","kind":"commit","published_at":"2023-09-12T16:35:03.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.24.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.24.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0/manifests"},{"name":"1.24.0b1","sha":"e2e48d9dde73b05c9bbda072d6ec2e8dc62a65f8","kind":"commit","published_at":"2023-07-24T09:29:59.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.24.0b1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.24.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.24.0b1/manifests"},{"name":"1.23.0","sha":"131802556e8c3a41d9d034c162bf024e081794fa","kind":"commit","published_at":"2023-07-22T17:08:32.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.23.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.23.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.23.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.23.0/manifests"},{"name":"1.22.0","sha":"dabc08cb96e96544b0efec40447c6e8f36566ecc","kind":"commit","published_at":"2023-04-17T16:50:46.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.22.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.22.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.22.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.22.0/manifests"},{"name":"1.21.0","sha":"57820590093fdc15da4a6d9a1967b8de91256253","kind":"commit","published_at":"2023-01-31T20:17:14.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.21.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.21.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.21.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.21.0/manifests"},{"name":"1.20.0","sha":"14cbf591948ffb23eb64a675d81e4fa35112d1d9","kind":"commit","published_at":"2022-10-07T04:49:22.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.20.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.20.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.20.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.20.0/manifests"},{"name":"1.19.0","sha":"a0a59f1d5a50e8eb833635884bdc16fecf6bfc38","kind":"commit","published_at":"2022-09-21T04:09:56.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.19.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.19.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.19.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.19.0/manifests"},{"name":"1.20.0b1","sha":"e6114791b42c3ffb149a255c41d435fbba4fb88b","kind":"commit","published_at":"2022-08-29T08:21:14.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.20.0b1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.20.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.20.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.20.0b1/manifests"},{"name":"1.18.0","sha":"eae0e2508b76e0bee2775d2ab34f1af2fe9c08f2","kind":"commit","published_at":"2022-05-31T20:32:08.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.18.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.18.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.18.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.18.0/manifests"},{"name":"1.18.0b1","sha":"bc13dd423ec9735e6f68ae0c92d7747eb5a2e68a","kind":"commit","published_at":"2022-05-19T07:19:58.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.18.0b1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.18.0b1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.18.0b1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.18.0b1/manifests"},{"name":"1.17.0","sha":"eff8a1b2ec5f128a2e2a26250fea70ee937f72a1","kind":"commit","published_at":"2022-02-11T20:13:42.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.17.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.17.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.17.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.17.0/manifests"},{"name":"1.16.0","sha":"5b135b2e82d0a8064b226b8ca3d2ff5959070b05","kind":"commit","published_at":"2021-10-29T22:30:27.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.16.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.16.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.16.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.16.0/manifests"},{"name":"1.15.0","sha":"8573a1679fee629c0327f2fe94608dadbdd4e48c","kind":"commit","published_at":"2021-10-01T21:53:34.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.15.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.15.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.15.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.15.0/manifests"},{"name":"1.14.0","sha":"be55e2b3ed00e6d5fa2ad793552422e4919ccee3","kind":"commit","published_at":"2021-08-26T18:41:57.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.14.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.14.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.14.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.14.0/manifests"},{"name":"1.13.0","sha":"b82f0c03a2972c88aaf0f1e57164d36b788ea415","kind":"commit","published_at":"2021-07-20T22:05:17.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.13.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.13.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.13.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.13.0/manifests"},{"name":"1.12.0","sha":"e6f9d8f3547bcd999856ca0d7915a11f98ae0715","kind":"commit","published_at":"2021-05-19T19:42:11.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.12.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.12.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.12.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.12.0/manifests"},{"name":"1.11.0","sha":"928d4ea0d9d34aebcd2e1072b70973bdb7f96f28","kind":"commit","published_at":"2021-04-09T14:55:23.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.11.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.11.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.11.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.11.0/manifests"},{"name":"1.10.0","sha":"3b9b6aad6617d6f3718ee21a9f61220dbe444a3d","kind":"commit","published_at":"2021-03-08T20:39:15.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.10.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.10.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.10.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.10.0/manifests"},{"name":"1.9.0","sha":"72a72502aeddc2dea34f4b868031edaf36d59464","kind":"commit","published_at":"2021-02-09T07:44:35.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.9.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.9.0/manifests"},{"name":"1.8.0","sha":"82f9f0ca4d8924dae86659a7e949da54298e7a08","kind":"commit","published_at":"2020-12-16T01:51:03.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.8.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.8.0/manifests"},{"name":"1.7.0","sha":"7a7d93ba52a54e7e332c2a39bfd468342fe89e7e","kind":"commit","published_at":"2020-12-07T17:43:57.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.7.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.7.0/manifests"},{"name":"1.6.0","sha":"1b09a456dc63c2fe45927d25be9cc383aa5425b1","kind":"commit","published_at":"2020-11-02T06:28:09.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.6.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.6.0/manifests"},{"name":"1.5.1","sha":"410635eb0dd6420519bc5818d6614cb8b4363b8b","kind":"commit","published_at":"2020-10-21T19:48:54.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.5.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.5.1/manifests"},{"name":"1.5.0","sha":"c0375cfab0b808a75b44c8241fc239bd7aa9bebd","kind":"commit","published_at":"2020-09-03T21:46:33.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.5.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.5.0/manifests"},{"name":"1.4.3","sha":"f285074d6d5700457e7e80eed79560ab86c77a9a","kind":"commit","published_at":"2020-07-25T01:02:55.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.4.3","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.4.3","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.3","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.3/manifests"},{"name":"1.4.2","sha":"4e2ed20693d5d6064079dda25584c066f587f3a1","kind":"commit","published_at":"2020-07-23T22:22:44.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.4.2","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.4.2","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.2","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.2/manifests"},{"name":"1.4.1","sha":"d85a11b8fd19ee65b90a9879a0bd08e1b943e7fd","kind":"commit","published_at":"2020-06-26T21:41:58.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.4.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.1/manifests"},{"name":"1.4.0","sha":"814d710d539a8227b0f4b059656c8679c66c2b38","kind":"commit","published_at":"2020-06-25T22:21:47.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.4.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.4.0/manifests"},{"name":"1.3.0","sha":"3d24f539cea885c4bbd30288b91949bb0959469b","kind":"commit","published_at":"2020-05-15T03:23:26.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.3.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.3.0/manifests"},{"name":"1.2.0","sha":"6bade9faf7c832a47b13c8ac3eeba75f4084190f","kind":"commit","published_at":"2020-03-31T19:45:27.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.2.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.2.0/manifests"},{"name":"1.1.0","sha":"da09f2573ad0e8e58ef25f53efe49be0bec95f42","kind":"commit","published_at":"2020-01-23T23:09:09.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.1.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.1.0/manifests"},{"name":"1.0.0","sha":"d100f7c166ba11a518bbc3f4b5fa6d04d2169082","kind":"commit","published_at":"2019-11-01T23:14:04.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/1.0.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/1.0.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.0.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/1.0.0/manifests"},{"name":"0.9.0","sha":"bee7af007d46e3e66559b283ba4ca63280b1d24d","kind":"commit","published_at":"2019-10-31T19:00:13.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.9.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.9.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.9.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.9.0/manifests"},{"name":"0.8.0","sha":"ae7f7947e4d021bc543ee10c14f7f14b716aecb6","kind":"commit","published_at":"2019-10-19T00:10:07.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.8.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.8.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.8.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.8.0/manifests"},{"name":"0.7.0","sha":"c319ea3bddbb2ca02deb615449cedb40a1ae8a1f","kind":"commit","published_at":"2019-09-25T22:57:37.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.7.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.7.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.7.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.7.0/manifests"},{"name":"0.6.1","sha":"4b34fd660e5574eb876cfba63a1b927ae375efd6","kind":"commit","published_at":"2019-08-13T20:42:29.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.6.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.6.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.6.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.6.1/manifests"},{"name":"0.6.0","sha":"bb806367c1430490cbc451b21ef058f16779257d","kind":"commit","published_at":"2019-07-31T18:52:40.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.6.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.6.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.6.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.6.0/manifests"},{"name":"0.5.1","sha":"171d67ad687ac02fce1a3bc791f8475935f88684","kind":"commit","published_at":"2019-07-10T22:05:50.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.5.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.5.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.5.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.5.1/manifests"},{"name":"0.5.0","sha":"96387977ce53828672726b6a8014fc96af104db7","kind":"commit","published_at":"2019-07-08T21:00:22.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.5.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.5.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.5.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.5.0/manifests"},{"name":"0.4.1","sha":"210103c57f773701797552cd65f6fbc161d1c242","kind":"commit","published_at":"2019-06-18T18:05:06.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.4.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.4.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.4.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.4.1/manifests"},{"name":"0.4.0","sha":"fa88282f70be2abc6f25b4c17d856057936227c8","kind":"commit","published_at":"2019-05-22T19:23:30.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.4.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.4.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.4.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.4.0/manifests"},{"name":"0.3.1","sha":"e43de20e5d7597f8e7d3d184d9bffe5957fa8faa","kind":"commit","published_at":"2019-04-16T23:56:32.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.3.1","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.3.1","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.3.1","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.3.1/manifests"},{"name":"0.3.0","sha":"7acfdc5d3a3df844b860d26c64e23f5953df13b9","kind":"commit","published_at":"2019-04-02T21:55:37.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/0.3.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/0.3.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.3.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/0.3.0/manifests"},{"name":"v0.2.0","sha":"08b20d4b40eb45e2510ccb77f999d31fbf036603","kind":"commit","published_at":"2019-03-05T21:06:19.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/v0.2.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/v0.2.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/v0.2.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/v0.2.0/manifests"},{"name":"v0.1.0","sha":"2cff78fbce7b3507edf29db979f30b8cdcfdfd7f","kind":"commit","published_at":"2018-12-12T19:28:13.000Z","download_url":"https://codeload.github.com/AzureAD/microsoft-authentication-library-for-python/tar.gz/v0.1.0","html_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases/tag/v0.1.0","dependencies_parsed_at":null,"dependency_job_id":null,"tag_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/v0.1.0","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/AzureAD%2Fmicrosoft-authentication-library-for-python/tags/v0.1.0/manifests"}]},"repo_metadata_updated_at":"2024-10-29T20:11:57.628Z","dependent_packages_count":209,"downloads":108501356,"downloads_period":"last-month","dependent_repos_count":2773,"rankings":{"downloads":0.01999240655384102,"dependent_repos_count":0.19497181804342203,"dependent_packages_count":0.1324267663474607,"stargazers_count":3.1549484874552234,"forks_count":4.5078291364564285,"docker_downloads_count":0.26998919676379796,"average":1.3800263019366954},"purl":"pkg:pypi/msal","advisories":[{"uuid":"GSA_kwCzR0hTQS1tNXZ2LTZyNGgtM3ZqOc4AA88w","url":"https://github.com/advisories/GHSA-m5vv-6r4h-3vj9","title":"Azure Identity Libraries and Microsoft Authentication Library Elevation of Privilege Vulnerability","description":"Azure Identity Libraries and Microsoft Authentication Library Elevation of Privilege Vulnerability","origin":"UNSPECIFIED","severity":"MODERATE","published_at":"2024-06-11T18:30:50.000Z","withdrawn_at":null,"classification":"GENERAL","cvss_score":5.5,"cvss_vector":"CVSS:3.1/AV:L/AC:L/PR:L/UI:N/S:U/C:H/I:N/A:N","references":["https://nvd.nist.gov/vuln/detail/CVE-2024-35255","https://msrc.microsoft.com/update-guide/vulnerability/CVE-2024-35255","https://github.com/Azure/azure-sdk-for-go/commit/50774cd9709905523136fb05e8c85a50e8984499","https://github.com/Azure/azure-sdk-for-js/commit/c6aa75d312ae463e744163cedfd8fc480cc8d492","https://github.com/Azure/azure-sdk-for-python/commit/cb065acd7d0f957327dc4f02d1646d4e51a94178","https://github.com/advisories/GHSA-m5vv-6r4h-3vj9"],"source_kind":"github","identifiers":["GHSA-m5vv-6r4h-3vj9","CVE-2024-35255"],"repository_url":"https://github.com/Azure/azure-sdk-for-go","blast_radius":78.61124966264995,"packages":[{"versions":[{"first_patched_version":"1.11.4","vulnerable_version_range":"\u003c 1.11.4"}],"ecosystem":"nuget","package_name":"Azure.Identity"},{"versions":[{"first_patched_version":"1.15.1","vulnerable_version_range":"\u003c 1.15.1"}],"ecosystem":"maven","package_name":"com.microsoft.azure:msal4j"},{"versions":[{"first_patched_version":"1.6.0","vulnerable_version_range":"\u003c 1.6.0"}],"ecosystem":"go","package_name":"github.com/Azure/azure-sdk-for-go/sdk/azidentity"},{"versions":[{"first_patched_version":"4.61.3","vulnerable_version_range":"\u003c 4.61.3"}],"ecosystem":"nuget","package_name":"Microsoft.Identity.Client"},{"versions":[{"first_patched_version":"2.9.2","vulnerable_version_range":"\u003c 2.9.2"}],"ecosystem":"npm","package_name":"@azure/msal-node"},{"versions":[{"first_patched_version":"1.28.0","vulnerable_version_range":"\u003c 1.28.0"}],"ecosystem":"pypi","package_name":"msal"},{"versions":[{"first_patched_version":"1.12.2","vulnerable_version_range":"\u003c 1.12.2"}],"ecosystem":"maven","package_name":"com.azure:azure-identity"},{"versions":[{"first_patched_version":"4.2.1","vulnerable_version_range":"\u003c 4.2.1"}],"ecosystem":"npm","package_name":"@azure/identity"},{"versions":[{"first_patched_version":"1.16.1","vulnerable_version_range":"\u003c 1.16.1"}],"ecosystem":"pypi","package_name":"azure-identity"}],"created_at":"2024-06-11T20:05:40.911Z","updated_at":"2024-06-11T21:05:44.054Z"}],"docker_usage_url":"https://docker.ecosyste.ms/usage/pypi/msal","docker_dependents_count":998,"docker_downloads_count":592500911,"usage_url":"https://repos.ecosyste.ms/usage/pypi/msal","dependent_repositories_url":"https://repos.ecosyste.ms/api/v1/usage/pypi/msal/dependencies","status":null,"funding_links":[],"critical":true,"versions_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/msal/versions","version_numbers_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/msal/version_numbers","dependent_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/msal/dependent_packages","related_packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/packages/msal/related_packages","maintainers":[{"uuid":"microsoft","login":"microsoft","name":null,"email":null,"url":null,"packages_count":790,"html_url":"https://pypi.org/user/microsoft/","role":null,"created_at":"2022-11-28T03:51:40.160Z","updated_at":"2022-11-28T03:51:40.160Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/microsoft/packages"},{"uuid":"nugetaad","login":"nugetaad","name":null,"email":null,"url":null,"packages_count":3,"html_url":"https://pypi.org/user/nugetaad/","role":null,"created_at":"2022-11-28T03:51:40.177Z","updated_at":"2022-11-28T03:51:40.177Z","packages_url":"https://packages.ecosyste.ms/api/v1/registries/pypi.org/maintainers/nugetaad/packages"}],"registry":{"name":"pypi.org","url":"https://pypi.org","ecosystem":"pypi","default":true,"packages_count":690329,"maintainers_count":292761,"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":68,"unique_repositories_count_past_30_days":7,"recent_issues":[{"uuid":"4574026541","node_id":"PR_kwDOCZ34ec7h64G5","number":44755,"state":"closed","title":"Bump msal from 1.36.0 to 1.37.0 in /docker/crypto","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-14T05:12:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T18:33:17.000Z","updated_at":"2026-06-14T05:12:47.000Z","time_to_close":988768,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"/docker/crypto","ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.36.0 to 1.37.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd User Federated Identity Credential (user_fic) grant type support in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes and Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse unsigned redirect URI for macOS broker silent flows in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape username parameter in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/901\"\u003e#901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForward MSAL client metadata headers through IMDS to ESTS in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/902\"\u003e#902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pymsalruntime minimum version to 0.20.6 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump cryptography dependency ceiling to \u0026lt;50 (N+3) in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eHow to ship a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI. Everything happens in Azure DevOps\n(no GitHub Releases, no Git-tag-triggered automation).\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBefore you start — one-time prerequisites\u003c/h2\u003e\n\u003cp\u003eConfirm these are set up in ADO (\u003ccode\u003eIdentityDivision\u003c/code\u003e → \u003ccode\u003eIDDP\u003c/code\u003e project) — the\nrelease will fail at runtime if any are missing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Pipeline \u003cstrong\u003eMSAL.Python-Publish\u003c/strong\u003e (definition \u003ccode\u003e3067\u003c/code\u003e) exists\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Service connection \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-AME\u003c/code\u003e\u003c/strong\u003e exists and is authorized\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Environment \u003cstrong\u003e\u003ccode\u003eMSAL-Python-Release\u003c/code\u003e\u003c/strong\u003e has a \u003cstrong\u003erequired manual approval\u003c/strong\u003e\nconfigured under \u003cem\u003eApprovals and checks\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Key Vault \u003cstrong\u003e\u003ccode\u003eMSALVault\u003c/code\u003e\u003c/strong\u003e contains cert \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-Release-Signing\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote on TestPyPI:\u003c/strong\u003e The TestPyPI publish path\n(\u003ccode\u003epublishTarget = test.pypi.org (Preview / RC)\u003c/code\u003e) is currently a \u003cstrong\u003eno-op\u003c/strong\u003e —\nthe \u003ccode\u003eMSAL-Test-Python-Upload\u003c/code\u003e service connection has not been created yet,\nso that stage prints a skip message and uploads nothing. Until it's wired up,\nuse an RC version (e.g. \u003ccode\u003e1.36.0rc1\u003c/code\u003e) on the production path for dry runs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003eRelease in 4 steps\u003c/h2\u003e\n\u003ch3\u003e1. Bump the version on \u003ccode\u003edev\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe package version lives in \u003cstrong\u003eone file\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\u003c/a\u003e.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e__version__ = \u0026quot;1.36.0\u0026quot;     # final release\n# or\n__version__ = \u0026quot;1.36.0rc1\u0026quot;  # RC / dry run\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOpen a PR, get it merged into \u003ccode\u003edev\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003e2. Cut the release branch\u003c/h3\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003egit checkout dev \u0026amp;\u0026amp; git pull\ngit checkout -b release-1.36.0\ngit push origin release-1.36.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePushing the branch does \u003cstrong\u003enot\u003c/strong\u003e publish anything — the pipeline is manual.\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/AzureAD/microsoft-authentication-library-for-python/commit/ebb980f1636e1b3a097ec6dbfd197fb88c5b9e7a\"\u003e\u003ccode\u003eebb980f\u003c/code\u003e\u003c/a\u003e Update version to 1.37.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c504b419a5a604a761d80d3f46365077ed8e6a21\"\u003e\u003ccode\u003ec504b41\u003c/code\u003e\u003c/a\u003e Migrate CI/CD from GitHub Actions to ADO; remove GH Actions workflow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/192a82dcd6c5371ece4f14f9701b0134b2e92a07\"\u003e\u003ccode\u003e192a82d\u003c/code\u003e\u003c/a\u003e Removed support for Python 3.8 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/08aa7fd273e93933617e74be842da15d3e36bf25\"\u003e\u003ccode\u003e08aa7fd\u003c/code\u003e\u003c/a\u003e Add User Federated Identity Credential (user_fic) grant type support (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d4f58ec792571d9b0e015a8d20661a0554a9536d\"\u003e\u003ccode\u003ed4f58ec\u003c/code\u003e\u003c/a\u003e Add documentation for MSI v2 mTLS in Python (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/904\"\u003e#904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/5866feb9b1158547f3379fe33ca5c89f65fafd84\"\u003e\u003ccode\u003e5866feb\u003c/code\u003e\u003c/a\u003e Create design document for MSI v2 In-Memory Key Approach (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/651d54b8bc3c0882f9dd4771f76b86b1a7c99373\"\u003e\u003ccode\u003e651d54b\u003c/code\u003e\u003c/a\u003e Update pymsalruntime minimum version to 0.20.6 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/895b581704dbd66c47ec2590d57ff7aff503a235\"\u003e\u003ccode\u003e895b581\u003c/code\u003e\u003c/a\u003e Use unsigned redirect uri for mac broker flows (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/8ea1eaaae97f416254bfe7f606d6c6babb80afed\"\u003e\u003ccode\u003e8ea1eaa\u003c/code\u003e\u003c/a\u003e Switch FMI tests from disabled IDLABS_APP_FMI to MISE-App-FMICLIENT (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/faf5dce2f72a5716c12b901eb52dea27e30d3e58\"\u003e\u003ccode\u003efaf5dce\u003c/code\u003e\u003c/a\u003e Bump cryptography dependency ceiling to \u0026lt;50 (N+3) (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.36.0...1.37.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=msal\u0026package-manager=pip\u0026previous-version=1.36.0\u0026new-version=1.37.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/demisto/dockerfiles/pull/44755","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/demisto%2Fdockerfiles/issues/44755","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44755/packages"},{"uuid":"4563322209","node_id":"PR_kwDOP6zckM7hX1No","number":253,"state":"closed","title":"chore(deps): Bump msal from 1.36.0 to 1.37.0 in the azure-services group across 1 directory","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-06-11T07:55:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-01T13:05:41.000Z","updated_at":"2026-06-11T07:55:17.000Z","time_to_close":845374,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"the azure-services group across 1 directory","ecosystem":"pip"},"body":"Bumps the azure-services group with 1 update in the / directory: [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python).\n\nUpdates `msal` from 1.36.0 to 1.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd User Federated Identity Credential (user_fic) grant type support in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes and Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse unsigned redirect URI for macOS broker silent flows in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape username parameter in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/901\"\u003e#901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForward MSAL client metadata headers through IMDS to ESTS in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/902\"\u003e#902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pymsalruntime minimum version to 0.20.6 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump cryptography dependency ceiling to \u0026lt;50 (N+3) in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eHow to ship a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI. Everything happens in Azure DevOps\n(no GitHub Releases, no Git-tag-triggered automation).\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBefore you start — one-time prerequisites\u003c/h2\u003e\n\u003cp\u003eConfirm these are set up in ADO (\u003ccode\u003eIdentityDivision\u003c/code\u003e → \u003ccode\u003eIDDP\u003c/code\u003e project) — the\nrelease will fail at runtime if any are missing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Pipeline \u003cstrong\u003eMSAL.Python-Publish\u003c/strong\u003e (definition \u003ccode\u003e3067\u003c/code\u003e) exists\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Service connection \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-AME\u003c/code\u003e\u003c/strong\u003e exists and is authorized\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Environment \u003cstrong\u003e\u003ccode\u003eMSAL-Python-Release\u003c/code\u003e\u003c/strong\u003e has a \u003cstrong\u003erequired manual approval\u003c/strong\u003e\nconfigured under \u003cem\u003eApprovals and checks\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Key Vault \u003cstrong\u003e\u003ccode\u003eMSALVault\u003c/code\u003e\u003c/strong\u003e contains cert \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-Release-Signing\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote on TestPyPI:\u003c/strong\u003e The TestPyPI publish path\n(\u003ccode\u003epublishTarget = test.pypi.org (Preview / RC)\u003c/code\u003e) is currently a \u003cstrong\u003eno-op\u003c/strong\u003e —\nthe \u003ccode\u003eMSAL-Test-Python-Upload\u003c/code\u003e service connection has not been created yet,\nso that stage prints a skip message and uploads nothing. Until it's wired up,\nuse an RC version (e.g. \u003ccode\u003e1.36.0rc1\u003c/code\u003e) on the production path for dry runs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003eRelease in 4 steps\u003c/h2\u003e\n\u003ch3\u003e1. Bump the version on \u003ccode\u003edev\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe package version lives in \u003cstrong\u003eone file\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\u003c/a\u003e.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e__version__ = \u0026quot;1.36.0\u0026quot;     # final release\n# or\n__version__ = \u0026quot;1.36.0rc1\u0026quot;  # RC / dry run\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOpen a PR, get it merged into \u003ccode\u003edev\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003e2. Cut the release branch\u003c/h3\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003egit checkout dev \u0026amp;\u0026amp; git pull\ngit checkout -b release-1.36.0\ngit push origin release-1.36.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePushing the branch does \u003cstrong\u003enot\u003c/strong\u003e publish anything — the pipeline is manual.\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/AzureAD/microsoft-authentication-library-for-python/commit/ebb980f1636e1b3a097ec6dbfd197fb88c5b9e7a\"\u003e\u003ccode\u003eebb980f\u003c/code\u003e\u003c/a\u003e Update version to 1.37.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c504b419a5a604a761d80d3f46365077ed8e6a21\"\u003e\u003ccode\u003ec504b41\u003c/code\u003e\u003c/a\u003e Migrate CI/CD from GitHub Actions to ADO; remove GH Actions workflow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/192a82dcd6c5371ece4f14f9701b0134b2e92a07\"\u003e\u003ccode\u003e192a82d\u003c/code\u003e\u003c/a\u003e Removed support for Python 3.8 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/08aa7fd273e93933617e74be842da15d3e36bf25\"\u003e\u003ccode\u003e08aa7fd\u003c/code\u003e\u003c/a\u003e Add User Federated Identity Credential (user_fic) grant type support (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d4f58ec792571d9b0e015a8d20661a0554a9536d\"\u003e\u003ccode\u003ed4f58ec\u003c/code\u003e\u003c/a\u003e Add documentation for MSI v2 mTLS in Python (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/904\"\u003e#904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/5866feb9b1158547f3379fe33ca5c89f65fafd84\"\u003e\u003ccode\u003e5866feb\u003c/code\u003e\u003c/a\u003e Create design document for MSI v2 In-Memory Key Approach (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/651d54b8bc3c0882f9dd4771f76b86b1a7c99373\"\u003e\u003ccode\u003e651d54b\u003c/code\u003e\u003c/a\u003e Update pymsalruntime minimum version to 0.20.6 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/895b581704dbd66c47ec2590d57ff7aff503a235\"\u003e\u003ccode\u003e895b581\u003c/code\u003e\u003c/a\u003e Use unsigned redirect uri for mac broker flows (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/8ea1eaaae97f416254bfe7f606d6c6babb80afed\"\u003e\u003ccode\u003e8ea1eaa\u003c/code\u003e\u003c/a\u003e Switch FMI tests from disabled IDLABS_APP_FMI to MISE-App-FMICLIENT (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/faf5dce2f72a5716c12b901eb52dea27e30d3e58\"\u003e\u003ccode\u003efaf5dce\u003c/code\u003e\u003c/a\u003e Bump cryptography dependency ceiling to \u0026lt;50 (N+3) (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.36.0...1.37.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/MostafaEldoqany/AYH-AI/pull/253","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostafaEldoqany%2FAYH-AI/issues/253","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/253/packages"},{"uuid":"4560863483","node_id":"PR_kwDORckIoM7hP1aB","number":808,"state":"open","title":"security(deps): bump the lerobot-dependencies group in /training/il/lerobot with 62 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-01T06:30:33.000Z","updated_at":"2026-06-03T13:45:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps): bump","group_name":"lerobot-dependencies","update_count":62,"packages":[{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow-skinny","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/mlflow/mlflow"},{"name":"sentry-sdk","old_version":"2.60.0","new_version":"2.61.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"huggingface-hub","old_version":"1.16.1","new_version":"1.17.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.2.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"av","old_version":"15.1.0","new_version":"17.0.1","repository_url":"https://github.com/PyAV-Org/PyAV"},{"name":"cmake","old_version":"4.1.3","new_version":"4.3.2","repository_url":"https://github.com/scikit-build/cmake-python-distributions"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"cuda-bindings","old_version":"12.9.4","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"deepdiff","old_version":"8.6.2","new_version":"9.1.0","repository_url":"https://github.com/qlustered/deepdiff"},{"name":"draccus","old_version":"0.10.0","new_version":"0.11.5","repository_url":"https://github.com/dlwh/draccus"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"idna","old_version":"3.16","new_version":"3.17","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jsonpickle","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/jsonpickle/jsonpickle"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"nvidia-cublas-cu12","old_version":"12.8.4.1","new_version":"12.9.2.10"},{"name":"nvidia-cuda-cupti-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"nvidia-cuda-nvrtc-cu12","old_version":"12.8.93","new_version":"12.9.86"},{"name":"nvidia-cuda-runtime-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"nvidia-cudnn-cu12","old_version":"9.10.2.21","new_version":"9.23.0.39"},{"name":"nvidia-cufft-cu12","old_version":"11.3.3.83","new_version":"11.4.1.4"},{"name":"nvidia-cufile-cu12","old_version":"1.13.1.3","new_version":"1.14.1.1"},{"name":"nvidia-curand-cu12","old_version":"10.3.9.90","new_version":"10.3.10.19"},{"name":"nvidia-cusolver-cu12","old_version":"11.7.3.90","new_version":"11.7.5.82"},{"name":"nvidia-cusparse-cu12","old_version":"12.5.8.93","new_version":"12.5.10.65"},{"name":"nvidia-cusparselt-cu12","old_version":"0.7.1","new_version":"0.8.1"},{"name":"nvidia-nccl-cu12","old_version":"2.27.5","new_version":"2.30.4"},{"name":"nvidia-nvjitlink-cu12","old_version":"12.8.93","new_version":"12.9.86"},{"name":"nvidia-nvshmem-cu12","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"platformdirs","old_version":"4.9.6","new_version":"4.10.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pytz","old_version":"2025.2","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml-include","old_version":"1.4.1","new_version":"2.2","repository_url":"https://github.com/tanbro/pyyaml-include"},{"name":"rerun-sdk","old_version":"0.26.2","new_version":"0.33.0","repository_url":"https://github.com/rerun-io/rerun"},{"name":"rpds-py","old_version":"0.30.0","new_version":"2026.5.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setuptools","old_version":"80.10.2","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"starlette","old_version":"0.52.1","new_version":"1.2.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.10.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.25.0","new_version":"0.27.0","repository_url":"https://github.com/pytorch/vision"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"typer","old_version":"0.26.2","new_version":"0.26.4","repository_url":"https://github.com/fastapi/typer"},{"name":"wandb","old_version":"0.24.2","new_version":"0.27.0","repository_url":"https://github.com/wandb/wandb"}],"path":"/training/il/lerobot","ecosystem":"pip"},"body":"Bumps the lerobot-dependencies group in /training/il/lerobot with 62 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.12.0` | `3.13.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.60.0` | `2.61.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.16.1` | `1.17.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.2.1` |\n| [av](https://github.com/PyAV-Org/PyAV) | `15.1.0` | `17.0.1` |\n| [cmake](https://github.com/scikit-build/cmake-python-distributions) | `4.1.3` | `4.3.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `12.9.4` | `13.3.1` |\n| [deepdiff](https://github.com/qlustered/deepdiff) | `8.6.2` | `9.1.0` |\n| [draccus](https://github.com/dlwh/draccus) | `0.10.0` | `0.11.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [idna](https://github.com/kjd/idna) | `3.16` | `3.17` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [jsonpickle](https://github.com/jsonpickle/jsonpickle) | `4.1.1` | `4.1.2` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.36.0` | `1.37.0` |\n| [nvidia-cublas-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.4.1` | `12.9.2.10` |\n| [nvidia-cuda-cupti-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [nvidia-cuda-nvrtc-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.93` | `12.9.86` |\n| [nvidia-cuda-runtime-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [nvidia-cudnn-cu12](https://developer.nvidia.com/cuda-zone) | `9.10.2.21` | `9.23.0.39` |\n| [nvidia-cufft-cu12](https://developer.nvidia.com/cuda-zone) | `11.3.3.83` | `11.4.1.4` |\n| [nvidia-cufile-cu12](https://developer.nvidia.com/cuda-zone) | `1.13.1.3` | `1.14.1.1` |\n| [nvidia-curand-cu12](https://developer.nvidia.com/cuda-zone) | `10.3.9.90` | `10.3.10.19` |\n| [nvidia-cusolver-cu12](https://developer.nvidia.com/cuda-zone) | `11.7.3.90` | `11.7.5.82` |\n| [nvidia-cusparse-cu12](https://developer.nvidia.com/cuda-zone) | `12.5.8.93` | `12.5.10.65` |\n| [nvidia-cusparselt-cu12](https://developer.nvidia.com/cusparselt) | `0.7.1` | `0.8.1` |\n| [nvidia-nccl-cu12](https://developer.nvidia.com/cuda-zone) | `2.27.5` | `2.30.4` |\n| [nvidia-nvjitlink-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.93` | `12.9.86` |\n| [nvidia-nvshmem-cu12](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.6` | `4.10.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.2` |\n| [pyyaml-include](https://github.com/tanbro/pyyaml-include) | `1.4.1` | `2.2` |\n| [rerun-sdk](https://github.com/rerun-io/rerun) | `0.26.2` | `0.33.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.30.0` | `2026.5.1` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.10.2` | `82.0.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.52.1` | `1.2.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.12.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.25.0` | `0.27.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.2` | `0.26.4` |\n| [wandb](https://github.com/wandb/wandb) | `0.24.2` | `0.27.0` |\n\nUpdates `marshmallow` from 3.26.2 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre_load\u003c/code\u003e and \u003ccode\u003epost_load\u003c/code\u003e parameters to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e for\nfield-level pre- and post-processing (:issue:\u003ccode\u003e2787\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTyping: improvements to \u003ccode\u003emarshmallow.validate\u003c/code\u003e (:pr:\u003ccode\u003e2940\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.4 (2026-04-02)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.validate.URL\u003c/code\u003e and \u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e accept Internationalized Domain Names (IDNs) (:issue:\u003ccode\u003e2821\u003c/code\u003e, :issue:\u003ccode\u003e2936\u003c/code\u003e).\n\u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e also correctly rejects IDN domains with leading/trailing hyphens.\nThanks :user:\u003ccode\u003etouhidurrr\u003c/code\u003e for the report.\u003c/li\u003e\n\u003cli\u003eTyping: Fix typing of \u003ccode\u003enested\u003c/code\u003e in \u003ccode\u003emarshmallow.fields.Nested\u003c/code\u003e (:pr:\u003ccode\u003e2935\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003emarshmallow.fields.Number\u003c/code\u003e and \u003ccode\u003emarshmallow.fields.Mapping\u003c/code\u003e abstract base classes to\nprevent using them within Schemas (:issue:\u003ccode\u003e2924\u003c/code\u003e). Thanks :user:\u003ccode\u003eMartingaleCoda\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003erequired\u003c/code\u003e to be set on \u003ccode\u003emarshmallow.fields.Contant\u003c/code\u003e (:issue:\u003ccode\u003e2900\u003c/code\u003e).\nThanks :user:\u003ccode\u003enosnickid\u003c/code\u003e for the report and :user:\u003ccode\u003eworksbyfriday\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003emarshmallow.validate.OneOf\u003c/code\u003e emitting extra pairs when labels outnumber choices (:issue:\u003ccode\u003e2869\u003c/code\u003e).\nThanks: user:\u003ccode\u003eT90REAL\u003c/code\u003e for the report and :user:\u003ccode\u003erstar327\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix behavior when passing a dot-delimited attribute name to \u003ccode\u003epartial\u003c/code\u003e for a key with \u003ccode\u003edata_key\u003c/code\u003e set (:pr:\u003ccode\u003e2903\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix Enum field by-name lookup to only return actual members (:pr:\u003ccode\u003e2902\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.DateTime\u003c/code\u003e with \u003ccode\u003eformat=\u0026quot;timestamp_ms\u0026quot;\u003c/code\u003e properly\nrejects bool values (:pr:\u003ccode\u003e2904\u003c/code\u003e). Thanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix typing of \u003ccode\u003eerror_messages\u003c/code\u003e argument to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e (:pr:\u003ccode\u003e1636\u003c/code\u003e).\nThanks :user:\u003ccode\u003erepole\u003c/code\u003e for reporting and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eipaddress.*\u003c/code\u003e to \u003ccode\u003emarshmallow.Schema.TYPE_MAPPING\u003c/code\u003e (:issue:\u003ccode\u003e1695\u003c/code\u003e).\nThanks :user:\u003ccode\u003eliberforce\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\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/marshmallow-code/marshmallow/commit/b596fdb0d1bda68ae400ab29e1f1bde2f06900b3\"\u003e\u003ccode\u003eb596fdb\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/256f0aabbc18232219e33854999372cfe1643f52\"\u003e\u003ccode\u003e256f0aa\u003c/code\u003e\u003c/a\u003e Add pre/post_load parameters to Field (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2799\"\u003e#2799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c847ad47a3f1235021bd2624b10c255a936ed107\"\u003e\u003ccode\u003ec847ad4\u003c/code\u003e\u003c/a\u003e Typing improvements to marshmallow.validate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/eb863228f5273244c19388fb6161ffdb90cb04d1\"\u003e\u003ccode\u003eeb86322\u003c/code\u003e\u003c/a\u003e Remove redundant docs job (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a44ad62a876d2e9330d0e370b438bafb058676d4\"\u003e\u003ccode\u003ea44ad62\u003c/code\u003e\u003c/a\u003e Avoid infinite recursion in nesting docs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2938\"\u003e#2938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3360e34a2da480eba03ae07bd4b15f0859027bf8\"\u003e\u003ccode\u003e3360e34\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/7b9ce45ac906c2597ac0acb7416e01e80218b546\"\u003e\u003ccode\u003e7b9ce45\u003c/code\u003e\u003c/a\u003e Fix changelog typos and update releasing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/f07eadc87dfac25ed505d5cd9d186920f2682733\"\u003e\u003ccode\u003ef07eadc\u003c/code\u003e\u003c/a\u003e Fix validate.Email to accept IDNs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4acb783c73130f762aa5b0df6b65ff7685d5ff2c\"\u003e\u003ccode\u003e4acb783\u003c/code\u003e\u003c/a\u003e Fix Unreachable Warning (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3492fae7b31d310814ad16fcddad5c7717d54949\"\u003e\u003ccode\u003e3492fae\u003c/code\u003e\u003c/a\u003e Remove redundant python-version (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow-skinny` from 3.12.0 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/mlflow/mlflow/releases\"\u003emlflow-skinny's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.0rc0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.13.0rc0, which deepens agent observability, tightens permissions, and broadens deployment options:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMajor New Features\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRBAC + Admin UI\u003c/strong\u003e: Major overhaul of MLflow's Role-Based Access Control — legacy per-resource permission tables collapsed into \u003ccode\u003erole_permissions\u003c/code\u003e, unified per-user permission APIs under \u003ccode\u003e/mlflow/users/permissions/*\u003c/code\u003e, workspace \u003ccode\u003eUSE\u003c/code\u003e permission lets users create experiments and registered models, default roles are seeded on workspace creation, \u003ccode\u003eprompt\u003c/code\u003e is promoted to a first-class RBAC \u003ccode\u003eresource_type\u003c/code\u003e, and a new 4-page Admin UI (account widget, \u003ccode\u003e/account\u003c/code\u003e page, Platform Admin pages, backend auth endpoints) opens to workspace managers scoped per their workspace. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22855\"\u003e#22855\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22857\"\u003e#22857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22859\"\u003e#22859\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22928\"\u003e#22928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22929\"\u003e#22929\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22941\"\u003e#22941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22973\"\u003e#22973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23086\"\u003e#23086\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23247\"\u003e#23247\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23248\"\u003e#23248\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23337\"\u003e#23337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23379\"\u003e#23379\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCoding-Agent Tracing as Plugins\u003c/strong\u003e: Claude Code, OpenClaw, Ollama, and OpenAI Codex are now wired into the AI Gateway as first-class assistant providers, plus a Claude Code TypeScript plugin with a setup wizard and \u003ccode\u003esettings.local.json\u003c/code\u003e support. The legacy Python autolog hook for \u003ccode\u003emlflow autolog claude\u003c/code\u003e is replaced by the new official plugin, and a coding-agent endpoint creation flow is now available directly in the AI Gateway UI. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20414\"\u003e#20414\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22098\"\u003e#22098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22566\"\u003e#22566\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22717\"\u003e#22717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23218\"\u003e#23218\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23285\"\u003e#23285\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23339\"\u003e#23339\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23430\"\u003e#23430\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23517\"\u003e#23517\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Gkrumbach07\"\u003e\u003ccode\u003e@​Gkrumbach07\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SuperSonnix71\"\u003e\u003ccode\u003e@​SuperSonnix71\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTrace Archival\u003c/strong\u003e: End-to-end trace archival across the tracking stack. Includes archival configuration models, OTLP and artifact helpers, SQLAlchemy archival passes, archive-aware retrieval fallback, plus workspace/experiment/server-level archival settings in the UI. Read archived traces back seamlessly. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23359\"\u003e#23359\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHelm Charts for Kubernetes Deployment\u003c/strong\u003e: First-class Helm chart for deploying MLflow to Kubernetes clusters — production-ready configuration, ingress, persistence, and \u003ccode\u003eappVersion\u003c/code\u003e wired to the released MLflow image. Get from \u003ccode\u003ehelm install\u003c/code\u003e to a running tracking server without writing your own manifests. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21973\"\u003e#21973\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003emlflow.genai.test_agent\u003c/code\u003e for Automated Agent Stress-Testing\u003c/strong\u003e: New API for stress-testing GenAI agents — generate adversarial inputs, replay them through your agent, and review the resulting traces in MLflow. Wires into the existing evaluation flow and assessment APIs. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22990\"\u003e#22990\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Span Links\u003c/strong\u003e: Tracing now supports the OpenTelemetry \u003ccode\u003eLink\u003c/code\u003e entity via \u003ccode\u003eLiveSpan.add_link()\u003c/code\u003e, letting you connect causally related spans across traces. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22797\"\u003e#22797\u003c/a\u003e, \u003ca href=\"https://github.com/khaledsulayman\"\u003e\u003ccode\u003e@​khaledsulayman\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDatabase Replica Routing\u003c/strong\u003e: The SQL tracking store now supports reader/writer instance routing for database replicas, so read-heavy MLflow deployments can scale horizontally without overloading the primary. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22910\"\u003e#22910\u003c/a\u003e, \u003ca href=\"https://github.com/ravidarbha\"\u003e\u003ccode\u003e@​ravidarbha\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStay tuned for the full release, which will include even more features and bug fixes.\u003c/p\u003e\n\u003cp\u003eTo try out this release candidate, please run:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install mlflow==3.13.0rc0\u003c/code\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow-skinny's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.13.0 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.13.0 includes several major features and improvements\u003c/p\u003e\n\u003ch3\u003eMajor New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e🔐 \u003ca href=\"https://mlflow.org/docs/latest/self-hosting/security/role-based-access-control\"\u003eRole-Based Access Control \u0026amp; Admin UI\u003c/a\u003e\u003c/strong\u003e: A full RBAC system with reusable roles and workspace-scoped grants, plus a new web Admin UI for managing users, roles, and permissions on self-hosted MLflow.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🗄️ \u003ca href=\"https://mlflow.org/docs/latest/genai/tracing/observe-with-traces/archive-traces\"\u003eTrace Retention \u0026amp; Auto Archival\u003c/a\u003e\u003c/strong\u003e: Automatically move aged trace span data out of your SQL backend into object storage (e.g. S3) while keeping every trace fully readable in the UI and APIs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🤖 \u003ca href=\"https://mlflow.org/docs/latest/genai/governance/ai-gateway/coding-agents/\"\u003eOne-click observability \u0026amp; governance for coding agents\u003c/a\u003e\u003c/strong\u003e: Onboard Claude Code, OpenAI Codex, or Gemini CLI to the AI Gateway in one click for tracing, usage tracking, budgets, and guardrails.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e✨ \u003ca href=\"https://mlflow.org/docs/latest/genai/getting-started/try-assistant/\"\u003eNew engines for MLflow Assistant\u003c/a\u003e\u003c/strong\u003e: Run MLflow Assistant on a local Ollama model, the OpenAI Codex CLI, or any MLflow AI Gateway endpoint, in addition to Claude Code.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e☸️ \u003ca href=\"https://mlflow.org/docs/latest/self-hosting/kubernetes-helm\"\u003eHelm chart for Kubernetes\u003c/a\u003e\u003c/strong\u003e: An official, production-ready Helm chart for deploying the MLflow tracking server to any Kubernetes cluster.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🌐 \u003ca href=\"https://mlflow.org/docs/latest/genai/governance/ai-gateway/coding-agents/hermes-agent\"\u003eHermes Agent support\u003c/a\u003e\u003c/strong\u003e: Route the Hermes Agent runtime through the AI Gateway and capture its end-to-end traces in MLflow over OpenTelemetry.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🪵 \u003ca href=\"https://mlflow.org/docs/latest/genai/tracing/app-instrumentation/logging\"\u003eSpan log levels\u003c/a\u003e\u003c/strong\u003e: Python-\u003ccode\u003elogging\u003c/code\u003e-style severity levels on spans, with a \u0026quot;Minimum log level\u0026quot; filter in the trace UI to hide low-level noise.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe permission system has been overhauled into a unified Role-Based Access Control model. The legacy per-resource permission tables, REST endpoints, and client methods are removed and replaced by roles backed by \u003ccode\u003erole_permissions\u003c/code\u003e, \u003ccode\u003edefault_permission\u003c/code\u003e now acts as a floor rather than an override, and a workspace \u003ccode\u003eUSE\u003c/code\u003e grant is sufficient to create experiments and registered models. Code that relied on the old per-resource permission APIs must migrate to the new role-based APIs. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22855\"\u003e#22855\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22859\"\u003e#22859\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22941\"\u003e#22941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23337\"\u003e#23337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23379\"\u003e#23379\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMLServer is no longer available as a pyfunc serving backend. The previously deprecated \u003ccode\u003eenable_mlserver\u003c/code\u003e option has been removed, so \u003ccode\u003emlflow models serve\u003c/code\u003e always uses the built-in scoring server. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23356\"\u003e#23356\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emlflow autolog claude\u003c/code\u003e no longer installs the old Python autolog hook; Claude Code tracing is now provided by the official Claude plugin, which must be installed separately. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23339\"\u003e#23339\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe default optimizer used by \u003ccode\u003ejudge.align()\u003c/code\u003e is now MemAlign, so existing alignment workflows may produce different judges than before unless an optimizer is passed explicitly. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23254\"\u003e#23254\u003c/a\u003e, \u003ca href=\"https://github.com/veronicalyu320\"\u003e\u003ccode\u003e@​veronicalyu320\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePointing the tracking or model registry store at a local file-system path now raises an error by default; set \u003ccode\u003eMLFLOW_ALLOW_FILE_STORE=true\u003c/code\u003e to keep using a file-based store. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22773\"\u003e#22773\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Assorted Features \u0026amp; Improvements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Gateway] Support AI Gateway as a backend of MLflow Assistant (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23559\"\u003e#23559\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Make admin pickers target the workspace they're granting into (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23543\"\u003e#23543\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Bring direct-grant picker to parity with role picker (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23420\"\u003e#23420\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Cherry-pick: Add OpenAI Codex CLI as assistant provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22566\"\u003e#22566\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23517\"\u003e#23517\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Support settings.local.json for Claude Code tracing config (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23285\"\u003e#23285\u003c/a\u003e, \u003ca href=\"https://github.com/Gkrumbach07\"\u003e\u003ccode\u003e@​Gkrumbach07\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add coding-agent endpoint creation flow in AI Gateway UI (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23430\"\u003e#23430\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking / UI] Unified per-user permission APIs: \u003ccode\u003egrant\u003c/code\u003e / \u003ccode\u003erevoke\u003c/code\u003e / \u003ccode\u003eget\u003c/code\u003e / \u003ccode\u003elist\u003c/code\u003e under \u003ccode\u003e/mlflow/users/permissions/*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23247\"\u003e#23247\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation / Tracing] Add \u003ccode\u003emlflow.genai.test_agent\u003c/code\u003e for automated agent stress-testing (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22990\"\u003e#22990\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Add /gateway/proxy/{endpoint_name}/{path} raw proxy endpoint (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23330\"\u003e#23330\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add Ollama as assistant provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22098\"\u003e#22098\u003c/a\u003e, \u003ca href=\"https://github.com/SuperSonnix71\"\u003e\u003ccode\u003e@​SuperSonnix71\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry / Tracking] feat(tracking): Add reader/writer instance routing for database replicas (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22910\"\u003e#22910\u003c/a\u003e, \u003ca href=\"https://github.com/ravidarbha\"\u003e\u003ccode\u003e@​ravidarbha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / Tracking] Add workspace trace archival configuration plumbing (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22164\"\u003e#22164\u003c/a\u003e, \u003ca href=\"https://github.com/HumairAK\"\u003e\u003ccode\u003e@​HumairAK\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / Tracking] Promote \u003ccode\u003eprompt\u003c/code\u003e to a first-class RBAC \u003ccode\u003eresource_type\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23248\"\u003e#23248\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Publish claude code integration as a plugin and add a setup wizard. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23218\"\u003e#23218\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Forward Usage tab MetricsFilter metric filters to chart View traces links by translating to Traces page URL DSL (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23239\"\u003e#23239\u003c/a\u003e, \u003ca href=\"https://github.com/aaronteo-db\"\u003e\u003ccode\u003e@​aaronteo-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Claude Code Agent Typescript (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20414\"\u003e#20414\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Adding metric filter component for Experiment Usage tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23120\"\u003e#23120\u003c/a\u003e, \u003ca href=\"https://github.com/aaronteo-db\"\u003e\u003ccode\u003e@​aaronteo-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003eLink\u003c/code\u003e entity and \u003ccode\u003eLiveSpan.add_link()\u003c/code\u003e for OpenTelemetry Span Links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22797\"\u003e#22797\u003c/a\u003e, \u003ca href=\"https://github.com/khaledsulayman\"\u003e\u003ccode\u003e@​khaledsulayman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Evaluation] Add Google ADK and third-party scorers (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22299\"\u003e#22299\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Open \u003ccode\u003e/admin\u003c/code\u003e to workspace managers (scoped per their workspace) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23086\"\u003e#23086\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Trace \u003ccode\u003eRunner.run_streamed()\u003c/code\u003e in OpenAI Agents SDK autolog (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22962\"\u003e#22962\u003c/a\u003e, \u003ca href=\"https://github.com/ktrk115\"\u003e\u003ccode\u003e@​ktrk115\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Feature/sagemaker build network option (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22996\"\u003e#22996\u003c/a\u003e, \u003ca href=\"https://github.com/pdifranc\"\u003e\u003ccode\u003e@​pdifranc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing / UI] Add log levels for Trace Spans with UI switch to filter (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23017\"\u003e#23017\u003c/a\u003e, \u003ca href=\"https://github.com/rrtheonlyone\"\u003e\u003ccode\u003e@​rrtheonlyone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Improve trace page empty state onboarding with setup and code blocks (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22533\"\u003e#22533\u003c/a\u003e, \u003ca href=\"https://github.com/vivian-xie-db\"\u003e\u003ccode\u003e@​vivian-xie-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / Tracking] Add UC traces upsell message for set_experiment calls on Databricks (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23038\"\u003e#23038\u003c/a\u003e, \u003ca href=\"https://github.com/xsh310\"\u003e\u003ccode\u003e@​xsh310\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Server-infra / UI] [Admin-UI-3/4] Add Platform Admin pages (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22929\"\u003e#22929\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\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\u003eSee full diff in \u003ca href=\"https://github.com/mlflow/mlflow/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.60.0 to 2.61.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.61.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when \u003ccode\u003estream_gen_ai_spans=True\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6307\"\u003e#6307\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow integrations to define control flow exceptions by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6425\"\u003e#6425\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisable string truncation for events by default by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6290\"\u003e#6290\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFollowing a previous significant increase of the string truncation limit, we've now completely removed the limit by default.\nIn case you have large strings in your events, you should now be able to see them.\u003c/p\u003e\n\u003cp\u003eIn rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.\nIf that happens, you can set the \u003ccode\u003emax_value_length\u003c/code\u003e \u003ccode\u003einit\u003c/code\u003e option to the previous value of \u003ccode\u003e100_000\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003esentry_sdk.init(\n    ...,\n    max_value_length=100_000,\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eLangchain\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6301\"\u003e#6301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eTypeError\u003c/code\u003e on \u003ccode\u003elangchain.agents\u003c/code\u003e import by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6268\"\u003e#6268\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003estarting_agent\u003c/code\u003e keyword argument in runner patches by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6428\"\u003e#6428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove hosted MCP tool spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6391\"\u003e#6391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ename\u003c/code\u003e, not \u003ccode\u003edescription\u003c/code\u003e in \u003ccode\u003estart_span\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6323\"\u003e#6323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6303\"\u003e#6303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic AI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting tokens on Invoke Agent spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6320\"\u003e#6320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6302\"\u003e#6302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eAgent.run_stream_events()\u003c/code\u003e patch by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6281\"\u003e#6281\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStrawberry\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWrap yields in try-except to ensure span cleanup by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6381\"\u003e#6381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003egraphql_span\u003c/code\u003e in \u003ccode\u003eresolve\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6289\"\u003e#6289\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(anthropic) Do not set \u003ccode\u003egen_ai.response.model\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6312\"\u003e#6312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(asyncpg) Use Sentry span attribute name conventions by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6306\"\u003e#6306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(boto3) Guard setting method by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6288\"\u003e#6288\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.61.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when \u003ccode\u003estream_gen_ai_spans=True\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6307\"\u003e#6307\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow integrations to define control flow exceptions by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6425\"\u003e#6425\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisable string truncation for events by default by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6290\"\u003e#6290\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFollowing a previous significant increase of the string truncation limit, we've now completely removed the limit by default.\nIn case you have large strings in your events, you should now be able to see them.\u003c/p\u003e\n\u003cp\u003eIn rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.\nIf that happens, you can set the \u003ccode\u003emax_value_length\u003c/code\u003e \u003ccode\u003einit\u003c/code\u003e option to the previous value of \u003ccode\u003e100_000\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003esentry_sdk.init(\n    ...,\n    max_value_length=100_000,\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eLangchain\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6301\"\u003e#6301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eTypeError\u003c/code\u003e on \u003ccode\u003elangchain.agents\u003c/code\u003e import by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6268\"\u003e#6268\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003estarting_agent\u003c/code\u003e keyword argument in runner patches by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6428\"\u003e#6428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove hosted MCP tool spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6391\"\u003e#6391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ename\u003c/code\u003e, not \u003ccode\u003edescription\u003c/code\u003e in \u003ccode\u003estart_span\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6323\"\u003e#6323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6303\"\u003e#6303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic AI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting tokens on Invoke Agent spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6320\"\u003e#6320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6302\"\u003e#6302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eAgent.run_stream_events()\u003c/code\u003e patch by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6281\"\u003e#6281\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStrawberry\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWrap yields in try-except to ensure span cleanup by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6381\"\u003e#6381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003egraphql_span\u003c/code\u003e in \u003ccode\u003eresolve\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6289\"\u003e#6289\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(anthropic) Do not set \u003ccode\u003egen_ai.response.model\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6312\"\u003e#6312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(asyncpg) Use Sentry span attribute name conventions by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6306\"\u003e#6306\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/getsentry/sentry-python/commit/53df8783b8961e2cba32d932b78c79e4408c7ed6\"\u003e\u003ccode\u003e53df878\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/24f6bf7a81aeb554f9ed1459d6a386bec6878ab1\"\u003e\u003ccode\u003e24f6bf7\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f50bec574650d3c09b14683491219d458f72c13b\"\u003e\u003ccode\u003ef50bec5\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35469462b9d672ec6be408a3292447252ea23712\"\u003e\u003ccode\u003e3546946\u003c/code\u003e\u003c/a\u003e release: 2.61.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/54f768680cad8a40ab97be4dddd16c12c9cba493\"\u003e\u003ccode\u003e54f7686\u003c/code\u003e\u003c/a\u003e feat(span-streaming): Add more attrs to segment spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6432\"\u003e#6432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e27e34fd05b337574a93352c773b1d4a2885d13\"\u003e\u003ccode\u003e7e27e34\u003c/code\u003e\u003c/a\u003e feat(openai): Support span streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6431\"\u003e#6431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/139a9a176f732ba7f1456510c2f0f00930e38558\"\u003e\u003ccode\u003e139a9a1\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when `stream_gen_ai_spans=Tru...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7bf1d6ee4ba0069e074c462c256f8a88b8b450a0\"\u003e\u003ccode\u003e7bf1d6e\u003c/code\u003e\u003c/a\u003e fix(openai_agents): Handle starting_agent keyword argument in runner patches ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/5662d86fd9ac8ddf635c0da489b275093c0feb08\"\u003e\u003ccode\u003e5662d86\u003c/code\u003e\u003c/a\u003e test(langchain): Deduplicate by removing \u003ccode\u003enode.callspec.id\u003c/code\u003e matching (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6426\"\u003e#6426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fb9def2f53ec65bbf70d1d8a63acb1a6a2f4e195\"\u003e\u003ccode\u003efb9def2\u003c/code\u003e\u003c/a\u003e feat(huey): Migrate Huey integration to spans-first tracing (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6399\"\u003e#6399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.60.0...2.61.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.16.1 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/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables\u003c/h2\u003e\n\u003ch2\u003e📋 Copy files between repositories\u003c/h2\u003e\n\u003cp\u003eYou can now copy files or entire folders between different repositories on the Hub — model to model, model to dataset, any combination — without downloading or re-uploading data. \u003ccode\u003eCommitOperationCopy\u003c/code\u003e accepts \u003ccode\u003esrc_repo_id\u003c/code\u003e and \u003ccode\u003esrc_repo_type\u003c/code\u003e for cross-repo sources, and LFS blobs are deduplicated server-side via the \u003ccode\u003e/lfs-files/duplicate\u003c/code\u003e endpoint. Non-LFS files are fetched from the source repo and committed as regular payloads. \u003ccode\u003ecopy_files\u003c/code\u003e and \u003ccode\u003ehf buckets cp\u003c/code\u003e now support repo-to-repo in addition to the existing bucket destinations.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import copy_files\r\n\u003ch1\u003eCopy an entire folder\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; copy_files(\n...     \u0026quot;hf://datasets/username/source-dataset/data/\u0026quot;,\n...     \u0026quot;hf://datasets/username/target-dataset/data/\u0026quot;,\n... )\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Copy] Support cross-repo file copies by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4203\"\u003e#4203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/upload#copy-files-between-repositories\"\u003eUpload guide — Copy files between repositories\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🖥️ SSH into a Space with \u003ccode\u003ehf spaces ssh\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA new \u003ccode\u003ehf spaces ssh\u003c/code\u003e command opens an SSH session directly into a Space's Dev Mode container. If Dev Mode is not enabled yet, the CLI prompts you to enable it. You can also use \u003ccode\u003e--dry-run\u003c/code\u003e to print the SSH command without running it, or \u003ccode\u003e-i\u003c/code\u003e to forward a specific key. Your SSH public key must be registered in your HF user settings.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# SSH into a Space\r\n$ hf spaces ssh username/my-space\r\n\u003ch1\u003ePrint the SSH command without running it\u003c/h1\u003e\n\u003cp\u003e$ hf spaces ssh username/my-space --dry-run\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Add \u003ccode\u003ehf spaces ssh\u003c/code\u003e by \u003ca href=\"https://github.com/gary149\"\u003e\u003ccode\u003e@​gary149\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4241\"\u003e#4241\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#ssh-into-a-space-dev-mode\"\u003eCLI guide — SSH into a Space\u003c/a\u003e | \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/manage-spaces#ssh-into-a-space-dev-mode\"\u003eSpaces guide — SSH into a Space\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📂 List all your repos with \u003ccode\u003ehf repos ls\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA new \u003ccode\u003ehf repos ls\u003c/code\u003e command lists all your repositories — models, datasets, spaces, and buckets — with storage size and percentage of namespace total, sorted by storage usage. It supports \u003ccode\u003e--type\u003c/code\u003e, \u003ccode\u003e--search\u003c/code\u003e, \u003ccode\u003e--namespace\u003c/code\u003e, and \u003ccode\u003e--limit\u003c/code\u003e (default 30, \u003ccode\u003e--limit 0\u003c/code\u003e for all), plus the standard \u003ccode\u003e--format\u003c/code\u003e family.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# List all your repos\r\n$ hf repos ls\r\n\u003ch1\u003eList all datasets under org with JSON output\u003c/h1\u003e\n\u003cp\u003e$ hf repos ls --namespace my-org --type dataset --limit 0 --format json | jq '.[].id'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Add \u003ccode\u003ehf repos ls\u003c/code\u003e command by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4283\"\u003e#4283\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#list-repos\"\u003eCLI guide — List repos\u003c/a\u003e | \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/repository#list-your-repositories\"\u003eRepository guide — List your repositories\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/huggingface/huggingface_hub/commit/b52949337c814e42995bcfb34782261635cedec5\"\u003e\u003ccode\u003eb529493\u003c/code\u003e\u003c/a\u003e Release: v1.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/e2f95efcf3fcffad3c148640ff0a90de81f2e967\"\u003e\u003ccode\u003ee2f95ef\u003c/code\u003e\u003c/a\u003e Release: v1.17.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/06d2a3f0ad40ecc27db36c8c581680570ea57653\"\u003e\u003ccode\u003e06d2a3f\u003c/code\u003e\u003c/a\u003e [CLI] Add \u003ccode\u003ehf repos ls\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4283\"\u003e#4283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/714044eac787571eba16a12bee57388f852d1c2e\"\u003e\u003ccode\u003e714044e\u003c/code\u003e\u003c/a\u003e [Docs] Document missing parameters in lfs, hf_file_system, and repocard_data ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5e8e940491b8deb45dede913417e17d16b0074fc\"\u003e\u003ccode\u003e5e8e940\u003c/code\u003e\u003c/a\u003e [CLI] Auto right-align numeric columns in human table output (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/bb09fa48a207c64f8c242b51e11aa2f1dabad48d\"\u003e\u003ccode\u003ebb09fa4\u003c/code\u003e\u003c/a\u003e [Copy] Support cross-repo file copies (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b17ab0cea69c418b15c5fe55a1fe334a1fc2eb72\"\u003e\u003ccode\u003eb17ab0c\u003c/code\u003e\u003c/a\u003e [CLI] Drop legacy printing helpers from \u003ccode\u003e_cli_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5c7920e9890c05e8fbbfb308ba957ab7576c7e55\"\u003e\u003ccode\u003e5c7920e\u003c/code\u003e\u003c/a\u003e [CLI] Migrate \u003ccode\u003ehf lfs-enable-largefiles\u003c/code\u003e, \u003ccode\u003ehf extensions\u003c/code\u003e, \u003ccode\u003ehf version\u003c/code\u003e to `o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ffc07b64a0ee65eab6da033d900aa0966cca3ca4\"\u003e\u003ccode\u003effc07b6\u003c/code\u003e\u003c/a\u003e [Jobs] Decouple Job hardware from Spaces, auto-sync enums with Hub API (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4266\"\u003e#4266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c06e97659db2247c90761d69750484f75034cc20\"\u003e\u003ccode\u003ec06e976\u003c/code\u003e\u003c/a\u003e [CLI] Auto-fit human tables to terminal width (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4251\"\u003e#4251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.16.1...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wrapt` from 1.17.3 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt 2.2.1\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\nbuilds). The source distribution is also attached together\nwith \u003ccode\u003eSHA256SUMS\u003c/code\u003e for verification.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.1rc1\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.1 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.1rc1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.1rc1.tar.gz\ncd wrapt-2.2.1rc1\npip install .\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003eSHA256SUMS\u003c/code\u003e is attached for verification of the archives.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.0\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-0\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the change in 2.2.0 which had aligned the C implementation of\n\u003ccode\u003eFunctionWrapper.__get__\u003c/code\u003e with the pure Python implementation by\nsubstituting \u003ccode\u003ePy_None\u003c/code\u003e for \u003ccode\u003eNULL\u003c/code\u003e before invoking the wrapped\ndescriptor's \u003ccode\u003e__get__\u003c/code\u003e slot. The change was based on a misreading of\nwhat the pure Python path does once it crosses back into C. The pure\nPython path calls \u003ccode\u003eself.__wrapped__.__get__(None, owner)\u003c/code\u003e from Python,\nand for any built-in descriptor that call is dispatched through the\n\u003ccode\u003e__get__\u003c/code\u003e slot wrapper inside CPython, which converts \u003ccode\u003ePy_None\u003c/code\u003e back\nto \u003ccode\u003eNULL\u003c/code\u003e before the wrapped descriptor's \u003ccode\u003etp_descr_get\u003c/code\u003e is invoked.\nThe pre 2.2.0 C path called \u003ccode\u003etp_descr_get\u003c/code\u003e directly with \u003ccode\u003eobj\u003c/code\u003e as\nreceived, which is \u003ccode\u003eNULL\u003c/code\u003e on class access, so it was already producing\nthe same value the Python path produces after the slot wrapper's\n\u003ccode\u003ePy_None\u003c/code\u003e to \u003ccode\u003eNULL\u003c/code\u003e conversion. Substituting \u003ccode\u003ePy_None\u003c/code\u003e for \u003ccode\u003eNULL\u003c/code\u003e\nbefore \u003ccode\u003etp_descr_get\u003c/code\u003e was called caused the wrapped descriptor to see\na value it would never see during ordinary class attribute lookup.\nNative CPython descriptors other than \u003ccode\u003efunc_descr_get\u003c/code\u003e fast path on\n\u003ccode\u003eobj == NULL\u003c/code\u003e and return the descriptor unchanged. With \u003ccode\u003ePy_None\u003c/code\u003e\nsubstituted in they fall through to a type check against the owner type\nof the descriptor, and \u003ccode\u003eNoneType\u003c/code\u003e does not satisfy that check, so a\n\u003ccode\u003eTypeError\u003c/code\u003e is raised. This broke class attribute access for any\nbuilt-in or C extension descriptor (\u003ccode\u003emethod_descriptor\u003c/code\u003e,\n\u003ccode\u003ewrapper_descriptor\u003c/code\u003e, \u003ccode\u003egetset_descriptor\u003c/code\u003e, \u003ccode\u003emember_descriptor\u003c/code\u003e)\nwrapped by \u003ccode\u003e@wrapt.decorator\u003c/code\u003e or \u003ccode\u003e@wrapt.function_wrapper\u003c/code\u003e. The\nfailure mode is most likely to show up in instrumentation libraries that\nmonkey patch built-in methods onto classes and where some inspection or\nbinding step then accesses the wrapped attribute through the class. The\nexisting test suite did not catch the regression because all wrappers in\nthe test suite are applied to pure Python functions, whose\n\u003ccode\u003efunc_descr_get\u003c/code\u003e slot treats \u003ccode\u003eNULL\u003c/code\u003e and \u003ccode\u003ePy_None\u003c/code\u003e equivalently. A\nnew regression test has been added which wraps a \u003ccode\u003emethod_descriptor\u003c/code\u003e\nand exercises class attribute access, so the missing coverage of\nnon-function descriptors is now in place. With thanks to\n\u003ccode\u003ebrettlangdon \u0026lt;https://github.com/brettlangdon\u0026gt;\u003c/code\u003e_ for reporting the\nregression and identifying the underlying cause.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eA special thanks to \u003ccode\u003edevdanzin \u0026lt;https://github.com/devdanzin\u0026gt;\u003c/code\u003e_ for providing\nan extremely useful analysis of issues in the wrapt C extension. Their\nanalysis led to the majority of the fixes and updates in this release and\ntheir help is much appreciated.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features\u003c/strong\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/GrahamDumpleton/wrapt/commit/787db020c8297c8ccefce9f5db31f90db341c3b6\"\u003e\u003ccode\u003e787db02\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.2.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/da8f21f30cb3bd31f92a2b70e24afb3539f272c5\"\u003e\u003ccode\u003eda8f21f\u003c/code\u003e\u003c/a\u003e Update to 2.2.1 for final release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/d89dce9172689cfb20a204dc08813db9df8aa8ad\"\u003e\u003ccode\u003ed89dce9\u003c/code\u003e\u003c/a\u003e Skip CPython specific descriptor tests on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/86f4e0eee67b3c0d173733cc0e3b6727bb6bedb1\"\u003e\u003ccode\u003e86f4e0e\u003c/code\u003e\u003c/a\u003e Go with 2.2.1rc1 instead of 2.2.1.dev1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/94bd940f21eeb03163b084626ff79ee5f1ff0cd0\"\u003e\u003ccode\u003e94bd940\u003c/code\u003e\u003c/a\u003e Run descriptor \u003cstrong\u003eget\u003c/strong\u003e tests against both implementations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/00541d54b7b978146808c1a61314a10df8732b4e\"\u003e\u003ccode\u003e00541d5\u003c/code\u003e\u003c/a\u003e Merge branch 'develop' of github.com:GrahamDumpleton/wrapt into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/daddcfee8716ffbdc4454912257ee22c2be35118\"\u003e\u003ccode\u003edaddcfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/GrahamDumpleton/wrapt/issues/341\"\u003e#341\u003c/a\u003e from brettlangdon/brettlangdon/descriptor.tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0583a12bbe1ea02939ddbd3dba69a84904e30a8d\"\u003e\u003ccode\u003e0583a12\u003c/code\u003e\u003c/a\u003e Revert Py_None substitution in C FunctionWrapper.\u003cstrong\u003eget\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/f8d4a2ea1bba1422234a8959e6b5dd9bc474bc6c\"\u003e\u003ccode\u003ef8d4a2e\u003c/code\u003e\u003c/a\u003e Add test coverage for native descriptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0dbbba12018a961083f2446f9275544bf16e97cc\"\u003e\u003ccode\u003e0dbbba1\u003c/code\u003e\u003c/a\u003e Update to 2.2.1.dev1 to test fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/1.17.3...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `av` from 15.1.0 to 17.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyAV-Org/PyAV/releases\"\u003eav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust tests so they work with ffmpeg 8.1 by \u003ca href=\"https://github.com/strophy\"\u003e\u003ccode\u003e@​strophy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2204\"\u003ePyAV-Org/PyAV#2204\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2205\"\u003ePyAV-Org/PyAV#2205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake VideoFormat.components lazy by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2209\"\u003ePyAV-Org/PyAV#2209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBreak reference cycle in \u003ccode\u003eStreamContainer.get()\u003c/code\u003e by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2221\"\u003ePyAV-Org/PyAV#2221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ethreads\u003c/code\u003e in filter graph by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2211\"\u003ePyAV-Org/PyAV#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash with container closing with GC by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2225\"\u003ePyAV-Org/PyAV#2225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2223\"\u003e#2223\u003c/a\u003e \u0026quot;Writing packets to data stream broken in av\u0026gt;=17\u0026quot; regression by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e_send_packet_and_recv\u003c/code\u003e to simplify \u003ccode\u003edecode()\u003c/code\u003e by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2233\"\u003ePyAV-Org/PyAV#2233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReuse a \u003ccode\u003eAVPacket\u003c/code\u003e read buffer when demuxing by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2234\"\u003ePyAV-Org/PyAV#2234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eAVCodecContext.frame_num\u003c/code\u003e instead of counting ourselves by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2236\"\u003ePyAV-Org/PyAV#2236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003elayout_compare()\u003c/code\u003e for \u003ccode\u003eAudioLayout.__eq__()\u003c/code\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2236\"\u003ePyAV-Org/PyAV#2236\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/strophy\"\u003e\u003ccode\u003e@​strophy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2204\"\u003ePyAV-Org/PyAV#2204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyAV-Org/PyAV/compare/v17.0.0...v17.0.1\"\u003ehttps://github.com/PyAV-Org/PyAV/compare/v17.0.0...v17.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev17.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimited API binary wheels are now built.\u003c/li\u003e\n\u003cli\u003e3.13t (free-threading) wheels are be dropped because of storage limitations. Use 3.14t or 3.13.\u003c/li\u003e\n\u003cli\u003eWhen an FFmpeg C function indicates an error, raise av.ArgumentError instead of ValueError/av.ValueError. This helps disambiguate why an exception is being thrown.\u003c/li\u003e\n\u003cli\u003eSave space by removing libaom (av1 encoder/decoder); dav1d, stvav1, and hardware, are available alternatives.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eOutputContainer.add_mux_stream()\u003c/code\u003e for creating codec-context-free streams, enabling muxing of pre-encoded packets without an encoder, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1970\"\u003e#1970\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse zero-copy for Packet init from buffer data by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2199\"\u003e#2199\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExpose AVIndexEntry by \u003ca href=\"https://github.com/Queuecumber\"\u003e\u003ccode\u003e@​Queuecumber\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2136\"\u003e#2136\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePreserving hardware memory during cuvid decoding, exporting/importing via dlpack by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2155\"\u003e#2155\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd enumerate_input_devices and enumerate_output_devices API by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2174\"\u003e#2174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eColorTrc\u003c/code\u003e and \u003ccode\u003eColorPrimaries\u003c/code\u003e enums; add \u003ccode\u003ecolor_trc\u003c/code\u003e and \u003ccode\u003ecolor_primaries\u003c/code\u003e properties to \u003ccode\u003eVideoFrame\u003c/code\u003e; add \u003ccode\u003edst_color_trc\u003c/code\u003e and \u003ccode\u003edst_color_primaries\u003c/code\u003e parameters to \u003ccode\u003eVideoFrame.reformat()\u003c/code\u003e, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1968\"\u003e#1968\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2175\"\u003e#2175\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd multithreaded reformatting and reduce Python overhead by replacing \u003ccode\u003esws_scale\u003c/code\u003e with \u003ccode\u003esws_scale_frame\u003c/code\u003e, skipping unnecessary reformats, and minimizing Python interactions by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevent data copy in \u003ccode\u003eVideoFrame.to_ndarray()\u003c/code\u003e for padded frames by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2190\"\u003e#2190\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2149\"\u003e#2149\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2155\"\u003e#2155\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix packet typing based on stream and specify InputContainer.demux based on incoming stream by \u003ca href=\"https://github.com/ntjohnson1\"\u003e\u003ccode\u003e@​ntjohnson1\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2134\"\u003e#2134\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix memory growth when remuxing with \u003ccode\u003eadd_stream_from_template\u003c/code\u003e by skipping \u003ccode\u003eavcodec_open2\u003c/code\u003e for template-initialized codec contexts, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2135\"\u003e#2135\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExplicitly disable OpenSSL in source builds (\u003ccode\u003escripts/build-deps\u003c/code\u003e) to prevent accidental OpenSSL linkage that breaks FIPS-enabled systems, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1972\"\u003e#1972\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing \u003ccode\u003eSWS_SPLINE\u003c/code\u003e interpolation by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2188\"\u003e#2188\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/wojiushixiaobai\"\u003e\u003ccode\u003e@​wojiushixiaobai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2076\"\u003ePyAV-Org/PyAV#2076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntjohnson1\"\u003e\u003ccode\u003e@​ntjohnson1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2134\"\u003ePyAV-Org/PyAV#2134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/clayy24\"\u003e\u003ccode\u003e@​clayy24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2181\"\u003ePyAV-Org/PyAV#2181\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/PyAV-Org/PyAV/blob/main/CHANGELOG.rst\"\u003eav's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.0.1\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA cdivision decorator for faster division.\u003c/li\u003e\n\u003cli\u003eAdjust tests so they work with 8.1 by :gh-user:\u003ccode\u003estrophy\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMake VideoFormat.components lazy by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBreak reference cycle \u003ccode\u003eStreamContainer.get()\u003c/code\u003e by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eExpose threads in filter graph by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix crash with container closing with GC by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u0026quot;Writing packets to data stream broken in av\u0026gt;=17\u0026quot; regression :issue:\u003ccode\u003e2223\u003c/code\u003e by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e_send_packet_and_recv\u003c/code\u003e to simplify \u003ccode\u003edecode()\u003c/code\u003e by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReuse a \u003ccode\u003eAVPacket\u003c/code\u003e read buffer when demuxing by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e and :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eAVCodecContext.frame_num\u003c/code\u003e instead of counting ourselves by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eav_channel_layout_compare()\u003c/code\u003e for \u003ccode\u003eAudioLayout.__eq__()\u003c/code\u003e by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev17.0.0\u003c/h2\u003e\n\u003cp\u003eMajor:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited API binary wheels are now built.\u003c/li\u003e\n\u003cli\u003e3.13t (free-threading) will be dropped because of storage limitations.\u003c/li\u003e\n\u003cli\u003eWhen an FFmpeg C function indicates an error, raise av.ArgumentError instead of ValueError/av.ValueError. This helps disambiguate why an exception is being thrown.\u003c/li\u003e\n\u003cli\u003eSave space by removing libaom (av1 encoder/decoder); dav1d, stvav1, and hardware, are available alternatives.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/808","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/808","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/808/packages"},{"uuid":"4559645051","node_id":"PR_kwDOJc4wYs7hL8VN","number":83,"state":"open","title":"Update msal requirement from \u003e=1.36.0 to \u003e=1.37.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-01T01:12:19.000Z","updated_at":"2026-06-01T01:17:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.36.0","new_version":"\u003e=1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"\u003e [!WARNING]\n\u003e Dependabot will stop supporting `python v3.9`!\n\u003e \n\u003e Please upgrade to one of the following versions: `v3.9`, `v3.10`, `v3.11`, `v3.12`, `v3.13`, or `v3.14`.\n\u003e\n\nUpdates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/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 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/Integration-Automation/FileAutomation/pull/83","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integration-Automation%2FFileAutomation/issues/83","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/83/packages"},{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\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.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\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📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\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 and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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 sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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 image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\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 Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\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/15530\"\u003e#15530\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 uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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/15526\"\u003e#15526\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/15525\"\u003e#15525\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/15524\"\u003e#15524\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 fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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 typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\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 tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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 urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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 cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\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.0 to 2.13.4\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.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\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.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\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.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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.\u003c/p\u003e\n\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/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"},{"uuid":"4479317329","node_id":"PR_kwDODnmQMs7dKhcF","number":1052,"state":"closed","title":"chore(deps-dev): bump msal from 1.33.0 to 1.36.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-20T22:46:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T16:50:59.000Z","updated_at":"2026-05-20T22:46:52.000Z","time_to_close":107743,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"msal","old_version":"1.33.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.33.0 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/microsoftgraph/msgraph-sdk-python-core/pull/1052","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoftgraph%2Fmsgraph-sdk-python-core/issues/1052","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1052/packages"},{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\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/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\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 inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\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 pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\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 pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\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 cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\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 mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\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 python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\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 starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\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 pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\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 pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\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 zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\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 strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\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 python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\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 authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\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 aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\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 pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\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 pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\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 pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\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 actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\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 actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\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 sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\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.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\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 strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\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 pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.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.0 to 2.13.4\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.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\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.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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.\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/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"},{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\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/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\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 inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\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 pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\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 pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\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 cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\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 mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\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 python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\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 starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\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 pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\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 pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\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 zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\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 strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\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 python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\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 authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\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 aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\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 pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\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 pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\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 pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\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 actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\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 actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\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 sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\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.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\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 strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\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 pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.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.0 to 2.13.3\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.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\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\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.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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\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/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\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/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"},{"uuid":"4332419429","node_id":"PR_kwDOJc4wYs7Vylyn","number":68,"state":"open","title":"Update msal requirement from \u003e=1.28.0 to \u003e=1.36.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T00:36:46.000Z","updated_at":"2026-04-27T00:37:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.28.0","new_version":"\u003e=1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.28.0...1.36.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/Integration-Automation/FileAutomation/pull/68","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integration-Automation%2FFileAutomation/issues/68","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/68/packages"},{"uuid":"4327887283","node_id":"PR_kwDOSMPknM7VlQZN","number":3,"state":"open","title":"Update msal requirement from \u003e=1.33.0 to \u003e=1.36.0","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-25T10:54:05.000Z","updated_at":"2026-04-25T10:54:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.33.0","new_version":"\u003e=1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.36.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/nightbreezerises/agentrx/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nightbreezerises%2Fagentrx/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4326126764","node_id":"PR_kwDOPpHAzc7VfyHX","number":67,"state":"closed","title":"build(deps): bump msal from 1.34.0 to 1.36.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-05T23:14:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-24T23:19:12.000Z","updated_at":"2026-06-05T23:14:25.000Z","time_to_close":3628512,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.34.0 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.36.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=msal\u0026package-manager=uv\u0026previous-version=1.34.0\u0026new-version=1.36.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/traygo-app/canteen-management-system-server/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/traygo-app%2Fcanteen-management-system-server/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"},{"uuid":"4244521853","node_id":"PR_kwDORiN6gs7RqUkE","number":23,"state":"closed","title":"chore(deps): bump the pip-all group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-11T12:58:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-11T12:31:30.000Z","updated_at":"2026-04-11T12:58:58.000Z","time_to_close":1640,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-all","update_count":21,"packages":[{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"rich","old_version":"14.3.3","new_version":"14.3.4","repository_url":"https://github.com/Textualize/rich"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"ruff","old_version":"0.15.5","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"librt","old_version":"0.8.1","new_version":"0.9.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mkdocs-get-deps","old_version":"0.2.0","new_version":"0.2.2","repository_url":"https://github.com/mkdocs/get-deps"},{"name":"mkdocs-material","old_version":"9.7.4","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"msal","old_version":"1.35.1","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.2","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"setuptools-scm","old_version":"9.2.2","new_version":"10.0.5","repository_url":"https://github.com/pypa/setuptools-scm"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-all group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `14.3.4` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.5` | `0.15.10` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.5` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.9.0` |\n| [mkdocs-get-deps](https://github.com/mkdocs/get-deps) | `0.2.0` | `0.2.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.4` | `9.7.6` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.1` | `1.36.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [setuptools-scm](https://github.com/pypa/setuptools-scm) | `9.2.2` | `10.0.5` |\n\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 14.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/commit/ee8378c3bbbd7c75abc2f55c6c19e83b218ae81d\"\u003e\u003ccode\u003eee8378c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4073\"\u003e#4073\u003c/a\u003e from Textualize/bump1434\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f441a326f10af5dc0cd570dadaed16e7f7035fc3\"\u003e\u003ccode\u003ef441a32\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/b3167144fea59b02e257c1361f5e0c5832065ccd\"\u003e\u003ccode\u003eb316714\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/a86dce09714f4e5195cce8c15fce7a586d7b562a\"\u003e\u003ccode\u003ea86dce0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3845\"\u003e#3845\u003c/a\u003e from akx/faster-ids\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7f40063da781f4990d21423f23f7ccb3165ce0bd\"\u003e\u003ccode\u003e7f40063\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4070\"\u003e#4070\u003c/a\u003e from KRRT7/upstream/lazy-traceback-logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6729c6f6c4ee24a13a94d825cb7ce66b52206db2\"\u003e\u003ccode\u003e6729c6f\u003c/code\u003e\u003c/a\u003e typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/64f2f1cf89a698f17f5b2c801b014dc8aced1177\"\u003e\u003ccode\u003e64f2f1c\u003c/code\u003e\u003c/a\u003e import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/de4a8bd5746a3cbda6d8ead9f75cbf49f868a639\"\u003e\u003ccode\u003ede4a8bd\u003c/code\u003e\u003c/a\u003e lazy is_expandable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e5b7b3199fecb1f7d1fbc3d3d0df800fa6234830\"\u003e\u003ccode\u003ee5b7b31\u003c/code\u003e\u003c/a\u003e no need to rename locals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/5d6e2d72e4012eb594e131a8319dbd4165d97eda\"\u003e\u003ccode\u003e5d6e2d7\u003c/code\u003e\u003c/a\u003e fix docstring\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v14.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 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.19.1...v1.20.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.2 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\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/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.2...9.0.3\"\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.5 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.15.5...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.12.20250915 to 6.0.12.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.1 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR 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\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/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.1...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.39.0\u003c/h2\u003e\n\u003ch2\u003e1.39.0 (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the previously undocumented \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable from \u003ccode\u003eAZURE_CLOUD\u003c/code\u003e to \u003ccode\u003eAZURE_SDK_CLOUD_CONF\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/dee80a8fd745ddab91933f05e795cf41e10ab8fe\"\u003e\u003ccode\u003edee80a8\u003c/code\u003e\u003c/a\u003e Changed the \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45763\"\u003e#45763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a2d11701462371d3f8b38b935f77f2e5070a5bf7\"\u003e\u003ccode\u003ea2d1170\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45671\"\u003e#45671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.5 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.5...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes 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/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3084\"\u003e#3084\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3152\"\u003e#3152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3199\"\u003e#3199\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3202\"\u003e#3202\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3209\"\u003e#3209\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3212\"\u003e#3212\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2991\"\u003e#2991\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2993\"\u003e#2993\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3110\"\u003e#3110\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3140\"\u003e#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3121\"\u003e#3121\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3201\"\u003e#3201\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3213\"\u003e#3213\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3225\"\u003e#3225\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/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n:issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e2991\u003c/code\u003e :issue:\u003ccode\u003e2993\u003c/code\u003e :issue:\u003ccode\u003e3110\u003c/code\u003e :pr:\u003ccode\u003e3139\u003c/code\u003e :pr:\u003ccode\u003e3140\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. :pr:\u003ccode\u003e3139\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. :issue:\u003ccode\u003e3121\u003c/code\u003e :pr:\u003ccode\u003e3201\u003c/code\u003e :pr:\u003ccode\u003e3213\u003c/code\u003e :pr:\u003ccode\u003e3225\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/click/commit/052c006033729bbb422cbdad0c4fee988ecb5aa5\"\u003e\u003ccode\u003e052c006\u003c/code\u003e\u003c/a\u003e Change update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/502b7ce7b131473ef00a3586e60bb000f33b4c43\"\u003e\u003ccode\u003e502b7ce\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' of \u003ca href=\"https://github.com/pallets/click\"\u003ehttps://github.com/pallets/click\u003c/a\u003e into release-8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a0a37e411820861d48e21b131fdd840abaf746e0\"\u003e\u003ccode\u003ea0a37e4\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/57be6fc2b40eb40279d022e6aabc983ee0dfb7a9\"\u003e\u003ccode\u003e57be6fc\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/781d6a88bdd30229e72a84cd6753b0235f339679\"\u003e\u003ccode\u003e781d6a8\u003c/code\u003e\u003c/a\u003e Update publish workflows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3266\"\u003e#3266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ff795b66ba945239c779b528171f5fe4536cf844\"\u003e\u003ccode\u003eff795b6\u003c/code\u003e\u003c/a\u003e Update precommit pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dd87ef4f9fa7d6f13e14885e9a6842a21ededebc\"\u003e\u003ccode\u003edd87ef4\u003c/code\u003e\u003c/a\u003e Update github action pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/93d3f9d22e90035bc2b51c2183c15bd4a021376f\"\u003e\u003ccode\u003e93d3f9d\u003c/code\u003e\u003c/a\u003e Release version 8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3299ba1a8a5de34b24a7226a683a837d8a0857e7\"\u003e\u003ccode\u003e3299ba1\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3264\"\u003e#3264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7f62c4d002e5b5bca3ebef6b995b7338740fe6f\"\u003e\u003ccode\u003eb7f62c4\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `librt` from 0.8.1 to 0.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/8f66cfe9cb3611b32741dd5b00e9049a627d6ccb\"\u003e\u003ccode\u003e8f66cfe\u003c/code\u003e\u003c/a\u003e Bump version to 0.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/149b3698bc3f6f7724f3fe6148938d6a4bc0d421\"\u003e\u003ccode\u003e149b369\u003c/code\u003e\u003c/a\u003e Sync mypy including extract_symbol() PR (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/05c11113460b73eb8ecc90adf539996012510169\"\u003e\u003ccode\u003e05c1111\u003c/code\u003e\u003c/a\u003e Use PEP 639 license metadata (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/34\"\u003e#34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mypyc/librt/compare/v0.8.1...v0.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-get-deps` from 0.2.0 to 0.2.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocs/get-deps/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.4 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.4...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.35.1 to 1.36.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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://gi...\n\n_Description has been truncated_","html_url":"https://github.com/maxvanp/az-rbac-watch/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxvanp%2Faz-rbac-watch/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"},{"uuid":"4237784683","node_id":"PR_kwDOE0q91s7RY3tL","number":7589,"state":"open","title":"chore(deps-dev): bump msal from 1.35.1 to 1.36.0 in /it/python","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-10T08:33:51.000Z","updated_at":"2026-04-10T12:15:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"msal","old_version":"1.35.1","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"/it/python","ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.35.1 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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=msal\u0026package-manager=pip\u0026previous-version=1.35.1\u0026new-version=1.36.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/microsoft/kiota/pull/7589","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fkiota/issues/7589","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7589/packages"},{"uuid":"4210901163","node_id":"PR_kwDORZyJE87QKwd3","number":3,"state":"open","title":"deps(deps): bump the minor-patch group across 1 directory with 23 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-06T09:52:23.000Z","updated_at":"2026-04-06T09:52:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-patch","update_count":23,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.24","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.4","new_version":"0.15.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"locust","old_version":"2.43.3","new_version":"2.43.4","repository_url":"https://github.com/locustio/locust"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"googleapis-common-protos","old_version":"1.73.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"8.9.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-patch group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.44.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.24` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.9` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [locust](https://github.com/locustio/locust) | `2.43.3` | `2.43.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.0` | `1.74.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `8.9.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n\n\nUpdates `fastapi` from 0.135.1 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.135.1...0.135.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.41.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\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.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\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/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use 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\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\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/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e 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/python-multipart/pull/244\"\u003eKludex/python-multipart#244\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/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\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/python-multipart/pull/229\"\u003eKludex/python-multipart#229\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/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\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/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\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/python-multipart/commit/b7cc76dbb30d647c0eb7288221d08a6520317b7a\"\u003e\u003ccode\u003eb7cc76d\u003c/code\u003e\u003c/a\u003e Version 0.0.24 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/245\"\u003e#245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/8f1838d2a20f31cd783e6c3ecf8eb6085aeadaf0\"\u003e\u003ccode\u003e8f1838d\u003c/code\u003e\u003c/a\u003e Validate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/2582c83be4e6cad00b8edaad730455e20e9eb1af\"\u003e\u003ccode\u003e2582c83\u003c/code\u003e\u003c/a\u003e Restore mkdocstrings handler options to handler level (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/8f1dbede94b3eff41fafa77a56eaab6824bf18c4\"\u003e\u003ccode\u003e8f1dbed\u003c/code\u003e\u003c/a\u003e Harden GitHub Actions workflows and add zizmor audit (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a4be31e68a224e0cd18c966d6cbdfc28cab9603\"\u003e\u003ccode\u003e3a4be31\u003c/code\u003e\u003c/a\u003e Unbreak docs build on newer pygments/mkdocstrings (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/241\"\u003e#241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e59b6b7b60e9993ead149a15a2ec4db73453fe0a\"\u003e\u003ccode\u003ee59b6b7\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/227\"\u003e#227\u003c/a\u003e to changelog (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4bd03ea40a556611f244a9c09da2b21ab458bc98\"\u003e\u003ccode\u003e4bd03ea\u003c/code\u003e\u003c/a\u003e Version 0.0.23 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/aa6f106ea81c4118e829d9125a14400ff23b65d3\"\u003e\u003ccode\u003eaa6f106\u003c/code\u003e\u003c/a\u003e Return processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/c85631946a4125edf81fa64f0d1bc6966ed79aeb\"\u003e\u003ccode\u003ec856319\u003c/code\u003e\u003c/a\u003e Remove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7303c74515fe10aaaa1131c0e0f64a83d3791b02\"\u003e\u003ccode\u003e7303c74\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/237\"\u003e#237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.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.4 to 0.15.9\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.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\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\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Avoid shadowing existing \u003ccode\u003emsg\u003c/code\u003e in fix for \u003ccode\u003eEM101\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24363\"\u003e#24363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Ignore pre-initialization references in \u003ccode\u003eSIM113\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24235\"\u003e#24235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eW391\u003c/code\u003e fixes for consecutive empty notebook cells (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24236\"\u003e#24236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e nested class matching (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24273\"\u003e#24273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF072\u003c/code\u003e: skip formfeeds on dedent (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24308\"\u003e#24308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid re-using symbol in \u003ccode\u003eRUF024\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24316\"\u003e#24316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Parenthesize expression in \u003ccode\u003eRUF050\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24234\"\u003e#24234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24280\"\u003e#24280\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-simplify\u003c/code\u003e] Suppress \u003ccode\u003eSIM105\u003c/code\u003e for \u003ccode\u003eexcept*\u003c/code\u003e before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23869\"\u003e#23869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Extend \u003ccode\u003eF507\u003c/code\u003e to flag \u003ccode\u003e%\u003c/code\u003e-format strings with zero placeholders (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24215\"\u003e#24215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ccode\u003eUP018\u003c/code\u003e should detect more unnecessarily wrapped literals (UP018) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24093\"\u003e#24093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e callable scope handling to support lambdas (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24274\"\u003e#24274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF010\u003c/code\u003e: Mark fix as unsafe when it deletes a comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24270\"\u003e#24270\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enested-string-quote-style\u003c/code\u003e formatting option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24312\"\u003e#24312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Clarify RUF071 fix safety for non-path string comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24149\"\u003e#24149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Clarify import cycle wording for \u003ccode\u003eTC001\u003c/code\u003e/\u003ccode\u003eTC002\u003c/code\u003e/\u003ccode\u003eTC003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24322\"\u003e#24322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid rendering fix lines with trailing whitespace after \u003ccode\u003e|\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24343\"\u003e#24343\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tranhoangtu-it\"\u003e\u003ccode\u003e@​tranhoangtu-it\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/zsol\"\u003e\u003ccode\u003e@​zsol\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.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\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Avoid shadowing existing \u003ccode\u003emsg\u003c/code\u003e in fix for \u003ccode\u003eEM101\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24363\"\u003e#24363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Ignore pre-initialization references in \u003ccode\u003eSIM113\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24235\"\u003e#24235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eW391\u003c/code\u003e fixes for consecutive empty notebook cells (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24236\"\u003e#24236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e nested class matching (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24273\"\u003e#24273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF072\u003c/code\u003e: skip formfeeds on dedent (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24308\"\u003e#24308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid re-using symbol in \u003ccode\u003eRUF024\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24316\"\u003e#24316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Parenthesize expression in \u003ccode\u003eRUF050\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24234\"\u003e#24234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24280\"\u003e#24280\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-simplify\u003c/code\u003e] Suppress \u003ccode\u003eSIM105\u003c/code\u003e for \u003ccode\u003eexcept*\u003c/code\u003e before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23869\"\u003e#23869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Extend \u003ccode\u003eF507\u003c/code\u003e to flag \u003ccode\u003e%\u003c/code\u003e-format strings with zero placeholders (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24215\"\u003e#24215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ccode\u003eUP018\u003c/code\u003e should detect more unnecessarily wrapped literals (UP018) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24093\"\u003e#24093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e callable scope handling to support lambdas (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24274\"\u003e#24274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF010\u003c/code\u003e: Mark fix as unsafe when it deletes a comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24270\"\u003e#24270\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enested-string-quote-style\u003c/code\u003e formatting option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24312\"\u003e#24312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Clarify RUF071 fix safety for non-path string comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24149\"\u003e#24149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Clarify import cycle wording for \u003ccode\u003eTC001\u003c/code\u003e/\u003ccode\u003eTC002\u003c/code\u003e/\u003ccode\u003eTC003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24322\"\u003e#24322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid rendering fix lines with trailing whitespace after \u003ccode\u003e|\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24343\"\u003e#24343\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tranhoangtu-it\"\u003e\u003ccode\u003e@​tranhoangtu-it\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/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\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/astral-sh/ruff/commit/724ccc1ae8a61e872cf58435f2c073189dc248f2\"\u003e\u003ccode\u003e724ccc1\u003c/code\u003e\u003c/a\u003e Bump 0.15.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24369\"\u003e#24369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/96d9e0964cb87498ef15510ea7f896ba336659f9\"\u003e\u003ccode\u003e96d9e09\u003c/code\u003e\u003c/a\u003e [ty] Move the \u003ccode\u003edeferred\u003c/code\u003e submodule inside \u003ccode\u003einfer/builder\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24368\"\u003e#24368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/130da28d610a466721bb942e8a5e0ec47bbe3469\"\u003e\u003ccode\u003e130da28\u003c/code\u003e\u003c/a\u003e [ty] Infer the \u003ccode\u003eextra_items\u003c/code\u003e keyword argument to class-based TypedDicts as an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a617c54b0708a8c1eb850cc3b2a5caee21137a28\"\u003e\u003ccode\u003ea617c54\u003c/code\u003e\u003c/a\u003e [ty] Validate type qualifiers in functional TypedDict fields and the `extra_i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8517087c6cd0aa4f33dcede605ff642941dd74b\"\u003e\u003ccode\u003ed851708\u003c/code\u003e\u003c/a\u003e [ty] Improve robustness of various type-qualifier-related checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24251\"\u003e#24251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aecb5877c6d6fe035c03aba994ec3a7b935b8f02\"\u003e\u003ccode\u003eaecb587\u003c/code\u003e\u003c/a\u003e Only run the release-gate on workflow dispatch (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24366\"\u003e#24366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b88957174311030927bf564da32d05dee0eb89d9\"\u003e\u003ccode\u003eb889571\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003einfer_type_expression\u003c/code\u003e for parsing parameter annotations and return...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3286a62be986a8d6d04d95b3bc619f06e012fa2f\"\u003e\u003ccode\u003e3286a62\u003c/code\u003e\u003c/a\u003e Add a \u0026quot;release-gate\u0026quot; step to the release workflow (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24365\"\u003e#24365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5f88756ee10e3faf0e96c883c34c95fc78200536\"\u003e\u003ccode\u003e5f88756\u003c/code\u003e\u003c/a\u003e Disallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24280\"\u003e#24280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5c59f8a46965cac3470f09972196c8620faa4626\"\u003e\u003ccode\u003e5c59f8a\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 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.19.1...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust` from 2.43.3 to 2.43.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/locustio/locust/releases\"\u003elocust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.43.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadding mqtt user feature that works around the paho mqtt 340 connections limit issue by \u003ca href=\"https://github.com/ionutab\"\u003e\u003ccode\u003e@​ionutab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3268\"\u003elocustio/locust#3268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnset print_stats on workers created by --processes option by \u003ca href=\"https://github.com/markogle\"\u003e\u003ccode\u003e@​markogle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3353\"\u003elocustio/locust#3353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Qdrant support by \u003ca href=\"https://github.com/Anush008\"\u003e\u003ccode\u003e@​Anush008\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3354\"\u003elocustio/locust#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump qdrant-client from 1.16.2 to 1.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/locustio/locust/pull/3362\"\u003elocustio/locust#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump sphinxcontrib-htmlhelp from 2.0.1 to 2.1.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/locustio/locust/pull/3359\"\u003elocustio/locust#3359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump sphinxcontrib-serializinghtml from 1.1.10 to 2.0.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/locustio/locust/pull/3361\"\u003elocustio/locust#3361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump snowballstemmer from 2.2.0 to 3.0.1 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/locustio/locust/pull/3358\"\u003elocustio/locust#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all_dependencies group with 2 updates 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/locustio/locust/pull/3356\"\u003elocustio/locust#3356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract response time bucketing into an overridable function by \u003ca href=\"https://github.com/thessem\"\u003e\u003ccode\u003e@​thessem\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3373\"\u003elocustio/locust#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove Type Hinting for Wait Time Functions by \u003ca href=\"https://github.com/abstract-333\"\u003e\u003ccode\u003e@​abstract-333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3374\"\u003elocustio/locust#3374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the eslint group in /locust/webui with 8 updates 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/locustio/locust/pull/3363\"\u003elocustio/locust#3363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the vite group in /locust/webui with 2 updates 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/locustio/locust/pull/3364\"\u003elocustio/locust#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump typescript from 5.7.2 to 5.9.3 in /locust/webui 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/locustio/locust/pull/3367\"\u003elocustio/locust#3367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the vite group across 1 directory with 3 updates 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/locustio/locust/pull/3375\"\u003elocustio/locust#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd locust-otel Docker image with OpenTelemetry dependencies by \u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3379\"\u003elocustio/locust#3379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in docs, docstrings, and UI string by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3381\"\u003elocustio/locust#3381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix false \u0026quot;--run-time limit reached\u0026quot; log message when shape test completes by \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3382\"\u003elocustio/locust#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use total_rps instead of current_rps in HTML report and navbar stats by \u003ca href=\"https://github.com/juliosuas\"\u003e\u003ccode\u003e@​juliosuas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3384\"\u003elocustio/locust#3384\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/markogle\"\u003e\u003ccode\u003e@​markogle\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3353\"\u003elocustio/locust#3353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Anush008\"\u003e\u003ccode\u003e@​Anush008\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3354\"\u003elocustio/locust#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thessem\"\u003e\u003ccode\u003e@​thessem\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3373\"\u003elocustio/locust#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abstract-333\"\u003e\u003ccode\u003e@​abstract-333\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3374\"\u003elocustio/locust#3374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3379\"\u003elocustio/locust#3379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3381\"\u003elocustio/locust#3381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3382\"\u003elocustio/locust#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juliosuas\"\u003e\u003ccode\u003e@​juliosuas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3384\"\u003elocustio/locust#3384\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/locustio/locust/compare/2.43.3...2.43.4\"\u003ehttps://github.com/locustio/locust/compare/2.43.3...2.43.4\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/locustio/locust/blob/master/CHANGELOG.md\"\u003elocust's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/locustio/locust/tree/2.43.4\"\u003e2.43.4\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/locustio/locust/compare/2.43.3...2.43.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHTML report uses current_rps instead of total_rps for req/s column \u003ca href=\"https://redirect.github.com/locustio/locust/issues/3355\"\u003e#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing --processes with --print-stats causes all workers to print stats \u003ca href=\"https://redirect.github.com/locustio/locust/issues/3352\"\u003e#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker image does not have OTEL libraries installed \u003ca href=\"https://redirect.g...\n\n_Description has been truncated_","html_url":"https://github.com/HTT-BRANDS/azure-governance-platform/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTT-BRANDS%2Fazure-governance-platform/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"},{"uuid":"4203426703","node_id":"PR_kwDOR3f_qM7P6vOH","number":10,"state":"open","title":"build(deps): bump msal from 1.31.0 to 1.35.1","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-04T04:12:37.000Z","updated_at":"2026-04-14T04:37:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"msal","old_version":"1.31.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.31.0 to 1.35.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly remove issuer from the OIDC discovery response by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/863\"\u003eAzureAD/microsoft-authentication-library-for-python#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress CodeQL warning by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/867\"\u003eAzureAD/microsoft-authentication-library-for-python#867\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/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/849\"\u003eAzureAD/microsoft-authentication-library-for-python#849\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0b1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0b1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.34.0\u003c/h2\u003e\n\u003cp\u003eThis release includes:\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/AzureAD/microsoft-authentication-library-for-python/commit/6572c45e46901a0354809630906dce9d3c0ac772\"\u003e\u003ccode\u003e6572c45\u003c/code\u003e\u003c/a\u003e bump version to 1.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b81257f63111b3fb8d5bfd3a000c76bca3552387\"\u003e\u003ccode\u003eb81257f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0 to release 1.35.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/4549f9b9f15f8bc9386ca7a6cc843e238b7879ea\"\u003e\u003ccode\u003e4549f9b\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1310faca65e452b09e347fdee52da1fe400ce48f\"\u003e\u003ccode\u003e1310fac\u003c/code\u003e\u003c/a\u003e Removed logs that were causing Alerts (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/733a83cc09a85192607cc012b51638d4bcce76f7\"\u003e\u003ccode\u003e733a83c\u003c/code\u003e\u003c/a\u003e Security: Remove unsafe PowerShell fallback in WSL (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d7e0e11368457ee6ef6c44df75e5218ac984eef9\"\u003e\u003ccode\u003ed7e0e11\u003c/code\u003e\u003c/a\u003e Add OIDC issuer validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/58cf0736d48a9bbc2c855983705c1b5f278709ec\"\u003e\u003ccode\u003e58cf073\u003c/code\u003e\u003c/a\u003e Separate manual tests and remove unused settings from E2E (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/874\"\u003e#874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c0963357b113cad6455ae5b3cd22c049f358ade7\"\u003e\u003ccode\u003ec096335\u003c/code\u003e\u003c/a\u003e Remove usage of Lab API for integration test config (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.31.0...1.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/dismatel/multitel-reportes/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dismatel%2Fmultitel-reportes/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"},{"uuid":"4184408223","node_id":"PR_kwDOKkbJi87PJ1HH","number":136,"state":"closed","title":"chore(deps): bump the maintenance group with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-01T06:45:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T06:13:47.000Z","updated_at":"2026-05-01T06:45:47.000Z","time_to_close":2593918,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"maintenance","update_count":17,"packages":[{"name":"ruff","old_version":"0.15.4","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.13.2","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"model-bakery","old_version":"1.23.3","new_version":"1.23.4","repository_url":"https://github.com/model-bakers/model_bakery"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"googleapis-common-protos","old_version":"1.72.0","new_version":"1.73.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"protobuf","old_version":"6.33.5","new_version":"6.33.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"}],"path":null,"ecosystem":"pip"},"body":"Bumps the maintenance group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.8` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.2` | `7.13.5` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [model-bakery](https://github.com/model-bakers/model_bakery) | `1.23.3` | `1.23.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.0.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.72.0` | `1.73.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `6.33.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n\nUpdates `ruff` from 0.15.4 to 0.15.8\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.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] ignore \u003ccode\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\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.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] ignore \u003ccode\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\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/astral-sh/ruff/commit/c2a8815842f9dc5d24ec19385eae0f1a7188b0d9\"\u003e\u003ccode\u003ec2a8815\u003c/code\u003e\u003c/a\u003e Release 0.15.8 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24217\"\u003e#24217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d444d52e2b9cc8bc9a078c2bd4ff6ff993290209\"\u003e\u003ccode\u003ed444d52\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9622285ed0081fc688149f6efca87f127d9b18dd\"\u003e\u003ccode\u003e9622285\u003c/code\u003e\u003c/a\u003e [ty] Autocomplete arguments if in arguments node (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d81266252aaf0820346d55edbed79c4f25ba13d2\"\u003e\u003ccode\u003ed812662\u003c/code\u003e\u003c/a\u003e Use the \u003ccode\u003erelease\u003c/code\u003e environment in \u003ccode\u003epublish-docs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24214\"\u003e#24214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eda2355832f7a9c58aef6febd3e061dc9c87509a\"\u003e\u003ccode\u003eeda2355\u003c/code\u003e\u003c/a\u003e [ty] Show \u003ccode\u003eFinal\u003c/code\u003e source in final assignment diagnostic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24194\"\u003e#24194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/929eb5238c82bfadad4549ff526f02efc0163dd0\"\u003e\u003ccode\u003e929eb52\u003c/code\u003e\u003c/a\u003e [ty] Enforce Final attribute assignment rules for annotated and augmented wri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34998be22ec3a77d398bbd55234ef8740f768329\"\u003e\u003ccode\u003e34998be\u003c/code\u003e\u003c/a\u003e [ty] Fix typo in comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24211\"\u003e#24211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/560aca0b2828ee2ff1b4bcc5c5ef1ef4ced229d2\"\u003e\u003ccode\u003e560aca0\u003c/code\u003e\u003c/a\u003e [ty] Minor simplifications to some benchmark code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24209\"\u003e#24209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/683bae512d03d3727a7bcdbc5a0170dafa049583\"\u003e\u003ccode\u003e683bae5\u003c/code\u003e\u003c/a\u003e [ty] Track non-terminal-call constraints in global scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23245\"\u003e#23245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4704c2a4ff3dde2fd29324346720e9516b4fe387\"\u003e\u003ccode\u003e4704c2a\u003c/code\u003e\u003c/a\u003e [ty] Remove unnecessary intermediate collection in `StaticClassLiteral::field...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.2 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\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/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.2...7.13.5\"\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.5 to 46.0.6\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.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\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/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.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `model-bakery` from 1.23.3 to 1.23.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/model-bakers/model_bakery/releases\"\u003emodel-bakery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.23.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError when processing models with reverse ForeignKey relations (\u003ccode\u003eManyToOneRel\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e_bulk_create\u003c/code\u003e not setting M2M fields on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix type annotations (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGitHub Changelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations by \u003ca href=\"https://github.com/amureki\"\u003e\u003ccode\u003e@​amureki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003emodel-bakers/model_bakery#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pillow from 12.0.0 to 12.1.1 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/model-bakers/model_bakery/pull/586\"\u003emodel-bakers/model_bakery#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump django from 5.2.9 to 5.2.12 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/model-bakers/model_bakery/pull/585\"\u003emodel-bakers/model_bakery#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 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/model-bakers/model_bakery/pull/581\"\u003emodel-bakers/model_bakery#581\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/model-bakers/model_bakery/pull/580\"\u003emodel-bakers/model_bakery#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.6.2 to 2.6.3 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/model-bakers/model_bakery/pull/587\"\u003emodel-bakers/model_bakery#587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump black from 25.12.0 to 26.3.1 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/model-bakers/model_bakery/pull/588\"\u003emodel-bakers/model_bakery#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate uv-build requirement from \u0026lt;0.10.0,\u0026gt;=0.9.26 to \u0026gt;=0.9.26,\u0026lt;0.11.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/model-bakers/model_bakery/pull/579\"\u003emodel-bakers/model_bakery#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd regression test for bulk_create with M2M field using explicit related_name by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/582\"\u003emodel-bakers/model_bakery#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix remaining ty type errors in baker.py and generators.py by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003emodel-bakers/model_bakery#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bulk_create not setting M2M on FK-related objects by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/583\"\u003emodel-bakers/model_bakery#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump requests from 2.32.5 to 2.33.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/model-bakers/model_bakery/pull/590\"\u003emodel-bakers/model_bakery#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError on ManyToOneRel fields (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e) by \u003ca href=\"https://github.com/amureki\"\u003e\u003ccode\u003e@​amureki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/576\"\u003emodel-bakers/model_bakery#576\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/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/582\"\u003emodel-bakers/model_bakery#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\"\u003ehttps://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\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/model-bakers/model_bakery/blob/main/CHANGELOG.md\"\u003emodel-bakery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://pypi.org/project/model-bakery/1.23.4/\"\u003e1.23.4\u003c/a\u003e\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError when processing models with reverse ForeignKey relations (\u003ccode\u003eManyToOneRel\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e_bulk_create\u003c/code\u003e not setting M2M fields on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix type annotations (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003e#589\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/model-bakers/model_bakery/commit/b094155db98a74a4c8074fc4562ee743ac3ef790\"\u003e\u003ccode\u003eb094155\u003c/code\u003e\u003c/a\u003e Bump 1.23.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/ccd0c80701bb7e970e231426bc3b17d61eeda620\"\u003e\u003ccode\u003eccd0c80\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/1ff59bb9f842f1767f2d435217b125d893cc7909\"\u003e\u003ccode\u003e1ff59bb\u003c/code\u003e\u003c/a\u003e Fix AttributeError on ManyToOneRel fields (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/d8756ab4bb83c8b39c12d099443986f452ab80e8\"\u003e\u003ccode\u003ed8756ab\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.5 to 2.33.0 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/2d51d7c737958a086e29fe97037791441962b99e\"\u003e\u003ccode\u003e2d51d7c\u003c/code\u003e\u003c/a\u003e Fix bulk_create not setting M2M on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/ac79620984ba426495df0153ec39ddcddaa885e6\"\u003e\u003ccode\u003eac79620\u003c/code\u003e\u003c/a\u003e Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/5be6452e0cf2adc508e1066e95edd407463f76e9\"\u003e\u003ccode\u003e5be6452\u003c/code\u003e\u003c/a\u003e Add regression test for bulk_create with M2M field using explicit related_nam...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/2293b5b6042e55e07c608941e697bd82e37cdc99\"\u003e\u003ccode\u003e2293b5b\u003c/code\u003e\u003c/a\u003e Update uv-build requirement from \u0026lt;0.10.0,\u0026gt;=0.9.26 to \u0026gt;=0.9.26,\u0026lt;0.11.0 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/579\"\u003e#579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/031537e61f44efed13221ee41eddc81882780699\"\u003e\u003ccode\u003e031537e\u003c/code\u003e\u003c/a\u003e Bump black from 25.12.0 to 26.3.1 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/501a3c6dbf8f089f377886c8c8d9aa853ad96e59\"\u003e\u003ccode\u003e501a3c6\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.2 to 2.6.3 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.2 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/4f06bcf8a5ba3f2b5bda24a26ccf041a1a65d91e\"\u003e\u003ccode\u003e4f06bcf\u003c/code\u003e\u003c/a\u003e fix bad behaving backtracking regex in CommonLispLexer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.2...2.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\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.6 to 3.1.7\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.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 fix release, which fixes 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.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d3d3df56c98ba84111a15118d38e8dbfba71c3fd\"\u003e\u003ccode\u003ed3d3df5\u003c/code\u003e\u003c/a\u003e validate host characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2c6a3a528219385f8b7d6ad40d5184c07cd7f87b\"\u003e\u003ccode\u003e2c6a3a5\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/63261cdfb98b37a2dd0ea70b6b49d330a408e033\"\u003e\u003ccode\u003e63261cd\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/dafe7f1e37cf78cc7f11a9706c62a23e0dba9010\"\u003e\u003ccode\u003edafe7f1\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/051fd66352cf8b3f0797249858068dedaead6d39\"\u003e\u003ccode\u003e051fd66\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.39.0\u003c/h2\u003e\n\u003ch2\u003e1.39.0 (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the previously undocumented \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable from \u003ccode\u003eAZURE_CLOUD\u003c/code\u003e to \u003ccode\u003eAZURE_SDK_CLOUD_CONF\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/dee80a8fd745ddab91933f05e795cf41e10ab8fe\"\u003e\u003ccode\u003edee80a8\u003c/code\u003e\u003c/a\u003e Changed the \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45763\"\u003e#45763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a2d11701462371d3f8b38b935f77f2e5070a5bf7\"\u003e\u003ccode\u003ea2d1170\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45671\"\u003e#45671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.4 to 3.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when p...\n\n_Description has been truncated_","html_url":"https://github.com/Amsterdam/fb-locatielijst/pull/136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amsterdam%2Ffb-locatielijst/issues/136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/136/packages"},{"uuid":"4169237406","node_id":"PR_kwDOQh8SrM7Ojnx7","number":602,"state":"closed","title":"⬆️(deps): Bump the production-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T09:48:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T09:42:35.000Z","updated_at":"2026-04-13T09:48:09.000Z","time_to_close":1209932,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️(deps): Bump","group_name":"production-dependencies","update_count":10,"packages":[{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"sqlalchemy","old_version":"2.0.47","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"nltk","old_version":"3.9.3","new_version":"3.9.4","repository_url":"https://github.com/nltk/nltk"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"redis","old_version":"7.2.1","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ipython","old_version":"9.10.0","new_version":"9.12.0","repository_url":"https://github.com/ipython/ipython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.47` | `2.0.48` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.3` | `3.9.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.4.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.10.0` | `9.12.0` |\n\n\nUpdates `cryptography` from 46.0.5 to 46.0.6\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.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\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/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.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.47 to 2.0.48\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.35.0 to 1.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eThis document provides step-by-step instructions for releasing a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003ePrerequisites\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYou have push access to the \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python\"\u003eAzureAD/microsoft-authentication-library-for-python\u003c/a\u003e repository.\u003c/li\u003e\n\u003cli\u003eThe following GitHub repository secrets are configured:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTEST_PYPI_API_TOKEN\u003c/code\u003e — API token for \u003ca href=\"https://test.pypi.org/\"\u003eTestPyPI\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePYPI_API_TOKEN\u003c/code\u003e — API token for \u003ca href=\"https://pypi.org/\"\u003ePyPI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion Location\u003c/h2\u003e\n\u003cp\u003eThe package version is defined in a single file:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003emsal/sku.py  →  __version__ = \u0026quot;x.y.z\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e reads it dynamically via \u003ccode\u003eversion = attr: msal.__version__\u003c/code\u003e, so \u003cstrong\u003eno other file needs updating\u003c/strong\u003e.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBranch Strategy\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003edev  (all development happens here)\n │\n │── feature/fix PR → merged into dev\n │\n ├──► release-1.35.0  (version branch, cut from dev when ready)\n │       │\n │       ├── TestPyPI publish (automatic on push)\n │       │\n │       ├── bug found? fix on dev, merge dev → release-1.35.0\n │       │       │\n │       │       └── TestPyPI re-publish (automatic)\n │       │\n │       ├── tag 1.35.0 (via GitHub Release) → PyPI publish\n │       │\n │       │   ── post-release hotfix needed? ──\n │       │\n │       ├── fix on dev, merge dev → release-1.35.0\n │       │       │\n │       │       ├── bump sku.py to 1.35.1\n │       │       │\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/AzureAD/microsoft-authentication-library-for-python/commit/6572c45e46901a0354809630906dce9d3c0ac772\"\u003e\u003ccode\u003e6572c45\u003c/code\u003e\u003c/a\u003e bump version to 1.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b81257f63111b3fb8d5bfd3a000c76bca3552387\"\u003e\u003ccode\u003eb81257f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0 to release 1.35.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spacy` from 3.8.11 to 3.8.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/explosion/spaCy/releases\"\u003espacy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.14: Bug fix for model downloading in environments without pip on PATH\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003espacy download\u003c/code\u003e failing in environments where \u003ccode\u003epip\u003c/code\u003e is not on PATH but is available as a Python module (e.g., some virtual environments and containers)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.8.13: Pin confection to new version\u003c/h2\u003e\n\u003cp\u003eThe v3.8.12 release didn't update the confection pin, which meant that if you did an upgrade-install models wouldn't load.\u003c/p\u003e\n\u003ch2\u003ev3.8.12\u003c/h2\u003e\n\u003cp\u003eUse confection v1.3 and Thinc v8.3.13, which implement custom validation logic in place of Pydantic, allowing us to properly adopt Pydantic v2 and provide full Python 3.14 support.\u003c/p\u003e\n\u003cp\u003eOur dependency tree used Pydantic v1 in unusual ways, and relied on behaviours that Pydantic v2 reformed. In the time since Pydantic v2 was released there were a few attempts to migrate over to it, but the task has been complicated by the fact that the confection library has a fairly tangled implementation and I had reduced availability for open-source work in 2024 and 2025.\u003c/p\u003e\n\u003cp\u003eSpecifically, our library confection provides the extensible configuration system we use in spaCy and Thinc. The config system allows you to refer to values that will be supplied by arbitrary functions, that e.g. define some neural network model or its sublayers. The functionality in confection is complicated because we aggressively prioritised user experience in the specification, even if it required increased implementation complexity.\u003c/p\u003e\n\u003cp\u003eConfection's original implementation built a dynamic Pydantic v1 schema for function-supplied values (\u0026quot;promises\u0026quot;). We validate the schema before calling any promises, and then validate the schema again after calling all the promises and substituting in their values. The variable-interpolation system adds further difficulties to the implementation, and we have to do it all subclassing the Python built-in configparser, which ties us to implementation choices I'd do differently if I had a clean slate.\u003c/p\u003e\n\u003cp\u003eHere's one summary of Pydantic v1-specific behaviours that the migration to v2 particularly difficult for us. This particular summary was produced during a session with Claude Code Opus 4.6, so nuances of it might be wrong. The full history of attempts at doing this spans over different refactors separated by a few months at a time, so I don't have a full record of all the things that I struggled with. It's possible some details of this summary are incorrect though.\u003c/p\u003e\n\u003cp\u003eThe core problem we kept hitting: Pydantic v2 compiles validation schemas upfront and has much stricter immutability. The whole session has been a series of workarounds for this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e 1. Schema mutation — v1 let you mutate __fields__ in place; v2 needs model_rebuild() which loses forward ref namespaces, or create_model subclasses which don't propagate to parent schemas.\r\n 2. model_dump vs dict — v2 converts dataclasses to dicts, breaking resolved objects. Needed a custom _model_to_dict helper.\r\n 3. model_construct drops extras — v2 silently drops fields with extra=\u0026quot;forbid\u0026quot;, needed manual workarounds.\r\n 4. Strict coercion — v2 coerces ndarray to List[Floats1d] via iteration, needed strict=True.\r\n 5. Forward refs — Every schema with TYPE_CHECKING imports needs model_rebuild() with the right namespace, and that breaks when confection re-rebuilds later.\r\nIn order to adjust for behavioural differences like this, I'd refactored confection to build the different versions of the schema in multiple passes, instead of building all the representations together as we'd been doing. However this refactor itself had problems, further complicating the migration.\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI've now bitten the bullet and rolled back the refactor I'd been attempting of confection, and instead replaced the Pydantic validation with custom logic. This allows Confection to remove Pydantic as a dependency entirely.~ Update: Actually I went back and got the refactor working. All much nicer now.\u003c/p\u003e\n\u003cp\u003eI've taken some lengths to explain this because migrating off a dependency after breaking changes can be a sensitive topic. I want to stress that the changes Pydantic made from v1 to v2 are very good, and I greatly appreciate them as a user of FastAPI in our services. It would be very bad for the ecosystem if Pydantic pinned themselves to exactly matching the behaviours they had in v1 just to avoid breaking support for the sort of thing we'd been doing. Instead users who were relying on those behaviours like us should just find some way to adapt --- either vendor the v1 version we need, or change our behaviours, or implement an alternative. I would have liked to do this sooner but we've ultimately gone with the third option.\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/explosion/spaCy/commit/0069cf99b60023363ba5f47404819f59c8a39b3e\"\u003e\u003ccode\u003e0069cf9\u003c/code\u003e\u003c/a\u003e Set version to 3.8.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/56032260f2d37981682d6685b2a124346b60cca7\"\u003e\u003ccode\u003e5603226\u003c/code\u003e\u003c/a\u003e fix: check pip module availability instead of PATH binary in download (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/d4bb796b5ed3d0bd65d0af6b1e26ebc181c3aef1\"\u003e\u003ccode\u003ed4bb796\u003c/code\u003e\u003c/a\u003e Add least-privilege permissions to CI workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/9d29209d0486f315773c890c25db34c07a888654\"\u003e\u003ccode\u003e9d29209\u003c/code\u003e\u003c/a\u003e Pass github context via stdin instead of CLI arg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/4216738cf83719938d5bafc29fb61537d758baf1\"\u003e\u003ccode\u003e4216738\u003c/code\u003e\u003c/a\u003e Pin GitHub Actions to commit SHAs for supply chain security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/297938e7040d5b4866d65d2d11dd113a1146ba89\"\u003e\u003ccode\u003e297938e\u003c/code\u003e\u003c/a\u003e Add smoke test and upgrade test to release build workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/fdca647b1b07cca7ac36adc78fedaea908b0d168\"\u003e\u003ccode\u003efdca647\u003c/code\u003e\u003c/a\u003e Set version to 3.8.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/0d94a9d66dd6a754fa958db2fd20ce60ff908c94\"\u003e\u003ccode\u003e0d94a9d\u003c/code\u003e\u003c/a\u003e Pin confection\u0026gt;=1.3.2 — older versions crash with pydantic v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/f175a51e2df36f16d473c7b62a0b9b8563ebb773\"\u003e\u003ccode\u003ef175a51\u003c/code\u003e\u003c/a\u003e Fully migrate to Pydantic v2 (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13940\"\u003e#13940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/24255bd1e25c7275553325d989bfcfd3a41fc1d2\"\u003e\u003ccode\u003e24255bd\u003c/code\u003e\u003c/a\u003e Fix import sorting for ruff isort compliance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/explosion/spaCy/compare/release-v3.8.11...release-v3.8.14\"\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.3 to 3.9.4\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.4 2026-03-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14\u003c/li\u003e\n\u003cli\u003eFix bug in Levenshtein distance when substitution_cost \u0026gt; 2\u003c/li\u003e\n\u003cli\u003eFix bug in Treebank detokeniser re quote ordering\u003c/li\u003e\n\u003cli\u003eFix bug in Jaro similarity for empty strings\u003c/li\u003e\n\u003cli\u003eSeveral security enhancements\u003c/li\u003e\n\u003cli\u003eFix GHSA-rf74-v2fm-23pw: unbounded recursion in JSONTaggedDecoder\u003c/li\u003e\n\u003cli\u003eImplement TextTiling vocabulary introduction method (Hearst 1997)\u003c/li\u003e\n\u003cli\u003eFix ALINE feature matrix errors and add comprehensive tests\u003c/li\u003e\n\u003cli\u003eSupport multiple VerbNet versions, fix longid/shortid regex for VerbNet ids\u003c/li\u003e\n\u003cli\u003eLet downloader fallback to md5 when sha256 is unavailable\u003c/li\u003e\n\u003cli\u003eSeveral other minor bugfixes and code cleanups\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.4:\nMin-Yen Kan, Eric Kafe, Emily Voss, bowiechen, Hrudhai01,\njancallewaert, Mr-Neutr0n, pollak.peter89, ylwango613,\u003c/p\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\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/ad9c96ba00a16923ffe917eacf63f1707bfa2d08\"\u003e\u003ccode\u003ead9c96b\u003c/code\u003e\u003c/a\u003e Update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7edcddfda566627b897397397cc4d10ae91cb86d\"\u003e\u003ccode\u003e7edcddf\u003c/code\u003e\u003c/a\u003e Updates for 3.9.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/67a2736f89b286b028db08bd247134f17a11fc6b\"\u003e\u003ccode\u003e67a2736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3180\"\u003e#3180\u003c/a\u003e from yzhaoinuw/bug-on-edit_distance_align\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/2b17ac5358a1c8d4b97455766efde0b786e6cdb2\"\u003e\u003ccode\u003e2b17ac5\u003c/code\u003e\u003c/a\u003e Fix edit_distance_align backtrace for high substitution costs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/4b72976a6ff3d180ed4012f11843e611a8f89516\"\u003e\u003ccode\u003e4b72976\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3018\"\u003e#3018\u003c/a\u003e from JuanIMartinezB/bug/shortid-longid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/8a5619f53a281149e5342b1a00fe05fe2fc6517f\"\u003e\u003ccode\u003e8a5619f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3222\"\u003e#3222\u003c/a\u003e from Syzygy2048/feature/texttiling-vocabulary-introd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/c6574d755e02b6163d9cd1d0b407076940e08864\"\u003e\u003ccode\u003ec6574d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3289\"\u003e#3289\u003c/a\u003e from ihitamandal/codeflash/optimize-windowdiff-2024-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/98ff5d9eaa1a81511873b9aef857944519c28dc4\"\u003e\u003ccode\u003e98ff5d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3435\"\u003e#3435\u003c/a\u003e from Hrudhai01/fix-3260-detokenize-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/aec4fce1b84ad725b8975f7365b23a4f626572a9\"\u003e\u003ccode\u003eaec4fce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3522\"\u003e#3522\u003c/a\u003e from ekaf/pathsec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/eec4ee3591cb9cb8b8c2989f08012608c841d532\"\u003e\u003ccode\u003eeec4ee3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3526\"\u003e#3526\u003c/a\u003e from nltk/update-contributing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nltk/nltk/compare/3.9.3...3.9.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\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.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\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 8 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 Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 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/30978\"\u003e#30978\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/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\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.6 to 3.1.7\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.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 fix release, which fixes 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.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d3d3df56c98ba84111a15118d38e8dbfba71c3fd\"\u003e\u003ccode\u003ed3d3df5\u003c/code\u003e\u003c/a\u003e validate host characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2c6a3a528219385f8b7d6ad40d5184c07cd7f87b\"\u003e\u003ccode\u003e2c6a3a5\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/63261cdfb98b37a2dd0ea70b6b49d330a408e033\"\u003e\u003ccode\u003e63261cd\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/dafe7f1e37cf78cc7f11a9706c62a23e0dba9010\"\u003e\u003ccode\u003edafe7f1\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/051fd66352cf8b3f0797249858068dedaead6d39\"\u003e\u003ccode\u003e051fd66\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.1 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.1...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.10.0 to 9.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d9c6e314c3f31cb624cd443448e9094fdd49a1eb\"\u003e\u003ccode\u003ed9c6e31\u003c/code\u003e\u003c/a\u003e release 9.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4c560d21ec7d6f72d2f150400fdab010790c81d7\"\u003e\u003ccode\u003e4c560d2\u003c/code\u003e\u003c/a\u003e security note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/bf954e4665168eeac39626164d76a646b683eaeb\"\u003e\u003ccode\u003ebf954e4\u003c/code\u003e\u003c/a\u003e Add release notes for 9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/bfbdaaf71efae1d70ededaa0c0375400d7692d29\"\u003e\u003ccode\u003ebfbdaaf\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'ghsa/windows-programdata'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/8aae9a39bd6b44d4a798540a8d4863f73593ff57\"\u003e\u003ccode\u003e8aae9a3\u003c/code\u003e\u003c/a\u003e strip ansi for comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/e1aadc2c607df59f4d7313c60257ef9d43a46d7a\"\u003e\u003ccode\u003ee1aadc2\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/f48986a01e14eaed3504c474725e98700deae298\"\u003e\u003ccode\u003ef48986a\u003c/code\u003e\u003c/a\u003e fix-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d9b5285f5cb06aba35d4c3842cee7d2795afed7c\"\u003e\u003ccode\u003ed9b5285\u003c/code\u003e\u003c/a\u003e try to group tb frames\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/323552ea59fab72dcb36e4960caaffc18d3c5dae\"\u003e\u003ccode\u003e323552e\u003c/code\u003e\u003c/a\u003e Interleave fast and slow traceback path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/22cd33275bfccae3666f9f54d7f90fab924e517b\"\u003e\u003ccode\u003e22cd332\u003c/code\u003e\u003c/a\u003e Fix missing space in pdb chained exceptions warning message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.10.0...9.12.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/mattiIce/PBX/pull/602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattiIce%2FPBX/issues/602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/602/packages"},{"uuid":"4086072905","node_id":"PR_kwDORckIoM7LGgi0","number":286,"state":"open","title":"security(deps): bump the training-dependencies group across 1 directory with 54 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-17T04:04:37.000Z","updated_at":"2026-03-17T04:36:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps): bump","group_name":"training-dependencies","update_count":54,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"rsl-rl-lib","old_version":"5.0.0","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the training-dependencies group with 54 updates in the /training/rl directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.38.3` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `5.0.0` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e106...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/286","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/286","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/286/packages"},{"uuid":"4085856754","node_id":"PR_kwDORckIoM7LF2od","number":285,"state":"closed","title":"chore(deps): bump the training-dependencies group across 1 directory with 57 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-03-17T04:01:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-17T02:36:10.000Z","updated_at":"2026-03-17T04:38:38.000Z","time_to_close":5096,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"training-dependencies","update_count":57,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.1","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.19.0","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"azureml-mlflow","old_version":"1.61.0.post1","new_version":"1.62.0","repository_url":"https://github.com/Azure/MachineLearningNotebooks"},{"name":"rsl-rl-lib","old_version":"4.0.1","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the training-dependencies group with 57 updates in the /training/rl directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.1` | `1.38.3` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.19.0` | `12.28.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [azureml-mlflow](https://github.com/Azure/MachineLearningNotebooks) | `1.61.0.post1` | `1.62.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `4.0.1` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.1 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.2\u003c/h2\u003e\n\u003ch2\u003e1.38.2 (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve the leading slash when the URL template starts with \u003ccode\u003e/?\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3e9fec2338ae644e380401dec9e407706cb27115\"\u003e\u003ccode\u003e3e9fec2\u003c/code\u003e\u003c/a\u003e [Core] Update changelog (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45230\"\u003e#45230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5f8d700bf670c475692fd1de087d696af72b66c\"\u003e\u003ccode\u003eb5f8d70\u003c/code\u003e\u003c/a\u003e [Core] Fix format_url to allow leading slash if specified (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.1...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.19.0 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.19.0...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packa...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/285","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/285","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/285/packages"},{"uuid":"4084790470","node_id":"PR_kwDORckIoM7LCgsA","number":281,"state":"open","title":"chore(deps): bump the training-dependencies group in /training/rl with 56 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-16T21:05:58.000Z","updated_at":"2026-03-16T21:06:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"training-dependencies","update_count":56,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.1","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.19.0","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"azureml-mlflow","old_version":"1.61.0.post1","new_version":"1.62.0","repository_url":"https://github.com/Azure/MachineLearningNotebooks"},{"name":"rsl-rl-lib","old_version":"4.0.1","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":"/training/rl","ecosystem":"pip"},"body":"Bumps the training-dependencies group in /training/rl with 56 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.1` | `1.38.3` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.19.0` | `12.28.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [azureml-mlflow](https://github.com/Azure/MachineLearningNotebooks) | `1.61.0.post1` | `1.62.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `4.0.1` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.1 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.2\u003c/h2\u003e\n\u003ch2\u003e1.38.2 (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve the leading slash when the URL template starts with \u003ccode\u003e/?\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3e9fec2338ae644e380401dec9e407706cb27115\"\u003e\u003ccode\u003e3e9fec2\u003c/code\u003e\u003c/a\u003e [Core] Update changelog (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45230\"\u003e#45230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5f8d700bf670c475692fd1de087d696af72b66c\"\u003e\u003ccode\u003eb5f8d70\u003c/code\u003e\u003c/a\u003e [Core] Fix format_url to allow leading slash if specified (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.1...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.19.0 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.19.0...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"}],"issue_packages":[{"old_version":"1.36.0","new_version":"1.37.0","update_type":"minor","path":"/docker/crypto","pr_created_at":"2026-06-02T18:33:17.000Z","version_change":"1.36.0 → 1.37.0","issue":{"uuid":"4574026541","node_id":"PR_kwDOCZ34ec7h64G5","number":44755,"state":"closed","title":"Bump msal from 1.36.0 to 1.37.0 in /docker/crypto","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-06-14T05:12:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-02T18:33:17.000Z","updated_at":"2026-06-14T05:12:47.000Z","time_to_close":988768,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","packages":[{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"/docker/crypto","ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.36.0 to 1.37.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd User Federated Identity Credential (user_fic) grant type support in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes and Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse unsigned redirect URI for macOS broker silent flows in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape username parameter in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/901\"\u003e#901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForward MSAL client metadata headers through IMDS to ESTS in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/902\"\u003e#902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pymsalruntime minimum version to 0.20.6 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump cryptography dependency ceiling to \u0026lt;50 (N+3) in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eHow to ship a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI. Everything happens in Azure DevOps\n(no GitHub Releases, no Git-tag-triggered automation).\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBefore you start — one-time prerequisites\u003c/h2\u003e\n\u003cp\u003eConfirm these are set up in ADO (\u003ccode\u003eIdentityDivision\u003c/code\u003e → \u003ccode\u003eIDDP\u003c/code\u003e project) — the\nrelease will fail at runtime if any are missing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Pipeline \u003cstrong\u003eMSAL.Python-Publish\u003c/strong\u003e (definition \u003ccode\u003e3067\u003c/code\u003e) exists\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Service connection \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-AME\u003c/code\u003e\u003c/strong\u003e exists and is authorized\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Environment \u003cstrong\u003e\u003ccode\u003eMSAL-Python-Release\u003c/code\u003e\u003c/strong\u003e has a \u003cstrong\u003erequired manual approval\u003c/strong\u003e\nconfigured under \u003cem\u003eApprovals and checks\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Key Vault \u003cstrong\u003e\u003ccode\u003eMSALVault\u003c/code\u003e\u003c/strong\u003e contains cert \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-Release-Signing\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote on TestPyPI:\u003c/strong\u003e The TestPyPI publish path\n(\u003ccode\u003epublishTarget = test.pypi.org (Preview / RC)\u003c/code\u003e) is currently a \u003cstrong\u003eno-op\u003c/strong\u003e —\nthe \u003ccode\u003eMSAL-Test-Python-Upload\u003c/code\u003e service connection has not been created yet,\nso that stage prints a skip message and uploads nothing. Until it's wired up,\nuse an RC version (e.g. \u003ccode\u003e1.36.0rc1\u003c/code\u003e) on the production path for dry runs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003eRelease in 4 steps\u003c/h2\u003e\n\u003ch3\u003e1. Bump the version on \u003ccode\u003edev\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe package version lives in \u003cstrong\u003eone file\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\u003c/a\u003e.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e__version__ = \u0026quot;1.36.0\u0026quot;     # final release\n# or\n__version__ = \u0026quot;1.36.0rc1\u0026quot;  # RC / dry run\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOpen a PR, get it merged into \u003ccode\u003edev\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003e2. Cut the release branch\u003c/h3\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003egit checkout dev \u0026amp;\u0026amp; git pull\ngit checkout -b release-1.36.0\ngit push origin release-1.36.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePushing the branch does \u003cstrong\u003enot\u003c/strong\u003e publish anything — the pipeline is manual.\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/AzureAD/microsoft-authentication-library-for-python/commit/ebb980f1636e1b3a097ec6dbfd197fb88c5b9e7a\"\u003e\u003ccode\u003eebb980f\u003c/code\u003e\u003c/a\u003e Update version to 1.37.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c504b419a5a604a761d80d3f46365077ed8e6a21\"\u003e\u003ccode\u003ec504b41\u003c/code\u003e\u003c/a\u003e Migrate CI/CD from GitHub Actions to ADO; remove GH Actions workflow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/192a82dcd6c5371ece4f14f9701b0134b2e92a07\"\u003e\u003ccode\u003e192a82d\u003c/code\u003e\u003c/a\u003e Removed support for Python 3.8 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/08aa7fd273e93933617e74be842da15d3e36bf25\"\u003e\u003ccode\u003e08aa7fd\u003c/code\u003e\u003c/a\u003e Add User Federated Identity Credential (user_fic) grant type support (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d4f58ec792571d9b0e015a8d20661a0554a9536d\"\u003e\u003ccode\u003ed4f58ec\u003c/code\u003e\u003c/a\u003e Add documentation for MSI v2 mTLS in Python (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/904\"\u003e#904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/5866feb9b1158547f3379fe33ca5c89f65fafd84\"\u003e\u003ccode\u003e5866feb\u003c/code\u003e\u003c/a\u003e Create design document for MSI v2 In-Memory Key Approach (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/651d54b8bc3c0882f9dd4771f76b86b1a7c99373\"\u003e\u003ccode\u003e651d54b\u003c/code\u003e\u003c/a\u003e Update pymsalruntime minimum version to 0.20.6 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/895b581704dbd66c47ec2590d57ff7aff503a235\"\u003e\u003ccode\u003e895b581\u003c/code\u003e\u003c/a\u003e Use unsigned redirect uri for mac broker flows (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/8ea1eaaae97f416254bfe7f606d6c6babb80afed\"\u003e\u003ccode\u003e8ea1eaa\u003c/code\u003e\u003c/a\u003e Switch FMI tests from disabled IDLABS_APP_FMI to MISE-App-FMICLIENT (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/faf5dce2f72a5716c12b901eb52dea27e30d3e58\"\u003e\u003ccode\u003efaf5dce\u003c/code\u003e\u003c/a\u003e Bump cryptography dependency ceiling to \u0026lt;50 (N+3) (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.36.0...1.37.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=msal\u0026package-manager=pip\u0026previous-version=1.36.0\u0026new-version=1.37.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/demisto/dockerfiles/pull/44755","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/demisto%2Fdockerfiles/issues/44755","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/44755/packages"}},{"old_version":"1.36.0","new_version":"1.37.0","update_type":"minor","path":"the azure-services group across 1 directory","pr_created_at":"2026-06-01T13:05:41.000Z","version_change":"1.36.0 → 1.37.0","issue":{"uuid":"4563322209","node_id":"PR_kwDOP6zckM7hX1No","number":253,"state":"closed","title":"chore(deps): Bump msal from 1.36.0 to 1.37.0 in the azure-services group across 1 directory","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-06-11T07:55:15.000Z","author_association":null,"state_reason":null,"created_at":"2026-06-01T13:05:41.000Z","updated_at":"2026-06-11T07:55:17.000Z","time_to_close":845374,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): Bump","packages":[{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"the azure-services group across 1 directory","ecosystem":"pip"},"body":"Bumps the azure-services group with 1 update in the / directory: [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python).\n\nUpdates `msal` from 1.36.0 to 1.37.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.37.0\u003c/h2\u003e\n\u003ch2\u003eBreaking Changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemoved support for Python 3.8 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eNew Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd User Federated Identity Credential (user_fic) grant type support in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBug Fixes and Improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUse unsigned redirect URI for macOS broker silent flows in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEscape username parameter in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/901\"\u003e#901\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eForward MSAL client metadata headers through IMDS to ESTS in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/902\"\u003e#902\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eDependency Updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate pymsalruntime minimum version to 0.20.6 in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump cryptography dependency ceiling to \u0026lt;50 (N+3) in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eHow to ship a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI. Everything happens in Azure DevOps\n(no GitHub Releases, no Git-tag-triggered automation).\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBefore you start — one-time prerequisites\u003c/h2\u003e\n\u003cp\u003eConfirm these are set up in ADO (\u003ccode\u003eIdentityDivision\u003c/code\u003e → \u003ccode\u003eIDDP\u003c/code\u003e project) — the\nrelease will fail at runtime if any are missing:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Pipeline \u003cstrong\u003eMSAL.Python-Publish\u003c/strong\u003e (definition \u003ccode\u003e3067\u003c/code\u003e) exists\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Service connection \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-AME\u003c/code\u003e\u003c/strong\u003e exists and is authorized\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Environment \u003cstrong\u003e\u003ccode\u003eMSAL-Python-Release\u003c/code\u003e\u003c/strong\u003e has a \u003cstrong\u003erequired manual approval\u003c/strong\u003e\nconfigured under \u003cem\u003eApprovals and checks\u003c/em\u003e\u003c/li\u003e\n\u003cli\u003e\u003cinput type=\"checkbox\" disabled=\"\" /\u003e Key Vault \u003cstrong\u003e\u003ccode\u003eMSALVault\u003c/code\u003e\u003c/strong\u003e contains cert \u003cstrong\u003e\u003ccode\u003eMSAL-ESRP-Release-Signing\u003c/code\u003e\u003c/strong\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cblockquote\u003e\n\u003cp\u003e\u003cstrong\u003eNote on TestPyPI:\u003c/strong\u003e The TestPyPI publish path\n(\u003ccode\u003epublishTarget = test.pypi.org (Preview / RC)\u003c/code\u003e) is currently a \u003cstrong\u003eno-op\u003c/strong\u003e —\nthe \u003ccode\u003eMSAL-Test-Python-Upload\u003c/code\u003e service connection has not been created yet,\nso that stage prints a skip message and uploads nothing. Until it's wired up,\nuse an RC version (e.g. \u003ccode\u003e1.36.0rc1\u003c/code\u003e) on the production path for dry runs.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003chr /\u003e\n\u003ch2\u003eRelease in 4 steps\u003c/h2\u003e\n\u003ch3\u003e1. Bump the version on \u003ccode\u003edev\u003c/code\u003e\u003c/h3\u003e\n\u003cp\u003eThe package version lives in \u003cstrong\u003eone file\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/blob/dev/msal/sku.py\u003c/a\u003e.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e__version__ = \u0026quot;1.36.0\u0026quot;     # final release\n# or\n__version__ = \u0026quot;1.36.0rc1\u0026quot;  # RC / dry run\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eOpen a PR, get it merged into \u003ccode\u003edev\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003e2. Cut the release branch\u003c/h3\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003egit checkout dev \u0026amp;\u0026amp; git pull\ngit checkout -b release-1.36.0\ngit push origin release-1.36.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePushing the branch does \u003cstrong\u003enot\u003c/strong\u003e publish anything — the pipeline is manual.\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/AzureAD/microsoft-authentication-library-for-python/commit/ebb980f1636e1b3a097ec6dbfd197fb88c5b9e7a\"\u003e\u003ccode\u003eebb980f\u003c/code\u003e\u003c/a\u003e Update version to 1.37.0 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c504b419a5a604a761d80d3f46365077ed8e6a21\"\u003e\u003ccode\u003ec504b41\u003c/code\u003e\u003c/a\u003e Migrate CI/CD from GitHub Actions to ADO; remove GH Actions workflow (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/895\"\u003e#895\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/192a82dcd6c5371ece4f14f9701b0134b2e92a07\"\u003e\u003ccode\u003e192a82d\u003c/code\u003e\u003c/a\u003e Removed support for Python 3.8 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/910\"\u003e#910\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/08aa7fd273e93933617e74be842da15d3e36bf25\"\u003e\u003ccode\u003e08aa7fd\u003c/code\u003e\u003c/a\u003e Add User Federated Identity Credential (user_fic) grant type support (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d4f58ec792571d9b0e015a8d20661a0554a9536d\"\u003e\u003ccode\u003ed4f58ec\u003c/code\u003e\u003c/a\u003e Add documentation for MSI v2 mTLS in Python (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/904\"\u003e#904\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/5866feb9b1158547f3379fe33ca5c89f65fafd84\"\u003e\u003ccode\u003e5866feb\u003c/code\u003e\u003c/a\u003e Create design document for MSI v2 In-Memory Key Approach (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/651d54b8bc3c0882f9dd4771f76b86b1a7c99373\"\u003e\u003ccode\u003e651d54b\u003c/code\u003e\u003c/a\u003e Update pymsalruntime minimum version to 0.20.6 (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/895b581704dbd66c47ec2590d57ff7aff503a235\"\u003e\u003ccode\u003e895b581\u003c/code\u003e\u003c/a\u003e Use unsigned redirect uri for mac broker flows (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/907\"\u003e#907\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/8ea1eaaae97f416254bfe7f606d6c6babb80afed\"\u003e\u003ccode\u003e8ea1eaa\u003c/code\u003e\u003c/a\u003e Switch FMI tests from disabled IDLABS_APP_FMI to MISE-App-FMICLIENT (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/faf5dce2f72a5716c12b901eb52dea27e30d3e58\"\u003e\u003ccode\u003efaf5dce\u003c/code\u003e\u003c/a\u003e Bump cryptography dependency ceiling to \u0026lt;50 (N+3) (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/906\"\u003e#906\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.36.0...1.37.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/MostafaEldoqany/AYH-AI/pull/253","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/MostafaEldoqany%2FAYH-AI/issues/253","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/253/packages"}},{"old_version":"1.36.0","new_version":"1.37.0","update_type":"minor","path":"/training/il/lerobot","pr_created_at":"2026-06-01T06:30:33.000Z","version_change":"1.36.0 → 1.37.0","issue":{"uuid":"4560863483","node_id":"PR_kwDORckIoM7hP1aB","number":808,"state":"open","title":"security(deps): bump the lerobot-dependencies group in /training/il/lerobot with 62 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-01T06:30:33.000Z","updated_at":"2026-06-03T13:45:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps): bump","group_name":"lerobot-dependencies","update_count":62,"packages":[{"name":"marshmallow","old_version":"3.26.2","new_version":"4.3.0","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow-skinny","old_version":"3.12.0","new_version":"3.13.0","repository_url":"https://github.com/mlflow/mlflow"},{"name":"sentry-sdk","old_version":"2.60.0","new_version":"2.61.0","repository_url":"https://github.com/getsentry/sentry-python"},{"name":"huggingface-hub","old_version":"1.16.1","new_version":"1.17.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.2.1","repository_url":"https://github.com/GrahamDumpleton/wrapt"},{"name":"av","old_version":"15.1.0","new_version":"17.0.1","repository_url":"https://github.com/PyAV-Org/PyAV"},{"name":"cmake","old_version":"4.1.3","new_version":"4.3.2","repository_url":"https://github.com/scikit-build/cmake-python-distributions"},{"name":"cryptography","old_version":"46.0.7","new_version":"48.0.0","repository_url":"https://github.com/pyca/cryptography"},{"name":"cuda-bindings","old_version":"12.9.4","new_version":"13.3.1","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"deepdiff","old_version":"8.6.2","new_version":"9.1.0","repository_url":"https://github.com/qlustered/deepdiff"},{"name":"draccus","old_version":"0.10.0","new_version":"0.11.5","repository_url":"https://github.com/dlwh/draccus"},{"name":"fsspec","old_version":"2026.2.0","new_version":"2026.4.0","repository_url":"https://github.com/fsspec/filesystem_spec"},{"name":"idna","old_version":"3.16","new_version":"3.17","repository_url":"https://github.com/kjd/idna"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"9.0.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"jsonpickle","old_version":"4.1.1","new_version":"4.1.2","repository_url":"https://github.com/jsonpickle/jsonpickle"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.36.0","new_version":"1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"nvidia-cublas-cu12","old_version":"12.8.4.1","new_version":"12.9.2.10"},{"name":"nvidia-cuda-cupti-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"nvidia-cuda-nvrtc-cu12","old_version":"12.8.93","new_version":"12.9.86"},{"name":"nvidia-cuda-runtime-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"nvidia-cudnn-cu12","old_version":"9.10.2.21","new_version":"9.23.0.39"},{"name":"nvidia-cufft-cu12","old_version":"11.3.3.83","new_version":"11.4.1.4"},{"name":"nvidia-cufile-cu12","old_version":"1.13.1.3","new_version":"1.14.1.1"},{"name":"nvidia-curand-cu12","old_version":"10.3.9.90","new_version":"10.3.10.19"},{"name":"nvidia-cusolver-cu12","old_version":"11.7.3.90","new_version":"11.7.5.82"},{"name":"nvidia-cusparse-cu12","old_version":"12.5.8.93","new_version":"12.5.10.65"},{"name":"nvidia-cusparselt-cu12","old_version":"0.7.1","new_version":"0.8.1"},{"name":"nvidia-nccl-cu12","old_version":"2.27.5","new_version":"2.30.4"},{"name":"nvidia-nvjitlink-cu12","old_version":"12.8.93","new_version":"12.9.86"},{"name":"nvidia-nvshmem-cu12","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx-cu12","old_version":"12.8.90","new_version":"12.9.79"},{"name":"opentelemetry-api","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-logging","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.40.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.61b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"platformdirs","old_version":"4.9.6","new_version":"4.10.0","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.6","new_version":"7.35.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pydantic-core","old_version":"2.46.4","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pytz","old_version":"2025.2","new_version":"2026.2","repository_url":"https://github.com/stub42/pytz"},{"name":"pyyaml-include","old_version":"1.4.1","new_version":"2.2","repository_url":"https://github.com/tanbro/pyyaml-include"},{"name":"rerun-sdk","old_version":"0.26.2","new_version":"0.33.0","repository_url":"https://github.com/rerun-io/rerun"},{"name":"rpds-py","old_version":"0.30.0","new_version":"2026.5.1","repository_url":"https://github.com/crate-py/rpds"},{"name":"setuptools","old_version":"80.10.2","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"starlette","old_version":"0.52.1","new_version":"1.2.1","repository_url":"https://github.com/Kludex/starlette"},{"name":"torch","old_version":"2.10.0","new_version":"2.12.0","repository_url":"https://github.com/pytorch/pytorch"},{"name":"torchvision","old_version":"0.25.0","new_version":"0.27.0","repository_url":"https://github.com/pytorch/vision"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"typer","old_version":"0.26.2","new_version":"0.26.4","repository_url":"https://github.com/fastapi/typer"},{"name":"wandb","old_version":"0.24.2","new_version":"0.27.0","repository_url":"https://github.com/wandb/wandb"}],"path":"/training/il/lerobot","ecosystem":"pip"},"body":"Bumps the lerobot-dependencies group in /training/il/lerobot with 62 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.3.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.12.0` | `3.13.0` |\n| [sentry-sdk](https://github.com/getsentry/sentry-python) | `2.60.0` | `2.61.0` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.16.1` | `1.17.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.2.1` |\n| [av](https://github.com/PyAV-Org/PyAV) | `15.1.0` | `17.0.1` |\n| [cmake](https://github.com/scikit-build/cmake-python-distributions) | `4.1.3` | `4.3.2` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.7` | `48.0.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `12.9.4` | `13.3.1` |\n| [deepdiff](https://github.com/qlustered/deepdiff) | `8.6.2` | `9.1.0` |\n| [draccus](https://github.com/dlwh/draccus) | `0.10.0` | `0.11.5` |\n| [fsspec](https://github.com/fsspec/filesystem_spec) | `2026.2.0` | `2026.4.0` |\n| [idna](https://github.com/kjd/idna) | `3.16` | `3.17` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `9.0.0` |\n| [jsonpickle](https://github.com/jsonpickle/jsonpickle) | `4.1.1` | `4.1.2` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.36.0` | `1.37.0` |\n| [nvidia-cublas-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.4.1` | `12.9.2.10` |\n| [nvidia-cuda-cupti-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [nvidia-cuda-nvrtc-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.93` | `12.9.86` |\n| [nvidia-cuda-runtime-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [nvidia-cudnn-cu12](https://developer.nvidia.com/cuda-zone) | `9.10.2.21` | `9.23.0.39` |\n| [nvidia-cufft-cu12](https://developer.nvidia.com/cuda-zone) | `11.3.3.83` | `11.4.1.4` |\n| [nvidia-cufile-cu12](https://developer.nvidia.com/cuda-zone) | `1.13.1.3` | `1.14.1.1` |\n| [nvidia-curand-cu12](https://developer.nvidia.com/cuda-zone) | `10.3.9.90` | `10.3.10.19` |\n| [nvidia-cusolver-cu12](https://developer.nvidia.com/cuda-zone) | `11.7.3.90` | `11.7.5.82` |\n| [nvidia-cusparse-cu12](https://developer.nvidia.com/cuda-zone) | `12.5.8.93` | `12.5.10.65` |\n| [nvidia-cusparselt-cu12](https://developer.nvidia.com/cusparselt) | `0.7.1` | `0.8.1` |\n| [nvidia-nccl-cu12](https://developer.nvidia.com/cuda-zone) | `2.27.5` | `2.30.4` |\n| [nvidia-nvjitlink-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.93` | `12.9.86` |\n| [nvidia-nvshmem-cu12](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx-cu12](https://developer.nvidia.com/cuda-zone) | `12.8.90` | `12.9.79` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-logging](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.40.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.61b0` | `0.63b1` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.61b0` | `0.63b1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.6` | `4.10.0` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.6` | `7.35.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.46.4` | `2.47.0` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.2` |\n| [pyyaml-include](https://github.com/tanbro/pyyaml-include) | `1.4.1` | `2.2` |\n| [rerun-sdk](https://github.com/rerun-io/rerun) | `0.26.2` | `0.33.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.30.0` | `2026.5.1` |\n| [setuptools](https://github.com/pypa/setuptools) | `80.10.2` | `82.0.1` |\n| [starlette](https://github.com/Kludex/starlette) | `0.52.1` | `1.2.1` |\n| [torch](https://github.com/pytorch/pytorch) | `2.10.0` | `2.12.0` |\n| [torchvision](https://github.com/pytorch/vision) | `0.25.0` | `0.27.0` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [typer](https://github.com/fastapi/typer) | `0.26.2` | `0.26.4` |\n| [wandb](https://github.com/wandb/wandb) | `0.24.2` | `0.27.0` |\n\nUpdates `marshmallow` from 3.26.2 to 4.3.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.3.0 (2026-04-03)\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003epre_load\u003c/code\u003e and \u003ccode\u003epost_load\u003c/code\u003e parameters to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e for\nfield-level pre- and post-processing (:issue:\u003ccode\u003e2787\u003c/code\u003e).\u003c/li\u003e\n\u003cli\u003eTyping: improvements to \u003ccode\u003emarshmallow.validate\u003c/code\u003e (:pr:\u003ccode\u003e2940\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.4 (2026-04-02)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.validate.URL\u003c/code\u003e and \u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e accept Internationalized Domain Names (IDNs) (:issue:\u003ccode\u003e2821\u003c/code\u003e, :issue:\u003ccode\u003e2936\u003c/code\u003e).\n\u003ccode\u003emarshmallow.validate.Email\u003c/code\u003e also correctly rejects IDN domains with leading/trailing hyphens.\nThanks :user:\u003ccode\u003etouhidurrr\u003c/code\u003e for the report.\u003c/li\u003e\n\u003cli\u003eTyping: Fix typing of \u003ccode\u003enested\u003c/code\u003e in \u003ccode\u003emarshmallow.fields.Nested\u003c/code\u003e (:pr:\u003ccode\u003e2935\u003c/code\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.3 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMake \u003ccode\u003emarshmallow.fields.Number\u003c/code\u003e and \u003ccode\u003emarshmallow.fields.Mapping\u003c/code\u003e abstract base classes to\nprevent using them within Schemas (:issue:\u003ccode\u003e2924\u003c/code\u003e). Thanks :user:\u003ccode\u003eMartingaleCoda\u003c/code\u003e for reporting.\u003c/li\u003e\n\u003cli\u003eAllow \u003ccode\u003erequired\u003c/code\u003e to be set on \u003ccode\u003emarshmallow.fields.Contant\u003c/code\u003e (:issue:\u003ccode\u003e2900\u003c/code\u003e).\nThanks :user:\u003ccode\u003enosnickid\u003c/code\u003e for the report and :user:\u003ccode\u003eworksbyfriday\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003emarshmallow.validate.OneOf\u003c/code\u003e emitting extra pairs when labels outnumber choices (:issue:\u003ccode\u003e2869\u003c/code\u003e).\nThanks: user:\u003ccode\u003eT90REAL\u003c/code\u003e for the report and :user:\u003ccode\u003erstar327\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix behavior when passing a dot-delimited attribute name to \u003ccode\u003epartial\u003c/code\u003e for a key with \u003ccode\u003edata_key\u003c/code\u003e set (:pr:\u003ccode\u003e2903\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix Enum field by-name lookup to only return actual members (:pr:\u003ccode\u003e2902\u003c/code\u003e).\nThanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emarshmallow.fields.DateTime\u003c/code\u003e with \u003ccode\u003eformat=\u0026quot;timestamp_ms\u0026quot;\u003c/code\u003e properly\nrejects bool values (:pr:\u003ccode\u003e2904\u003c/code\u003e). Thanks :user:\u003ccode\u003ebysiber\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eFix typing of \u003ccode\u003eerror_messages\u003c/code\u003e argument to \u003ccode\u003emarshmallow.fields.Field\u003c/code\u003e (:pr:\u003ccode\u003e1636\u003c/code\u003e).\nThanks :user:\u003ccode\u003erepole\u003c/code\u003e for reporting and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eipaddress.*\u003c/code\u003e to \u003ccode\u003emarshmallow.Schema.TYPE_MAPPING\u003c/code\u003e (:issue:\u003ccode\u003e1695\u003c/code\u003e).\nThanks :user:\u003ccode\u003eliberforce\u003c/code\u003e for the suggestion and :user:\u003ccode\u003edhruvildarji\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\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/marshmallow-code/marshmallow/commit/b596fdb0d1bda68ae400ab29e1f1bde2f06900b3\"\u003e\u003ccode\u003eb596fdb\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/256f0aabbc18232219e33854999372cfe1643f52\"\u003e\u003ccode\u003e256f0aa\u003c/code\u003e\u003c/a\u003e Add pre/post_load parameters to Field (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2799\"\u003e#2799\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c847ad47a3f1235021bd2624b10c255a936ed107\"\u003e\u003ccode\u003ec847ad4\u003c/code\u003e\u003c/a\u003e Typing improvements to marshmallow.validate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/eb863228f5273244c19388fb6161ffdb90cb04d1\"\u003e\u003ccode\u003eeb86322\u003c/code\u003e\u003c/a\u003e Remove redundant docs job (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2939\"\u003e#2939\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/a44ad62a876d2e9330d0e370b438bafb058676d4\"\u003e\u003ccode\u003ea44ad62\u003c/code\u003e\u003c/a\u003e Avoid infinite recursion in nesting docs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2938\"\u003e#2938\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3360e34a2da480eba03ae07bd4b15f0859027bf8\"\u003e\u003ccode\u003e3360e34\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/7b9ce45ac906c2597ac0acb7416e01e80218b546\"\u003e\u003ccode\u003e7b9ce45\u003c/code\u003e\u003c/a\u003e Fix changelog typos and update releasing docs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/f07eadc87dfac25ed505d5cd9d186920f2682733\"\u003e\u003ccode\u003ef07eadc\u003c/code\u003e\u003c/a\u003e Fix validate.Email to accept IDNs (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2937\"\u003e#2937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/4acb783c73130f762aa5b0df6b65ff7685d5ff2c\"\u003e\u003ccode\u003e4acb783\u003c/code\u003e\u003c/a\u003e Fix Unreachable Warning (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2935\"\u003e#2935\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/3492fae7b31d310814ad16fcddad5c7717d54949\"\u003e\u003ccode\u003e3492fae\u003c/code\u003e\u003c/a\u003e Remove redundant python-version (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2932\"\u003e#2932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow-skinny` from 3.12.0 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/mlflow/mlflow/releases\"\u003emlflow-skinny's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.13.0rc0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.13.0rc0, which deepens agent observability, tightens permissions, and broadens deployment options:\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMajor New Features\u003c/strong\u003e:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eRBAC + Admin UI\u003c/strong\u003e: Major overhaul of MLflow's Role-Based Access Control — legacy per-resource permission tables collapsed into \u003ccode\u003erole_permissions\u003c/code\u003e, unified per-user permission APIs under \u003ccode\u003e/mlflow/users/permissions/*\u003c/code\u003e, workspace \u003ccode\u003eUSE\u003c/code\u003e permission lets users create experiments and registered models, default roles are seeded on workspace creation, \u003ccode\u003eprompt\u003c/code\u003e is promoted to a first-class RBAC \u003ccode\u003eresource_type\u003c/code\u003e, and a new 4-page Admin UI (account widget, \u003ccode\u003e/account\u003c/code\u003e page, Platform Admin pages, backend auth endpoints) opens to workspace managers scoped per their workspace. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22855\"\u003e#22855\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22857\"\u003e#22857\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22859\"\u003e#22859\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22928\"\u003e#22928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22929\"\u003e#22929\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22941\"\u003e#22941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22973\"\u003e#22973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23086\"\u003e#23086\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23247\"\u003e#23247\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23248\"\u003e#23248\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23337\"\u003e#23337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23379\"\u003e#23379\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eCoding-Agent Tracing as Plugins\u003c/strong\u003e: Claude Code, OpenClaw, Ollama, and OpenAI Codex are now wired into the AI Gateway as first-class assistant providers, plus a Claude Code TypeScript plugin with a setup wizard and \u003ccode\u003esettings.local.json\u003c/code\u003e support. The legacy Python autolog hook for \u003ccode\u003emlflow autolog claude\u003c/code\u003e is replaced by the new official plugin, and a coding-agent endpoint creation flow is now available directly in the AI Gateway UI. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20414\"\u003e#20414\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22098\"\u003e#22098\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22566\"\u003e#22566\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22717\"\u003e#22717\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23218\"\u003e#23218\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23285\"\u003e#23285\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23339\"\u003e#23339\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23430\"\u003e#23430\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23517\"\u003e#23517\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Gkrumbach07\"\u003e\u003ccode\u003e@​Gkrumbach07\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/SuperSonnix71\"\u003e\u003ccode\u003e@​SuperSonnix71\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eTrace Archival\u003c/strong\u003e: End-to-end trace archival across the tracking stack. Includes archival configuration models, OTLP and artifact helpers, SQLAlchemy archival passes, archive-aware retrieval fallback, plus workspace/experiment/server-level archival settings in the UI. Read archived traces back seamlessly. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23359\"\u003e#23359\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eHelm Charts for Kubernetes Deployment\u003c/strong\u003e: First-class Helm chart for deploying MLflow to Kubernetes clusters — production-ready configuration, ingress, persistence, and \u003ccode\u003eappVersion\u003c/code\u003e wired to the released MLflow image. Get from \u003ccode\u003ehelm install\u003c/code\u003e to a running tracking server without writing your own manifests. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21973\"\u003e#21973\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e\u003ccode\u003emlflow.genai.test_agent\u003c/code\u003e for Automated Agent Stress-Testing\u003c/strong\u003e: New API for stress-testing GenAI agents — generate adversarial inputs, replay them through your agent, and review the resulting traces in MLflow. Wires into the existing evaluation flow and assessment APIs. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22990\"\u003e#22990\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Span Links\u003c/strong\u003e: Tracing now supports the OpenTelemetry \u003ccode\u003eLink\u003c/code\u003e entity via \u003ccode\u003eLiveSpan.add_link()\u003c/code\u003e, letting you connect causally related spans across traces. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22797\"\u003e#22797\u003c/a\u003e, \u003ca href=\"https://github.com/khaledsulayman\"\u003e\u003ccode\u003e@​khaledsulayman\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003eDatabase Replica Routing\u003c/strong\u003e: The SQL tracking store now supports reader/writer instance routing for database replicas, so read-heavy MLflow deployments can scale horizontally without overloading the primary. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22910\"\u003e#22910\u003c/a\u003e, \u003ca href=\"https://github.com/ravidarbha\"\u003e\u003ccode\u003e@​ravidarbha\u003c/code\u003e\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eStay tuned for the full release, which will include even more features and bug fixes.\u003c/p\u003e\n\u003cp\u003eTo try out this release candidate, please run:\u003c/p\u003e\n\u003cp\u003e\u003ccode\u003epip install mlflow==3.13.0rc0\u003c/code\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow-skinny's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.13.0 (2026-05-29)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.13.0 includes several major features and improvements\u003c/p\u003e\n\u003ch3\u003eMajor New Features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e🔐 \u003ca href=\"https://mlflow.org/docs/latest/self-hosting/security/role-based-access-control\"\u003eRole-Based Access Control \u0026amp; Admin UI\u003c/a\u003e\u003c/strong\u003e: A full RBAC system with reusable roles and workspace-scoped grants, plus a new web Admin UI for managing users, roles, and permissions on self-hosted MLflow.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🗄️ \u003ca href=\"https://mlflow.org/docs/latest/genai/tracing/observe-with-traces/archive-traces\"\u003eTrace Retention \u0026amp; Auto Archival\u003c/a\u003e\u003c/strong\u003e: Automatically move aged trace span data out of your SQL backend into object storage (e.g. S3) while keeping every trace fully readable in the UI and APIs.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🤖 \u003ca href=\"https://mlflow.org/docs/latest/genai/governance/ai-gateway/coding-agents/\"\u003eOne-click observability \u0026amp; governance for coding agents\u003c/a\u003e\u003c/strong\u003e: Onboard Claude Code, OpenAI Codex, or Gemini CLI to the AI Gateway in one click for tracing, usage tracking, budgets, and guardrails.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e✨ \u003ca href=\"https://mlflow.org/docs/latest/genai/getting-started/try-assistant/\"\u003eNew engines for MLflow Assistant\u003c/a\u003e\u003c/strong\u003e: Run MLflow Assistant on a local Ollama model, the OpenAI Codex CLI, or any MLflow AI Gateway endpoint, in addition to Claude Code.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e☸️ \u003ca href=\"https://mlflow.org/docs/latest/self-hosting/kubernetes-helm\"\u003eHelm chart for Kubernetes\u003c/a\u003e\u003c/strong\u003e: An official, production-ready Helm chart for deploying the MLflow tracking server to any Kubernetes cluster.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🌐 \u003ca href=\"https://mlflow.org/docs/latest/genai/governance/ai-gateway/coding-agents/hermes-agent\"\u003eHermes Agent support\u003c/a\u003e\u003c/strong\u003e: Route the Hermes Agent runtime through the AI Gateway and capture its end-to-end traces in MLflow over OpenTelemetry.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e🪵 \u003ca href=\"https://mlflow.org/docs/latest/genai/tracing/app-instrumentation/logging\"\u003eSpan log levels\u003c/a\u003e\u003c/strong\u003e: Python-\u003ccode\u003elogging\u003c/code\u003e-style severity levels on spans, with a \u0026quot;Minimum log level\u0026quot; filter in the trace UI to hide low-level noise.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eThe permission system has been overhauled into a unified Role-Based Access Control model. The legacy per-resource permission tables, REST endpoints, and client methods are removed and replaced by roles backed by \u003ccode\u003erole_permissions\u003c/code\u003e, \u003ccode\u003edefault_permission\u003c/code\u003e now acts as a floor rather than an override, and a workspace \u003ccode\u003eUSE\u003c/code\u003e grant is sufficient to create experiments and registered models. Code that relied on the old per-resource permission APIs must migrate to the new role-based APIs. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22855\"\u003e#22855\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22859\"\u003e#22859\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22941\"\u003e#22941\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23337\"\u003e#23337\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23379\"\u003e#23379\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMLServer is no longer available as a pyfunc serving backend. The previously deprecated \u003ccode\u003eenable_mlserver\u003c/code\u003e option has been removed, so \u003ccode\u003emlflow models serve\u003c/code\u003e always uses the built-in scoring server. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23356\"\u003e#23356\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emlflow autolog claude\u003c/code\u003e no longer installs the old Python autolog hook; Claude Code tracing is now provided by the official Claude plugin, which must be installed separately. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23339\"\u003e#23339\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe default optimizer used by \u003ccode\u003ejudge.align()\u003c/code\u003e is now MemAlign, so existing alignment workflows may produce different judges than before unless an optimizer is passed explicitly. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23254\"\u003e#23254\u003c/a\u003e, \u003ca href=\"https://github.com/veronicalyu320\"\u003e\u003ccode\u003e@​veronicalyu320\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePointing the tracking or model registry store at a local file-system path now raises an error by default; set \u003ccode\u003eMLFLOW_ALLOW_FILE_STORE=true\u003c/code\u003e to keep using a file-based store. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22773\"\u003e#22773\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Assorted Features \u0026amp; Improvements:\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[Gateway] Support AI Gateway as a backend of MLflow Assistant (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23559\"\u003e#23559\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Make admin pickers target the workspace they're granting into (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23543\"\u003e#23543\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Bring direct-grant picker to parity with role picker (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23420\"\u003e#23420\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Cherry-pick: Add OpenAI Codex CLI as assistant provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22566\"\u003e#22566\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23517\"\u003e#23517\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Support settings.local.json for Claude Code tracing config (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23285\"\u003e#23285\u003c/a\u003e, \u003ca href=\"https://github.com/Gkrumbach07\"\u003e\u003ccode\u003e@​Gkrumbach07\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add coding-agent endpoint creation flow in AI Gateway UI (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23430\"\u003e#23430\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking / UI] Unified per-user permission APIs: \u003ccode\u003egrant\u003c/code\u003e / \u003ccode\u003erevoke\u003c/code\u003e / \u003ccode\u003eget\u003c/code\u003e / \u003ccode\u003elist\u003c/code\u003e under \u003ccode\u003e/mlflow/users/permissions/*\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23247\"\u003e#23247\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation / Tracing] Add \u003ccode\u003emlflow.genai.test_agent\u003c/code\u003e for automated agent stress-testing (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22990\"\u003e#22990\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Add /gateway/proxy/{endpoint_name}/{path} raw proxy endpoint (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23330\"\u003e#23330\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Add Ollama as assistant provider (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22098\"\u003e#22098\u003c/a\u003e, \u003ca href=\"https://github.com/SuperSonnix71\"\u003e\u003ccode\u003e@​SuperSonnix71\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry / Tracking] feat(tracking): Add reader/writer instance routing for database replicas (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22910\"\u003e#22910\u003c/a\u003e, \u003ca href=\"https://github.com/ravidarbha\"\u003e\u003ccode\u003e@​ravidarbha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / Tracking] Add workspace trace archival configuration plumbing (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22164\"\u003e#22164\u003c/a\u003e, \u003ca href=\"https://github.com/HumairAK\"\u003e\u003ccode\u003e@​HumairAK\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / Tracking] Promote \u003ccode\u003eprompt\u003c/code\u003e to a first-class RBAC \u003ccode\u003eresource_type\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23248\"\u003e#23248\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Publish claude code integration as a plugin and add a setup wizard. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23218\"\u003e#23218\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Forward Usage tab MetricsFilter metric filters to chart View traces links by translating to Traces page URL DSL (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23239\"\u003e#23239\u003c/a\u003e, \u003ca href=\"https://github.com/aaronteo-db\"\u003e\u003ccode\u003e@​aaronteo-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Claude Code Agent Typescript (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20414\"\u003e#20414\u003c/a\u003e, \u003ca href=\"https://github.com/joelrobin18\"\u003e\u003ccode\u003e@​joelrobin18\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Adding metric filter component for Experiment Usage tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23120\"\u003e#23120\u003c/a\u003e, \u003ca href=\"https://github.com/aaronteo-db\"\u003e\u003ccode\u003e@​aaronteo-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Add \u003ccode\u003eLink\u003c/code\u003e entity and \u003ccode\u003eLiveSpan.add_link()\u003c/code\u003e for OpenTelemetry Span Links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22797\"\u003e#22797\u003c/a\u003e, \u003ca href=\"https://github.com/khaledsulayman\"\u003e\u003ccode\u003e@​khaledsulayman\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Evaluation] Add Google ADK and third-party scorers (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22299\"\u003e#22299\u003c/a\u003e, \u003ca href=\"https://github.com/debu-sinha\"\u003e\u003ccode\u003e@​debu-sinha\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Open \u003ccode\u003e/admin\u003c/code\u003e to workspace managers (scoped per their workspace) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23086\"\u003e#23086\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Trace \u003ccode\u003eRunner.run_streamed()\u003c/code\u003e in OpenAI Agents SDK autolog (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22962\"\u003e#22962\u003c/a\u003e, \u003ca href=\"https://github.com/ktrk115\"\u003e\u003ccode\u003e@​ktrk115\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Feature/sagemaker build network option (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22996\"\u003e#22996\u003c/a\u003e, \u003ca href=\"https://github.com/pdifranc\"\u003e\u003ccode\u003e@​pdifranc\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing / UI] Add log levels for Trace Spans with UI switch to filter (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23017\"\u003e#23017\u003c/a\u003e, \u003ca href=\"https://github.com/rrtheonlyone\"\u003e\u003ccode\u003e@​rrtheonlyone\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Improve trace page empty state onboarding with setup and code blocks (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22533\"\u003e#22533\u003c/a\u003e, \u003ca href=\"https://github.com/vivian-xie-db\"\u003e\u003ccode\u003e@​vivian-xie-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / Tracking] Add UC traces upsell message for set_experiment calls on Databricks (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/23038\"\u003e#23038\u003c/a\u003e, \u003ca href=\"https://github.com/xsh310\"\u003e\u003ccode\u003e@​xsh310\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Server-infra / UI] [Admin-UI-3/4] Add Platform Admin pages (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/22929\"\u003e#22929\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\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\u003eSee full diff in \u003ca href=\"https://github.com/mlflow/mlflow/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sentry-sdk` from 2.60.0 to 2.61.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/getsentry/sentry-python/releases\"\u003esentry-sdk's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.61.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when \u003ccode\u003estream_gen_ai_spans=True\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6307\"\u003e#6307\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow integrations to define control flow exceptions by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6425\"\u003e#6425\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisable string truncation for events by default by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6290\"\u003e#6290\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFollowing a previous significant increase of the string truncation limit, we've now completely removed the limit by default.\nIn case you have large strings in your events, you should now be able to see them.\u003c/p\u003e\n\u003cp\u003eIn rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.\nIf that happens, you can set the \u003ccode\u003emax_value_length\u003c/code\u003e \u003ccode\u003einit\u003c/code\u003e option to the previous value of \u003ccode\u003e100_000\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003esentry_sdk.init(\n    ...,\n    max_value_length=100_000,\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eLangchain\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6301\"\u003e#6301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eTypeError\u003c/code\u003e on \u003ccode\u003elangchain.agents\u003c/code\u003e import by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6268\"\u003e#6268\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003estarting_agent\u003c/code\u003e keyword argument in runner patches by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6428\"\u003e#6428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove hosted MCP tool spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6391\"\u003e#6391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ename\u003c/code\u003e, not \u003ccode\u003edescription\u003c/code\u003e in \u003ccode\u003estart_span\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6323\"\u003e#6323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6303\"\u003e#6303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic AI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting tokens on Invoke Agent spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6320\"\u003e#6320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6302\"\u003e#6302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eAgent.run_stream_events()\u003c/code\u003e patch by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6281\"\u003e#6281\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStrawberry\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWrap yields in try-except to ensure span cleanup by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6381\"\u003e#6381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003egraphql_span\u003c/code\u003e in \u003ccode\u003eresolve\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6289\"\u003e#6289\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(anthropic) Do not set \u003ccode\u003egen_ai.response.model\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6312\"\u003e#6312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(asyncpg) Use Sentry span attribute name conventions by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6306\"\u003e#6306\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(boto3) Guard setting method by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6288\"\u003e#6288\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/getsentry/sentry-python/blob/master/CHANGELOG.md\"\u003esentry-sdk's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.61.0\u003c/h2\u003e\n\u003ch3\u003eNew Features ✨\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eAdd \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when \u003ccode\u003estream_gen_ai_spans=True\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6307\"\u003e#6307\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eAllow integrations to define control flow exceptions by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6425\"\u003e#6425\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDisable string truncation for events by default by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6290\"\u003e#6290\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eFollowing a previous significant increase of the string truncation limit, we've now completely removed the limit by default.\nIn case you have large strings in your events, you should now be able to see them.\u003c/p\u003e\n\u003cp\u003eIn rare cases, if you have really long strings (or a lot of them), you might see envelopes being dropped because of their size.\nIf that happens, you can set the \u003ccode\u003emax_value_length\u003c/code\u003e \u003ccode\u003einit\u003c/code\u003e option to the previous value of \u003ccode\u003e100_000\u003c/code\u003e:\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003esentry_sdk.init(\n    ...,\n    max_value_length=100_000,\n)\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug Fixes 🐛\u003c/h3\u003e\n\u003ch4\u003eLangchain\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6301\"\u003e#6301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCatch \u003ccode\u003eTypeError\u003c/code\u003e on \u003ccode\u003elangchain.agents\u003c/code\u003e import by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6268\"\u003e#6268\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOpenai Agents\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003estarting_agent\u003c/code\u003e keyword argument in runner patches by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6428\"\u003e#6428\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove hosted MCP tool spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6391\"\u003e#6391\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ename\u003c/code\u003e, not \u003ccode\u003edescription\u003c/code\u003e in \u003ccode\u003estart_span\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6323\"\u003e#6323\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6303\"\u003e#6303\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003ePydantic AI\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eStop setting tokens on Invoke Agent spans by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6320\"\u003e#6320\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop setting transaction status when child span fails by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6302\"\u003e#6302\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003eAgent.run_stream_events()\u003c/code\u003e patch by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6281\"\u003e#6281\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eStrawberry\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eWrap yields in try-except to ensure span cleanup by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6381\"\u003e#6381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003eAttributeError\u003c/code\u003e on \u003ccode\u003egraphql_span\u003c/code\u003e in \u003ccode\u003eresolve\u003c/code\u003e by \u003ca href=\"https://github.com/sentrivana\"\u003e\u003ccode\u003e@​sentrivana\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6289\"\u003e#6289\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eOther\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e(anthropic) Do not set \u003ccode\u003egen_ai.response.model\u003c/code\u003e to \u003ccode\u003eNone\u003c/code\u003e by \u003ca href=\"https://github.com/alexander-alderman-webb\"\u003e\u003ccode\u003e@​alexander-alderman-webb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6312\"\u003e#6312\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e(asyncpg) Use Sentry span attribute name conventions by \u003ca href=\"https://github.com/ericapisani\"\u003e\u003ccode\u003e@​ericapisani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/getsentry/sentry-python/pull/6306\"\u003e#6306\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/getsentry/sentry-python/commit/53df8783b8961e2cba32d932b78c79e4408c7ed6\"\u003e\u003ccode\u003e53df878\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/24f6bf7a81aeb554f9ed1459d6a386bec6878ab1\"\u003e\u003ccode\u003e24f6bf7\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/f50bec574650d3c09b14683491219d458f72c13b\"\u003e\u003ccode\u003ef50bec5\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/35469462b9d672ec6be408a3292447252ea23712\"\u003e\u003ccode\u003e3546946\u003c/code\u003e\u003c/a\u003e release: 2.61.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/54f768680cad8a40ab97be4dddd16c12c9cba493\"\u003e\u003ccode\u003e54f7686\u003c/code\u003e\u003c/a\u003e feat(span-streaming): Add more attrs to segment spans (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6432\"\u003e#6432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7e27e34fd05b337574a93352c773b1d4a2885d13\"\u003e\u003ccode\u003e7e27e34\u003c/code\u003e\u003c/a\u003e feat(openai): Support span streaming (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6431\"\u003e#6431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/139a9a176f732ba7f1456510c2f0f00930e38558\"\u003e\u003ccode\u003e139a9a1\u003c/code\u003e\u003c/a\u003e feat: Add \u003ccode\u003eserver.address\u003c/code\u003e to transformed spans when `stream_gen_ai_spans=Tru...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/7bf1d6ee4ba0069e074c462c256f8a88b8b450a0\"\u003e\u003ccode\u003e7bf1d6e\u003c/code\u003e\u003c/a\u003e fix(openai_agents): Handle starting_agent keyword argument in runner patches ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/5662d86fd9ac8ddf635c0da489b275093c0feb08\"\u003e\u003ccode\u003e5662d86\u003c/code\u003e\u003c/a\u003e test(langchain): Deduplicate by removing \u003ccode\u003enode.callspec.id\u003c/code\u003e matching (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6426\"\u003e#6426\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/getsentry/sentry-python/commit/fb9def2f53ec65bbf70d1d8a63acb1a6a2f4e195\"\u003e\u003ccode\u003efb9def2\u003c/code\u003e\u003c/a\u003e feat(huey): Migrate Huey integration to spans-first tracing (\u003ca href=\"https://redirect.github.com/getsentry/sentry-python/issues/6399\"\u003e#6399\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/getsentry/sentry-python/compare/2.60.0...2.61.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `huggingface-hub` from 1.16.1 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/huggingface/huggingface_hub/releases\"\u003ehuggingface-hub's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[v1.17.0] Cross-repo copies, ssh to Spaces, smarter CLI tables\u003c/h2\u003e\n\u003ch2\u003e📋 Copy files between repositories\u003c/h2\u003e\n\u003cp\u003eYou can now copy files or entire folders between different repositories on the Hub — model to model, model to dataset, any combination — without downloading or re-uploading data. \u003ccode\u003eCommitOperationCopy\u003c/code\u003e accepts \u003ccode\u003esrc_repo_id\u003c/code\u003e and \u003ccode\u003esrc_repo_type\u003c/code\u003e for cross-repo sources, and LFS blobs are deduplicated server-side via the \u003ccode\u003e/lfs-files/duplicate\u003c/code\u003e endpoint. Non-LFS files are fetched from the source repo and committed as regular payloads. \u003ccode\u003ecopy_files\u003c/code\u003e and \u003ccode\u003ehf buckets cp\u003c/code\u003e now support repo-to-repo in addition to the existing bucket destinations.\u003c/p\u003e\n\u003cpre lang=\"python\"\u003e\u003ccode\u003e\u0026gt;\u0026gt;\u0026gt; from huggingface_hub import copy_files\r\n\u003ch1\u003eCopy an entire folder\u003c/h1\u003e\n\u003cp\u003e\u0026gt;\u0026gt;\u0026gt; copy_files(\n...     \u0026quot;hf://datasets/username/source-dataset/data/\u0026quot;,\n...     \u0026quot;hf://datasets/username/target-dataset/data/\u0026quot;,\n... )\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Copy] Support cross-repo file copies by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4203\"\u003e#4203\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/upload#copy-files-between-repositories\"\u003eUpload guide — Copy files between repositories\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🖥️ SSH into a Space with \u003ccode\u003ehf spaces ssh\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA new \u003ccode\u003ehf spaces ssh\u003c/code\u003e command opens an SSH session directly into a Space's Dev Mode container. If Dev Mode is not enabled yet, the CLI prompts you to enable it. You can also use \u003ccode\u003e--dry-run\u003c/code\u003e to print the SSH command without running it, or \u003ccode\u003e-i\u003c/code\u003e to forward a specific key. Your SSH public key must be registered in your HF user settings.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# SSH into a Space\r\n$ hf spaces ssh username/my-space\r\n\u003ch1\u003ePrint the SSH command without running it\u003c/h1\u003e\n\u003cp\u003e$ hf spaces ssh username/my-space --dry-run\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Add \u003ccode\u003ehf spaces ssh\u003c/code\u003e by \u003ca href=\"https://github.com/gary149\"\u003e\u003ccode\u003e@​gary149\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4241\"\u003e#4241\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#ssh-into-a-space-dev-mode\"\u003eCLI guide — SSH into a Space\u003c/a\u003e | \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/manage-spaces#ssh-into-a-space-dev-mode\"\u003eSpaces guide — SSH into a Space\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e📂 List all your repos with \u003ccode\u003ehf repos ls\u003c/code\u003e\u003c/h2\u003e\n\u003cp\u003eA new \u003ccode\u003ehf repos ls\u003c/code\u003e command lists all your repositories — models, datasets, spaces, and buckets — with storage size and percentage of namespace total, sorted by storage usage. It supports \u003ccode\u003e--type\u003c/code\u003e, \u003ccode\u003e--search\u003c/code\u003e, \u003ccode\u003e--namespace\u003c/code\u003e, and \u003ccode\u003e--limit\u003c/code\u003e (default 30, \u003ccode\u003e--limit 0\u003c/code\u003e for all), plus the standard \u003ccode\u003e--format\u003c/code\u003e family.\u003c/p\u003e\n\u003cpre lang=\"bash\"\u003e\u003ccode\u003e# List all your repos\r\n$ hf repos ls\r\n\u003ch1\u003eList all datasets under org with JSON output\u003c/h1\u003e\n\u003cp\u003e$ hf repos ls --namespace my-org --type dataset --limit 0 --format json | jq '.[].id'\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[CLI] Add \u003ccode\u003ehf repos ls\u003c/code\u003e command by \u003ca href=\"https://github.com/Wauplin\"\u003e\u003ccode\u003e@​Wauplin\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4283\"\u003e#4283\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e📚 \u003cstrong\u003eDocumentation:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/cli#list-repos\"\u003eCLI guide — List repos\u003c/a\u003e | \u003ca href=\"https://huggingface.co/docs/huggingface_hub/main/en/guides/repository#list-your-repositories\"\u003eRepository guide — List your repositories\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/huggingface/huggingface_hub/commit/b52949337c814e42995bcfb34782261635cedec5\"\u003e\u003ccode\u003eb529493\u003c/code\u003e\u003c/a\u003e Release: v1.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/e2f95efcf3fcffad3c148640ff0a90de81f2e967\"\u003e\u003ccode\u003ee2f95ef\u003c/code\u003e\u003c/a\u003e Release: v1.17.0.rc0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/06d2a3f0ad40ecc27db36c8c581680570ea57653\"\u003e\u003ccode\u003e06d2a3f\u003c/code\u003e\u003c/a\u003e [CLI] Add \u003ccode\u003ehf repos ls\u003c/code\u003e command (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4283\"\u003e#4283\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/714044eac787571eba16a12bee57388f852d1c2e\"\u003e\u003ccode\u003e714044e\u003c/code\u003e\u003c/a\u003e [Docs] Document missing parameters in lfs, hf_file_system, and repocard_data ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5e8e940491b8deb45dede913417e17d16b0074fc\"\u003e\u003ccode\u003e5e8e940\u003c/code\u003e\u003c/a\u003e [CLI] Auto right-align numeric columns in human table output (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4288\"\u003e#4288\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/bb09fa48a207c64f8c242b51e11aa2f1dabad48d\"\u003e\u003ccode\u003ebb09fa4\u003c/code\u003e\u003c/a\u003e [Copy] Support cross-repo file copies (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4203\"\u003e#4203\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/b17ab0cea69c418b15c5fe55a1fe334a1fc2eb72\"\u003e\u003ccode\u003eb17ab0c\u003c/code\u003e\u003c/a\u003e [CLI] Drop legacy printing helpers from \u003ccode\u003e_cli_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4285\"\u003e#4285\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/5c7920e9890c05e8fbbfb308ba957ab7576c7e55\"\u003e\u003ccode\u003e5c7920e\u003c/code\u003e\u003c/a\u003e [CLI] Migrate \u003ccode\u003ehf lfs-enable-largefiles\u003c/code\u003e, \u003ccode\u003ehf extensions\u003c/code\u003e, \u003ccode\u003ehf version\u003c/code\u003e to `o...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/ffc07b64a0ee65eab6da033d900aa0966cca3ca4\"\u003e\u003ccode\u003effc07b6\u003c/code\u003e\u003c/a\u003e [Jobs] Decouple Job hardware from Spaces, auto-sync enums with Hub API (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4266\"\u003e#4266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/huggingface_hub/commit/c06e97659db2247c90761d69750484f75034cc20\"\u003e\u003ccode\u003ec06e976\u003c/code\u003e\u003c/a\u003e [CLI] Auto-fit human tables to terminal width (\u003ca href=\"https://redirect.github.com/huggingface/huggingface_hub/issues/4251\"\u003e#4251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/huggingface_hub/compare/v1.16.1...v1.17.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `wrapt` from 1.17.3 to 2.2.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/releases\"\u003ewrapt's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ewrapt 2.2.1\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\nbuilds). The source distribution is also attached together\nwith \u003ccode\u003eSHA256SUMS\u003c/code\u003e for verification.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.1rc1\u003c/h2\u003e\n\u003cp\u003eRelease candidate. Release notes for the upcoming\n2.2.1 final (work in progress): \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-1\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eMay be installable from PyPi:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.1rc1\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eIf \u003ccode\u003epip\u003c/code\u003e reports the version is unavailable, this candidate\neither has not been uploaded yet or is not being published to\nPyPi. Use the attached wheels or build from the source\ndistribution instead:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003etar xf wrapt-2.2.1rc1.tar.gz\ncd wrapt-2.2.1rc1\npip install .\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003eSHA256SUMS\u003c/code\u003e is attached for verification of the archives.\u003c/p\u003e\n\u003ch2\u003ewrapt 2.2.0\u003c/h2\u003e\n\u003cp\u003eFull release notes: \u003ca href=\"https://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-0\"\u003ehttps://wrapt.readthedocs.io/en/latest/changes.html#version-2-2-0\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eInstall from PyPi (recommended):\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003epip install wrapt==2.2.0\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003ePyPi uploads follow each GitHub release; if \u003ccode\u003epip\u003c/code\u003e reports the\nversion is unavailable, the matching PyPi upload may not have\nhappened yet.\u003c/p\u003e\n\u003cp\u003ePre-built wheels are provided for a range of Python versions\nand platforms (Linux x86_64/aarch64/riscv64, macOS x86_64 and\narm64, Windows x86_64 and arm64, plus PyPy and free-threaded\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/GrahamDumpleton/wrapt/blob/develop/docs/changes.rst\"\u003ewrapt's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.2.1\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugs Fixed\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eReverted the change in 2.2.0 which had aligned the C implementation of\n\u003ccode\u003eFunctionWrapper.__get__\u003c/code\u003e with the pure Python implementation by\nsubstituting \u003ccode\u003ePy_None\u003c/code\u003e for \u003ccode\u003eNULL\u003c/code\u003e before invoking the wrapped\ndescriptor's \u003ccode\u003e__get__\u003c/code\u003e slot. The change was based on a misreading of\nwhat the pure Python path does once it crosses back into C. The pure\nPython path calls \u003ccode\u003eself.__wrapped__.__get__(None, owner)\u003c/code\u003e from Python,\nand for any built-in descriptor that call is dispatched through the\n\u003ccode\u003e__get__\u003c/code\u003e slot wrapper inside CPython, which converts \u003ccode\u003ePy_None\u003c/code\u003e back\nto \u003ccode\u003eNULL\u003c/code\u003e before the wrapped descriptor's \u003ccode\u003etp_descr_get\u003c/code\u003e is invoked.\nThe pre 2.2.0 C path called \u003ccode\u003etp_descr_get\u003c/code\u003e directly with \u003ccode\u003eobj\u003c/code\u003e as\nreceived, which is \u003ccode\u003eNULL\u003c/code\u003e on class access, so it was already producing\nthe same value the Python path produces after the slot wrapper's\n\u003ccode\u003ePy_None\u003c/code\u003e to \u003ccode\u003eNULL\u003c/code\u003e conversion. Substituting \u003ccode\u003ePy_None\u003c/code\u003e for \u003ccode\u003eNULL\u003c/code\u003e\nbefore \u003ccode\u003etp_descr_get\u003c/code\u003e was called caused the wrapped descriptor to see\na value it would never see during ordinary class attribute lookup.\nNative CPython descriptors other than \u003ccode\u003efunc_descr_get\u003c/code\u003e fast path on\n\u003ccode\u003eobj == NULL\u003c/code\u003e and return the descriptor unchanged. With \u003ccode\u003ePy_None\u003c/code\u003e\nsubstituted in they fall through to a type check against the owner type\nof the descriptor, and \u003ccode\u003eNoneType\u003c/code\u003e does not satisfy that check, so a\n\u003ccode\u003eTypeError\u003c/code\u003e is raised. This broke class attribute access for any\nbuilt-in or C extension descriptor (\u003ccode\u003emethod_descriptor\u003c/code\u003e,\n\u003ccode\u003ewrapper_descriptor\u003c/code\u003e, \u003ccode\u003egetset_descriptor\u003c/code\u003e, \u003ccode\u003emember_descriptor\u003c/code\u003e)\nwrapped by \u003ccode\u003e@wrapt.decorator\u003c/code\u003e or \u003ccode\u003e@wrapt.function_wrapper\u003c/code\u003e. The\nfailure mode is most likely to show up in instrumentation libraries that\nmonkey patch built-in methods onto classes and where some inspection or\nbinding step then accesses the wrapped attribute through the class. The\nexisting test suite did not catch the regression because all wrappers in\nthe test suite are applied to pure Python functions, whose\n\u003ccode\u003efunc_descr_get\u003c/code\u003e slot treats \u003ccode\u003eNULL\u003c/code\u003e and \u003ccode\u003ePy_None\u003c/code\u003e equivalently. A\nnew regression test has been added which wraps a \u003ccode\u003emethod_descriptor\u003c/code\u003e\nand exercises class attribute access, so the missing coverage of\nnon-function descriptors is now in place. With thanks to\n\u003ccode\u003ebrettlangdon \u0026lt;https://github.com/brettlangdon\u0026gt;\u003c/code\u003e_ for reporting the\nregression and identifying the underlying cause.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 2.2.0\u003c/h2\u003e\n\u003cp\u003eA special thanks to \u003ccode\u003edevdanzin \u0026lt;https://github.com/devdanzin\u0026gt;\u003c/code\u003e_ for providing\nan extremely useful analysis of issues in the wrapt C extension. Their\nanalysis led to the majority of the fixes and updates in this release and\ntheir help is much appreciated.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eNew Features\u003c/strong\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/GrahamDumpleton/wrapt/commit/787db020c8297c8ccefce9f5db31f90db341c3b6\"\u003e\u003ccode\u003e787db02\u003c/code\u003e\u003c/a\u003e Merge branch 'release/2.2.1'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/da8f21f30cb3bd31f92a2b70e24afb3539f272c5\"\u003e\u003ccode\u003eda8f21f\u003c/code\u003e\u003c/a\u003e Update to 2.2.1 for final release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/d89dce9172689cfb20a204dc08813db9df8aa8ad\"\u003e\u003ccode\u003ed89dce9\u003c/code\u003e\u003c/a\u003e Skip CPython specific descriptor tests on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/86f4e0eee67b3c0d173733cc0e3b6727bb6bedb1\"\u003e\u003ccode\u003e86f4e0e\u003c/code\u003e\u003c/a\u003e Go with 2.2.1rc1 instead of 2.2.1.dev1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/94bd940f21eeb03163b084626ff79ee5f1ff0cd0\"\u003e\u003ccode\u003e94bd940\u003c/code\u003e\u003c/a\u003e Run descriptor \u003cstrong\u003eget\u003c/strong\u003e tests against both implementations.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/00541d54b7b978146808c1a61314a10df8732b4e\"\u003e\u003ccode\u003e00541d5\u003c/code\u003e\u003c/a\u003e Merge branch 'develop' of github.com:GrahamDumpleton/wrapt into develop\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/daddcfee8716ffbdc4454912257ee22c2be35118\"\u003e\u003ccode\u003edaddcfe\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/GrahamDumpleton/wrapt/issues/341\"\u003e#341\u003c/a\u003e from brettlangdon/brettlangdon/descriptor.tests\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0583a12bbe1ea02939ddbd3dba69a84904e30a8d\"\u003e\u003ccode\u003e0583a12\u003c/code\u003e\u003c/a\u003e Revert Py_None substitution in C FunctionWrapper.\u003cstrong\u003eget\u003c/strong\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/f8d4a2ea1bba1422234a8959e6b5dd9bc474bc6c\"\u003e\u003ccode\u003ef8d4a2e\u003c/code\u003e\u003c/a\u003e Add test coverage for native descriptors\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/GrahamDumpleton/wrapt/commit/0dbbba12018a961083f2446f9275544bf16e97cc\"\u003e\u003ccode\u003e0dbbba1\u003c/code\u003e\u003c/a\u003e Update to 2.2.1.dev1 to test fixes.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/GrahamDumpleton/wrapt/compare/1.17.3...2.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `av` from 15.1.0 to 17.0.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/PyAV-Org/PyAV/releases\"\u003eav's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.0.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdjust tests so they work with ffmpeg 8.1 by \u003ca href=\"https://github.com/strophy\"\u003e\u003ccode\u003e@​strophy\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2204\"\u003ePyAV-Org/PyAV#2204\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2205\"\u003ePyAV-Org/PyAV#2205\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake VideoFormat.components lazy by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2209\"\u003ePyAV-Org/PyAV#2209\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBreak reference cycle in \u003ccode\u003eStreamContainer.get()\u003c/code\u003e by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2221\"\u003ePyAV-Org/PyAV#2221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExpose \u003ccode\u003ethreads\u003c/code\u003e in filter graph by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2211\"\u003ePyAV-Org/PyAV#2211\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix crash with container closing with GC by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2225\"\u003ePyAV-Org/PyAV#2225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2223\"\u003e#2223\u003c/a\u003e \u0026quot;Writing packets to data stream broken in av\u0026gt;=17\u0026quot; regression by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e_send_packet_and_recv\u003c/code\u003e to simplify \u003ccode\u003edecode()\u003c/code\u003e by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2233\"\u003ePyAV-Org/PyAV#2233\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReuse a \u003ccode\u003eAVPacket\u003c/code\u003e read buffer when demuxing by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2234\"\u003ePyAV-Org/PyAV#2234\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eAVCodecContext.frame_num\u003c/code\u003e instead of counting ourselves by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2236\"\u003ePyAV-Org/PyAV#2236\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003elayout_compare()\u003c/code\u003e for \u003ccode\u003eAudioLayout.__eq__()\u003c/code\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2236\"\u003ePyAV-Org/PyAV#2236\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/strophy\"\u003e\u003ccode\u003e@​strophy\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2204\"\u003ePyAV-Org/PyAV#2204\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/PyAV-Org/PyAV/compare/v17.0.0...v17.0.1\"\u003ehttps://github.com/PyAV-Org/PyAV/compare/v17.0.0...v17.0.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev17.0.0\u003c/h2\u003e\n\u003ch3\u003eMajor\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eLimited API binary wheels are now built.\u003c/li\u003e\n\u003cli\u003e3.13t (free-threading) wheels are be dropped because of storage limitations. Use 3.14t or 3.13.\u003c/li\u003e\n\u003cli\u003eWhen an FFmpeg C function indicates an error, raise av.ArgumentError instead of ValueError/av.ValueError. This helps disambiguate why an exception is being thrown.\u003c/li\u003e\n\u003cli\u003eSave space by removing libaom (av1 encoder/decoder); dav1d, stvav1, and hardware, are available alternatives.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFeatures\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003eOutputContainer.add_mux_stream()\u003c/code\u003e for creating codec-context-free streams, enabling muxing of pre-encoded packets without an encoder, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1970\"\u003e#1970\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eUse zero-copy for Packet init from buffer data by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2199\"\u003e#2199\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExpose AVIndexEntry by \u003ca href=\"https://github.com/Queuecumber\"\u003e\u003ccode\u003e@​Queuecumber\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2136\"\u003e#2136\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003ePreserving hardware memory during cuvid decoding, exporting/importing via dlpack by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2155\"\u003e#2155\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd enumerate_input_devices and enumerate_output_devices API by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2174\"\u003e#2174\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003eColorTrc\u003c/code\u003e and \u003ccode\u003eColorPrimaries\u003c/code\u003e enums; add \u003ccode\u003ecolor_trc\u003c/code\u003e and \u003ccode\u003ecolor_primaries\u003c/code\u003e properties to \u003ccode\u003eVideoFrame\u003c/code\u003e; add \u003ccode\u003edst_color_trc\u003c/code\u003e and \u003ccode\u003edst_color_primaries\u003c/code\u003e parameters to \u003ccode\u003eVideoFrame.reformat()\u003c/code\u003e, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1968\"\u003e#1968\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2175\"\u003e#2175\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eAdd multithreaded reformatting and reduce Python overhead by replacing \u003ccode\u003esws_scale\u003c/code\u003e with \u003ccode\u003esws_scale_frame\u003c/code\u003e, skipping unnecessary reformats, and minimizing Python interactions by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003ePrevent data copy in \u003ccode\u003eVideoFrame.to_ndarray()\u003c/code\u003e for padded frames by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2190\"\u003e#2190\u003c/a\u003e).\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2149\"\u003e#2149\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2155\"\u003e#2155\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix packet typing based on stream and specify InputContainer.demux based on incoming stream by \u003ca href=\"https://github.com/ntjohnson1\"\u003e\u003ccode\u003e@​ntjohnson1\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2134\"\u003e#2134\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eFix memory growth when remuxing with \u003ccode\u003eadd_stream_from_template\u003c/code\u003e by skipping \u003ccode\u003eavcodec_open2\u003c/code\u003e for template-initialized codec contexts, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2135\"\u003e#2135\u003c/a\u003e by \u003ca href=\"https://github.com/WyattBlue\"\u003e\u003ccode\u003e@​WyattBlue\u003c/code\u003e\u003c/a\u003e).\u003c/li\u003e\n\u003cli\u003eExplicitly disable OpenSSL in source builds (\u003ccode\u003escripts/build-deps\u003c/code\u003e) to prevent accidental OpenSSL linkage that breaks FIPS-enabled systems, addressing \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/1972\"\u003e#1972\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eAdd missing \u003ccode\u003eSWS_SPLINE\u003c/code\u003e interpolation by \u003ca href=\"https://github.com/lgeiger\"\u003e\u003ccode\u003e@​lgeiger\u003c/code\u003e\u003c/a\u003e in (\u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/issues/2188\"\u003e#2188\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/wojiushixiaobai\"\u003e\u003ccode\u003e@​wojiushixiaobai\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2076\"\u003ePyAV-Org/PyAV#2076\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ntjohnson1\"\u003e\u003ccode\u003e@​ntjohnson1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2134\"\u003ePyAV-Org/PyAV#2134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/clayy24\"\u003e\u003ccode\u003e@​clayy24\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/PyAV-Org/PyAV/pull/2181\"\u003ePyAV-Org/PyAV#2181\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/PyAV-Org/PyAV/blob/main/CHANGELOG.rst\"\u003eav's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev17.0.1\u003c/h2\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eA cdivision decorator for faster division.\u003c/li\u003e\n\u003cli\u003eAdjust tests so they work with 8.1 by :gh-user:\u003ccode\u003estrophy\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eMake VideoFormat.components lazy by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eBreak reference cycle \u003ccode\u003eStreamContainer.get()\u003c/code\u003e by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eExpose threads in filter graph by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix crash with container closing with GC by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eFix \u0026quot;Writing packets to data stream broken in av\u0026gt;=17\u0026quot; regression :issue:\u003ccode\u003e2223\u003c/code\u003e by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRemove \u003ccode\u003e_send_packet_and_recv\u003c/code\u003e to simplify \u003ccode\u003edecode()\u003c/code\u003e by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eReuse a \u003ccode\u003eAVPacket\u003c/code\u003e read buffer when demuxing by :gh-user:\u003ccode\u003elgeiger\u003c/code\u003e and :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eAVCodecContext.frame_num\u003c/code\u003e instead of counting ourselves by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003eav_channel_layout_compare()\u003c/code\u003e for \u003ccode\u003eAudioLayout.__eq__()\u003c/code\u003e by :gh-user:\u003ccode\u003eWyattBlue\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev17.0.0\u003c/h2\u003e\n\u003cp\u003eMajor:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited API binary wheels are now built.\u003c/li\u003e\n\u003cli\u003e3.13t (free-threading) will be dropped because of storage limitations.\u003c/li\u003e\n\u003cli\u003eWhen an FFmpeg C function indicates an error, raise av.ArgumentError instead of ValueError/av.ValueError. This helps disambiguate why an exception is being thrown.\u003c/li\u003e\n\u003cli\u003eSave space by removing libaom (av1 encoder/decoder); dav1d, stvav1, and hardware, are available alternatives.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/808","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/808","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/808/packages"}},{"old_version":"\u003e=1.36.0","new_version":"\u003e=1.37.0","update_type":"minor","path":null,"pr_created_at":"2026-06-01T01:12:19.000Z","version_change":"\u003e=1.36.0 → \u003e=1.37.0","issue":{"uuid":"4559645051","node_id":"PR_kwDOJc4wYs7hL8VN","number":83,"state":"open","title":"Update msal requirement from \u003e=1.36.0 to \u003e=1.37.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-06-01T01:12:19.000Z","updated_at":"2026-06-01T01:17:44.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.36.0","new_version":"\u003e=1.37.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"\u003e [!WARNING]\n\u003e Dependabot will stop supporting `python v3.9`!\n\u003e \n\u003e Please upgrade to one of the following versions: `v3.9`, `v3.10`, `v3.11`, `v3.12`, `v3.13`, or `v3.14`.\n\u003e\n\nUpdates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/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 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/Integration-Automation/FileAutomation/pull/83","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integration-Automation%2FFileAutomation/issues/83","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/83/packages"}},{"old_version":"1.34.0","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-05-26T23:33:44.000Z","version_change":"1.34.0 → 1.36.0","issue":{"uuid":"4528230982","node_id":"PR_kwDOSn3wsM7fnM-p","number":5,"state":"open","title":"Bump the minor-update group with 145 updates","user":"dependabot[bot]","labels":["dependencies"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-26T23:33:44.000Z","updated_at":"2026-05-26T23:33:53.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":145,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.9.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.15","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.1","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.1","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.58.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.2","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.1","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.16.4","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.153.0","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.16","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.5.1.27"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.3.35"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.3.29"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.3.0.29"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.18.0.66"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.2.18"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.8.1.7"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.3.33"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.3.29"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.42.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.63b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.41.0","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.47.0","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.13.0","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pystemmer","old_version":"3.0.0","new_version":"3.1.0","repository_url":"https://github.com/snowballstem/pystemmer"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.1","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.1","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.26.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.48.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.24.2","repository_url":"https://github.com/aio-libs/yarl"},{"name":"tpu-inference","old_version":"0.19.0","new_version":"0.20.0","repository_url":"https://github.com/vllm-project/tpu-inference"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"},{"name":"helion","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/pytorch/helion"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 145 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.9.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.3` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.15` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.15` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.1` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.1` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.58.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.16.4` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.153.0` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.16` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.5.1.27` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.35` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.3.29` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.3.0.29` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.18.0.66` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.2.18` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.8.1.7` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.3.33` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.3.29` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.42.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.63b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.41.0` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.47.0` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.13.0` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pystemmer](https://github.com/snowballstem/pystemmer) | `3.0.0` | `3.1.0` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.1` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.1` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.26.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.48.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.24.2` |\n| [tpu-inference](https://github.com/vllm-project/tpu-inference) | `0.19.0` | `0.20.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n| [helion](https://github.com/pytorch/helion) | `1.0.0` | `1.1.0` |\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\u003c/p\u003e\n\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.9.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.9.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eCohere2Moe\u003c/h3\u003e\n\u003cp\u003eCommand A+ is a Mixture-of-Experts (MoE) language model from Cohere that features a hybrid attention pattern combining sliding window and full attention layers. The model incorporates both shared and routed experts and supports a very large context window for processing extensive text sequences.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/cohere2_moe\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46115\"\u003e#46115\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eParakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e) by \u003ca href=\"https://github.com/lmaksym\"\u003e\u003ccode\u003e@​lmaksym\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eHRM-Text\u003c/h3\u003e\n\u003cp\u003eHRM-Text is an improved autoregressive language-modeling variant of the Hierarchical Reasoning Model (HRM) that uses a hierarchical recurrent forward pass with two transformer stacks - one for slow, abstract planning (H) and one for fast, detailed computation (L) - reused inside a nested recurrence. It features PrefixLM attention where instruction tokens attend bidirectionally while response tokens attend causally, per-head sigmoid output gates, and parameterless RMSNorm. The model is designed as a base language model without instruction tuning or chat templates.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/hrm_text\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2506.21734\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd hrm text (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46025\"\u003e#46025\u003c/a\u003e) by \u003ca href=\"https://github.com/abcd1927\"\u003e\u003ccode\u003e@​abcd1927\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/46025\"\u003e#46025\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eBreaking changes\u003c/h2\u003e\n\u003cp\u003eThe \u003ccode\u003etext_embeds\u003c/code\u003e input for SAM3, EdgeTAM, and SAM3-Lite-Text models now expects full text embeddings instead of just pooler outputs, aligning with other models in the library — users must update their inputs accordingly.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🚨Fix memory leaks caused by lru decorators in vision models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45922\"\u003e#45922\u003c/a\u003e) by \u003ca href=\"https://github.com/yonigozlan\"\u003e\u003ccode\u003e@​yonigozlan\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAudio\u003c/h2\u003e\n\u003cp\u003eAudio support was expanded with the addition of AudioFlamingoNext model checkpoints and improved compilability of audio/vision encoders via standalone pure functions. Additional improvements include better error messaging when loading audio from video files and new documentation for audio/video processors.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003euser friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e) by \u003ca href=\"https://github.com/eustlb\"\u003e\u003ccode\u003e@​eustlb\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[docs] adding audio/video processors (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e) by \u003ca href=\"https://github.com/stevhliu\"\u003e\u003ccode\u003e@​stevhliu\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45795\"\u003e#45795\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Audio Flamingo Next checkpoints (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e) by \u003ca href=\"https://github.com/lashahub\"\u003e\u003ccode\u003e@​lashahub\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44830\"\u003e#44830\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract dynamic vision/audio tensors into standalone pure functions (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e) by \u003ca href=\"https://github.com/IlyasMoutawwakil\"\u003e\u003ccode\u003e@​IlyasMoutawwakil\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45396\"\u003e#45396\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eFixed generation issues including \u003ccode\u003einputs_embeds\u003c/code\u003e and \u003ccode\u003eper_layer_inputs\u003c/code\u003e handling for Gemma4, an \u003ccode\u003eAttributeError\u003c/code\u003e in RAG's \u003ccode\u003egenerate()\u003c/code\u003e caused by missing config fields, and flaky VLM generation tests by blocking special image tokens during sampling.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError in RAG generate() for missing config fields (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e) by \u003ca href=\"https://github.com/Sriniketh24\"\u003e\u003ccode\u003e@​Sriniketh24\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46035\"\u003e#46035\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\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/transformers/commit/0a2757da521a7a49b8143d9e0c938f08747d682e\"\u003e\u003ccode\u003e0a2757d\u003c/code\u003e\u003c/a\u003e release v5.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/e370a7f3f49c3c759cf8c7c01a935ce0e00c3f44\"\u003e\u003ccode\u003ee370a7f\u003c/code\u003e\u003c/a\u003e fix cohere2 tp_plan for release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f59ffd1ef95634f9b0317ec5d8d43d71e3604a10\"\u003e\u003ccode\u003ef59ffd1\u003c/code\u003e\u003c/a\u003e Add new cohere2_moe model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46115\"\u003e#46115\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4f41f261efcfd71ce08db2890b7c632cc9ffc0bc\"\u003e\u003ccode\u003e4f41f26\u003c/code\u003e\u003c/a\u003e [loading] Free up tensors faster inside ConversionOps (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46110\"\u003e#46110\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/d5dd7eed2f7d5b2ccba569e150647ef275e56365\"\u003e\u003ccode\u003ed5dd7ee\u003c/code\u003e\u003c/a\u003e Fix post processing RF-DETR (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46041\"\u003e#46041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0b25f8c49c37530ce9f8742d7a8c19ed8d254d7d\"\u003e\u003ccode\u003e0b25f8c\u003c/code\u003e\u003c/a\u003e [serve] Support for reasoning  (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45690\"\u003e#45690\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/0df9b7fcaab447c75543598e6d959065c2296a24\"\u003e\u003ccode\u003e0df9b7f\u003c/code\u003e\u003c/a\u003e Fix Gemma4 generation from inputs_embeds and per_layer_inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46049\"\u003e#46049\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/38a8b55f22d593c103e8bcc616413e70a5ef03ca\"\u003e\u003ccode\u003e38a8b55\u003c/code\u003e\u003c/a\u003e Parakeet tdt (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44171\"\u003e#44171\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/3428030a179620b01cb598928b6cc7d5e5e60990\"\u003e\u003ccode\u003e3428030\u003c/code\u003e\u003c/a\u003e Remove mask visualization tool from \u003ccode\u003emasking_utils.py\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/46066\"\u003e#46066\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/dda06506142a0efe4081a0ab574fbd3c7c72dc37\"\u003e\u003ccode\u003edda0650\u003c/code\u003e\u003c/a\u003e user friendly error when loading audio from video (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45221\"\u003e#45221\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\u003c/h3\u003e\n\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/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.3\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (the default). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15589\"\u003e#15589\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.136.2\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e♻️ Validate Server Sent Event fields to avoid applications from sending broken data. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15588\"\u003e#15588\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📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15464\"\u003e#15464\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 and simplify docs about help and management. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15583\"\u003e#15583\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 docs references to central contributing docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15580\"\u003e#15580\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 security policy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15577\"\u003e#15577\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 sponsors: TalorData image. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15562\"\u003e#15562\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, simplify usage of admonitions, only default ones. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15553\"\u003e#15553\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 image URLs in \u003ccode\u003eindex.md\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15534\"\u003e#15534\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 Azkaban spelling typo in \u003ccode\u003evirtual-environments.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15463\"\u003e#15463\u003c/a\u003e by \u003ca href=\"https://github.com/isaacbernat\"\u003e\u003ccode\u003e@​isaacbernat\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Improve layout and styling. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15462\"\u003e#15462\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e💄 Refactor opinions section with interactive tabs and new logos. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15458\"\u003e#15458\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e📝 Add FastAPI Conf '26 announcement to docs. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15457\"\u003e#15457\u003c/a\u003e by \u003ca href=\"https://github.com/alejsdev\"\u003e\u003ccode\u003e@​alejsdev\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🌐 Improve translation consistency in \u003ccode\u003e‎docs/pt/docs/advanced/generate-clients.md‎\u003c/code\u003e. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15456\"\u003e#15456\u003c/a\u003e by \u003ca href=\"https://github.com/Will-thom\"\u003e\u003ccode\u003e@​Will-thom\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/15530\"\u003e#15530\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 uk (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15529\"\u003e#15529\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 pt (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15528\"\u003e#15528\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 de (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15527\"\u003e#15527\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/15526\"\u003e#15526\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/15525\"\u003e#15525\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/15524\"\u003e#15524\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 fr (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15522\"\u003e#15522\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 es (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15523\"\u003e#15523\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 (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15520\"\u003e#15520\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 ru (update-outdated). PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15521\"\u003e#15521\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 typos in Spanish LLM-prompt. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15472\"\u003e#15472\u003c/a\u003e by \u003ca href=\"https://github.com/crr004\"\u003e\u003ccode\u003e@​crr004\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 tests, don't double dispose the engine. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15587\"\u003e#15587\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⚡️ Speed up test suite via caching and fixture scopes to make it ~24% faster. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/13583\"\u003e#13583\u003c/a\u003e by \u003ca href=\"https://github.com/dikos1337\"\u003e\u003ccode\u003e@​dikos1337\u003c/code\u003e\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003e🔥 Remove config files now in central GitHub repo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15585\"\u003e#15585\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 urllib3 from 2.6.3 to 2.7.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15502\"\u003e#15502\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 idna from 3.11 to 3.15. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15565\"\u003e#15565\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 cloudflare/wrangler-action from 3.15.0 to 4.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15571\"\u003e#15571\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🔧 Migrate docs from MkDocs to Zensical. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15563\"\u003e#15563\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🔒️ Only allow team members to modify dependencies. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15548\"\u003e#15548\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\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/82064857539e6286522c347b4b11331b48dd2378\"\u003e\u003ccode\u003e8206485\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c910e0139f983d0e04e2d1d235cd71803afeae34\"\u003e\u003ccode\u003ec910e01\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/063b5bf582d31fb155cc6bc6f88cf512329d0fd5\"\u003e\u003ccode\u003e063b5bf\u003c/code\u003e\u003c/a\u003e ♻️ Do not accept underscore headers when using \u003ccode\u003econvert_underscores=True\u003c/code\u003e (th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/22b02e26f9e8c7e32bd8266e2b0ebe8bb3a0db2b\"\u003e\u003ccode\u003e22b02e2\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3b252a2a22ba27a8ab83d6bde7d9cddbc5bf738e\"\u003e\u003ccode\u003e3b252a2\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c7fb7851b3389f24c51701d705458989be53ccbb\"\u003e\u003ccode\u003ec7fb785\u003c/code\u003e\u003c/a\u003e ♻️ Validate Server Sent Event fields to avoid applications from sending broke...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/cb83b83dcf78eab4ea17d504db5abcda705fbdc4\"\u003e\u003ccode\u003ecb83b83\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/00f805cec94c0bf48c1f9a563535a3ab2e6f90ab\"\u003e\u003ccode\u003e00f805c\u003c/code\u003e\u003c/a\u003e ✅ Update tests, don't double dispose the engine (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15587\"\u003e#15587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/3675137523dc167981aa3a3c44599b4f3079ccd8\"\u003e\u003ccode\u003e3675137\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7b57e42986bb4d40c9eb6580537d13fb8e76097e\"\u003e\u003ccode\u003e7b57e42\u003c/code\u003e\u003c/a\u003e 📝 Document \u003ccode\u003e--entrypoint\u003c/code\u003e CLI option (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15464\"\u003e#15464\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.3\"\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.0 to 2.13.4\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.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\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.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\u003c/h2\u003e\n\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.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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.\u003c/p\u003e\n\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/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code...\n\n_Description has been truncated_","html_url":"https://github.com/kingcharlezz/deepseek-v4-flash-deterministic-vllm/pull/5","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/kingcharlezz%2Fdeepseek-v4-flash-deterministic-vllm/issues/5","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/5/packages"}},{"old_version":"1.33.0","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-05-19T16:50:59.000Z","version_change":"1.33.0 → 1.36.0","issue":{"uuid":"4479317329","node_id":"PR_kwDODnmQMs7dKhcF","number":1052,"state":"closed","title":"chore(deps-dev): bump msal from 1.33.0 to 1.36.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-05-20T22:46:42.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-19T16:50:59.000Z","updated_at":"2026-05-20T22:46:52.000Z","time_to_close":107743,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"msal","old_version":"1.33.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.33.0 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.36.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n","html_url":"https://github.com/microsoftgraph/msgraph-sdk-python-core/pull/1052","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoftgraph%2Fmsgraph-sdk-python-core/issues/1052","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/1052/packages"}},{"old_version":"1.34.0","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-05-15T08:01:08.000Z","version_change":"1.34.0 → 1.36.0","issue":{"uuid":"4452313204","node_id":"PR_kwDOI7xefs7b1Vf9","number":42717,"state":"open","title":"Bump the minor-update group across 1 directory with 143 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-05-15T08:01:08.000Z","updated_at":"2026-05-20T05:01:30.742Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":143,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.5.9","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.34.2","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.8.1","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"tiktoken","old_version":"0.12.0","new_version":"0.13.0","repository_url":"https://github.com/openai/tiktoken"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.41.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.28.0","new_version":"12.29.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.9","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.10","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.4.0","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.14.0","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.57.0","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.1","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.3.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3.1","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.63.0","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.53.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.9.0","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.75.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hf-xet","old_version":"1.4.3","new_version":"1.5.0","repository_url":"https://github.com/huggingface/xet-core"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.15.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.8","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.15","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.22.0.52"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.3.5","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.5.2","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.28.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.4","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.5.0","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.1","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"triton","old_version":"3.6.0","new_version":"3.7.0","repository_url":"https://github.com/triton-lang/triton"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.7.0","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.47.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.29.1","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 143 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.5.9` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.34.2` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.8.1` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.4` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [tiktoken](https://github.com/openai/tiktoken) | `0.12.0` | `0.13.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.41.0` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.28.0` | `12.29.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.9` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.10` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.10` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.4.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.14.0` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.57.0` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.1` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.3.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3.1` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.63.0` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.53.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.6.0` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.9.0` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.75.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hf-xet](https://github.com/huggingface/xet-core) | `1.4.3` | `1.5.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.15.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.8` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.15` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.22.0.52` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.3.5` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.5.2` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.28.0` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.4` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.5.0` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.1` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [triton](https://github.com/triton-lang/triton) | `3.6.0` | `3.7.0` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.7.0` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.47.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.29.1` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.5.9\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mrabarnett/mrab-regex/blob/hg/changelog.txt\"\u003eregex's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eVersion: 2026.5.9\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReverse matching with full unicode casefolding could lead to out-of-range string indexes.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.4\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eA fix for older Python versions before free-threading was  supported.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.4.3\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eMore fixes for free-threading.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.32\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed segfault.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.31\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug again.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.30\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed bug.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eFixed version.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.3.27\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eVarious fixes, including ones to improve free-threading support.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.28\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eReplaced atomic operations with mutex on pattern object for free-threaded Python.\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eVersion: 2026.2.26\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003ePR [#598](https://github.com/mrabarnett/mrab-regex/issues/598): Fix race condition in storage caching with atomic operations.\n\u003cp\u003eReplaced use of PyUnicode_GET_LENGTH with PyUnicode_GetLength.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.2.19\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003eAdded \\z as alias of \\Z, like in re module.\n\u003cp\u003eAdded prefixmatch as alias of match, like in re module.\n\u003c/code\u003e\u003c/pre\u003e\u003c/p\u003e\n\u003cp\u003eVersion: 2026.1.15\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/mrabarnett/mrab-regex/commit/e57d185bb711729091907b23edac5dcba0426243\"\u003e\u003ccode\u003ee57d185\u003c/code\u003e\u003c/a\u003e Reverse matching with full unicode casefolding lead to out-of-range string in...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.5.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.34.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.34.2\u003c/h2\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues with \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling \u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2342-2026-05-14\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.1\u003c/h2\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\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/k223kim\"\u003e\u003ccode\u003e@​k223kim\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7433\"\u003epsf/requests#7433\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2341-2026-05-13\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.34.0\u003c/h2\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. \u003cstrong\u003eWe believe types are comprehensive but if you find issues, please\nreport them to the \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003epinned tracking issue\u003c/a\u003e.\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.34.2 (2026-05-14)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMoved \u003ccode\u003eheaders\u003c/code\u003e input type back to \u003ccode\u003eMapping\u003c/code\u003e to avoid invariance issues\nwith \u003ccode\u003eMutableMapping\u003c/code\u003e and inferred dict types. Users calling\n\u003ccode\u003eRequest.headers.update()\u003c/code\u003e may need to narrow typing in their code. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.1 (2026-05-13)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eWidened \u003ccode\u003ejson\u003c/code\u003e input type from \u003ccode\u003edict\u003c/code\u003e and \u003ccode\u003elist\u003c/code\u003e to \u003ccode\u003eMapping\u003c/code\u003e\nand \u003ccode\u003eSequence\u003c/code\u003e. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eChanged \u003ccode\u003eheaders\u003c/code\u003e input type to MutableMapping and removed \u003ccode\u003eNone\u003c/code\u003e from\n\u003ccode\u003eRequest.headers\u003c/code\u003e typing to improve handling for users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.reason\u003c/code\u003e moved from \u003ccode\u003estr | None\u003c/code\u003e to \u003ccode\u003estr\u003c/code\u003e to improve handling\nfor users. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed a bug where some bodies with custom \u003ccode\u003e__getattr__\u003c/code\u003e implementations\nweren't being properly detected as Iterables. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7433\"\u003e#7433\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.34.0 (2026-05-11)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eRequests 2.34.0 introduces inline types, replacing those provided by\ntypeshed. Public API types should be fully compatible with mypy, pyright,\nand ty. We believe types are comprehensive but if you find issues, please\nreport them to the pinned tracking issue.\u003c/p\u003e\n\u003cp\u003eSpecial thanks to \u003ca href=\"https://github.com/bastimeyer\"\u003e\u003ccode\u003e@​bastimeyer\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/edgarrmondragon\"\u003e\u003ccode\u003e@​edgarrmondragon\u003c/code\u003e\u003c/a\u003e, and \u003ca href=\"https://github.com/srittau\"\u003e\u003ccode\u003e@​srittau\u003c/code\u003e\u003c/a\u003e for\nhelping review and test the types ahead of the release. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7272\"\u003e#7272\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDigest Auth hashing algorithms have added \u003ccode\u003eusedforsecurity=False\u003c/code\u003e to clarify\nsecurity considerations. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7310\"\u003e#7310\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.15 based on beta1. Downstream projects\nshould be able to start testing prior to its release in October. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7422\"\u003e#7422\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests added support for Python 3.14t. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7419\"\u003e#7419\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eResponse.history\u003c/code\u003e no longer contains a reference to itself, preventing\naccidental looping when traversing the history list. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7328\"\u003e#7328\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer performs greedy matching on no_proxy domains. The\nproxy_bypass implementation has been updated with CPython's fix from\nbpo-39057. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRequests no longer incorrectly strips duplicate leading slashes in\nURI paths. This should address user issues with specific presigned\nURLs. Note the full fix requires urllib3 2.7.0+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7315\"\u003e#7315\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/psf/requests/commit/6e83187b8feb273ed4c6cdab5efd8d54901dfab3\"\u003e\u003ccode\u003e6e83187\u003c/code\u003e\u003c/a\u003e v2.34.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/84d10f0be83e8f6aeca8a05230c52216431c4d0b\"\u003e\u003ccode\u003e84d10f0\u003c/code\u003e\u003c/a\u003e Move Request.headers back to Mapping (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7441\"\u003e#7441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/b7b549b54571d03950b16afd2d01bc6ff0348224\"\u003e\u003ccode\u003eb7b549b\u003c/code\u003e\u003c/a\u003e v2.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e511bc72777a94c45d004e010c597925092e1efe\"\u003e\u003ccode\u003ee511bc7\u003c/code\u003e\u003c/a\u003e Fix mutability issues with headers input types (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7431\"\u003e#7431\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/5691f596134c2feb121e595c77a0178921fcce61\"\u003e\u003ccode\u003e5691f59\u003c/code\u003e\u003c/a\u003e Update JsonType containers to read-based collections (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7436\"\u003e#7436\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/2144213c307691710c9d665700860fc4993c3035\"\u003e\u003ccode\u003e2144213\u003c/code\u003e\u003c/a\u003e Constrain Response.reason to str (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7437\"\u003e#7437\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/6404f345e562d962abe6700a1c357ec1e7e18232\"\u003e\u003ccode\u003e6404f34\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eprepare_body\u003c/code\u003e stream detection for \u003ccode\u003e__getattr__\u003c/code\u003e-based file wrappers (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7\"\u003e#7\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0b401c76b6e80a4eecf3c690085b2553f6e261ca\"\u003e\u003ccode\u003e0b401c7\u003c/code\u003e\u003c/a\u003e v2.34.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/86b378d3f60f828daa13ca50aa82e287ff7b66b4\"\u003e\u003ccode\u003e86b378d\u003c/code\u003e\u003c/a\u003e Align Session.get parameters with requests.get (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7429\"\u003e#7429\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/a4f9a5999bdb9bf2d6e7c8aa973b28cacb17134f\"\u003e\u003ccode\u003ea4f9a59\u003c/code\u003e\u003c/a\u003e Port bpo-39057 to Requests (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7427\"\u003e#7427\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.34.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.8.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003ePatch release v5.8.1\u003c/h1\u003e\n\u003cp\u003eThis release is mainly to fix the Deepseek V4 integration!!!\u003c/p\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003e[fix] Add fatal_error to ContinuousBatchingManager so the serving... by \u003ca href=\"https://github.com/qgallouedec\"\u003e\u003ccode\u003e@​qgallouedec\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/remi-or\"\u003e\u003ccode\u003e@​remi-or\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix WeightConverter regex incorrectly matching shared_experts as experts by \u003ca href=\"https://github.com/silencelamb\"\u003e\u003ccode\u003e@​silencelamb\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/claude\"\u003e\u003ccode\u003e@​claude\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix deepseek v4 by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDeepseek v4 csa mask collapse by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e, \u003ca href=\"https://github.com/Sawyer117\"\u003e\u003ccode\u003e@​Sawyer117\u003c/code\u003e\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eRelease 5.8.0\u003c/h2\u003e\n\u003ch1\u003eRelease v5.8.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eDeepSeek-V4\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDeepSeek-V4 is the next-generation MoE (Mixture of Experts) language model from DeepSeek that introduces several architectural innovations over DeepSeek-V3. The architecture replaces Multi-head Latent Attention (MLA) with a hybrid local + long-range attention design, swaps residual connections for Manifold-Constrained Hyper-Connections (mHC), and bootstraps the first few MoE layers with a static token-id → expert-id hash table. This implementation covers DeepSeek-V4-Flash, DeepSeek-V4-Pro, and their -Base pretrained variants, which share the same architecture but differ in width, depth, expert count and weights.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deepseek_v4\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/deepseek-ai/DeepSeek-V4-Flash/blob/main/DeepSeek_V4.pdf\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd DeepSeek V4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45643\"\u003e#45643\u003c/a\u003e) by \u003ca href=\"https://github.com/ArthurZucker\"\u003e\u003ccode\u003e@​ArthurZucker\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45643\"\u003e#45643\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGemma 4 Assistant\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGemma 4 Assistant is a small, text-only model that enables speculative decoding for Gemma 4 models using the Multi-Token Prediction (MTP) method and associated candidate generator. The model shares the same Gemma4TextModel backbone as other Gemma 4 models but uses KV sharing throughout the entire model, allowing it to reuse the KV cache populated by the target model and skip the pre-fill phase entirely. This architecture includes cross-attention to make the most of the target model's context, allowing the assistant to accurately predict more drafted tokens per drafting round.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/gemma4_assistant\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFirst model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45788\"\u003e#45788\u003c/a\u003e) by \u003ca href=\"https://github.com/SindhuRaghuram97\"\u003e\u003ccode\u003e@​SindhuRaghuram97\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45788\"\u003e#45788\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGraniteSpeechPlus\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eGranite Speech Plus is a variant of Granite Speech that enhances the projector by consuming the concatenation of the encoder's final hidden states with an arbitrary subset of its intermediate hidden states along the feature dimension. It is a multimodal speech-to-text model that can transcribe audio, provide speaker annotation and word level timestamps by responding to text prompts. The model inherits the same architecture components as Granite Speech including the speech encoder, query transformer projector, language model, and optional LoRA adapter.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite_speech_plus\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport for a new Granite-Speech-Plus model (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45695\"\u003e#45695\u003c/a\u003e) by \u003ca href=\"https://github.com/zvik\"\u003e\u003ccode\u003e@​zvik\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45695\"\u003e#45695\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eGranite4Vision\u003c/h3\u003e\n\u003cp\u003eGranite Vision 4.1 is a vision-language model from IBM Research designed for enterprise-grade document data extraction. It specializes in chart extraction (Chart2CSV, Chart2Summary, Chart2Code), table extraction (JSON, HTML, OTSL), and semantic key-value pair extraction. The model builds on LLaVA-NeXT with architectural innovations including SigLIP2 Vision Encoder, Window Q-Former Projectors, and DeepStack Feature Injection with 8 vision-to-LLM injection points.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/granite4_vision\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e) by \u003ca href=\"https://github.com/artem-spector\"\u003e\u003ccode\u003e@​artem-spector\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45597\"\u003e#45597\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/transformers/commit/cc832f9055ba11c8c55f918ab4bda9472b910d48\"\u003e\u003ccode\u003ecc832f9\u003c/code\u003e\u003c/a\u003e up\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f966d7b36278c7ca15967af062c4556f8bf4eea4\"\u003e\u003ccode\u003ef966d7b\u003c/code\u003e\u003c/a\u003e Deepseek v4 csa mask collapse (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45928\"\u003e#45928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/283f3f08614c0ee09e0bdc60d57dbc4d8d37af39\"\u003e\u003ccode\u003e283f3f0\u003c/code\u003e\u003c/a\u003e Fix deepseek v4 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45892\"\u003e#45892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4e0be9c4c5f2edb62f2e28c28c4149d3b84a3ae0\"\u003e\u003ccode\u003e4e0be9c\u003c/code\u003e\u003c/a\u003e Fix WeightConverter regex incorrectly matching shared_experts as experts in D...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/ec852625706cbe9a1264949659dad82b43fafa57\"\u003e\u003ccode\u003eec85262\u003c/code\u003e\u003c/a\u003e [fix] Add \u003ccode\u003efatal_error\u003c/code\u003e to \u003ccode\u003eContinuousBatchingManager\u003c/code\u003e so the serving layer c...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/049d2bf1220747b6d39e2a978b9f5fe0defa1dca\"\u003e\u003ccode\u003e049d2bf\u003c/code\u003e\u003c/a\u003e v5.8.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2871cafffb3b221b5f1df7e59033a15a7830309f\"\u003e\u003ccode\u003e2871caf\u003c/code\u003e\u003c/a\u003e Add Granite 4.1 Vision (granite4_vision) (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45597\"\u003e#45597\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aaec1092d413d0ea7249101ea43f74b5d6d60936\"\u003e\u003ccode\u003eaaec109\u003c/code\u003e\u003c/a\u003e fix: correct spelling in continuous_api docstring (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45749\"\u003e#45749\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/7050d0e0bf5a97c7c0149c319681601373621eae\"\u003e\u003ccode\u003e7050d0e\u003c/code\u003e\u003c/a\u003e Fix link to modular transformers documentation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45746\"\u003e#45746\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/df2f2b539902c78db6a0f71fb2c175880e390576\"\u003e\u003ccode\u003edf2f2b5\u003c/code\u003e\u003c/a\u003e Gemma4: fix failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45568\"\u003e#45568\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.8.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\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 inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\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 pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\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 pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\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 cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\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 mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\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 python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\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 starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\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 pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\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 pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\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 zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\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 strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\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 python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\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 authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\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 aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\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 pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\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 pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\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 pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\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 actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\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 actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\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 sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\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.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\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 strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\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 pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.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.0 to 2.13.4\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.4 2026-05-06\u003c/h2\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\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.13.3...v2.13.4\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.3...v2.13.4\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.0 2026-04-13\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/pydantic/pydantic/blob/v2.13.4/HISTORY.md\"\u003epydantic's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.13.4 (2026-05-06)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.4\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003ePackaging\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eBump libc from 0.2.155 to 0.2.185 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/13109\"\u003e#13109\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS by \u003ca href=\"https://github.com/washingtoneg\"\u003e\u003ccode\u003e@​washingtoneg\u003c/code\u003e\u003c/a\u003e and \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/13147\"\u003e#13147\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003ePreserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata 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/13129\"\u003e#13129\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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.\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/cf67d4b3193c3fe43ede18612ed62785eee11382\"\u003e\u003ccode\u003ecf67d4b\u003c/code\u003e\u003c/a\u003e Fix linting\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/f0d8a214a5803036db46a56b1f62f1e56b81d662\"\u003e\u003ccode\u003ef0d8a21\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/5e3fe1d41a00f441204241c66078003ae0391f9a\"\u003e\u003ccode\u003e5e3fe1d\u003c/code\u003e\u003c/a\u003e Check for pydantic tag pattern in CI\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/7f9edcc2a191d2eaa9751220eb910914e716a686\"\u003e\u003ccode\u003e7f9edcc\u003c/code\u003e\u003c/a\u003e Document tagging conventions\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/b46a0c9b8a4dd967fda8ec1a92f6437076bf262c\"\u003e\u003ccode\u003eb46a0c9\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003epydantic-core\u003c/code\u003e linker flags on macOS\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/50629c851e61d887d5420452c311ec6203f1f400\"\u003e\u003ccode\u003e50629c8\u003c/code\u003e\u003c/a\u003e Update to PyPy 7.3.22\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/8522ebb71e5e9a6f7188af5f009f01785b8cf725\"\u003e\u003ccode\u003e8522ebb\u003c/code\u003e\u003c/a\u003e Preserve \u003ccode\u003eRootModel\u003c/code\u003e core metadata\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/a37f3aff090ca342dc5f48304889963530b993f8\"\u003e\u003ccode\u003ea37f3af\u003c/code\u003e\u003c/a\u003e Adapt \u003ccode\u003eMISSING\u003c/code\u003e sentinel test to work with unreleased \u003ccode\u003etyping_extensions\u003c/code\u003e ver...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/909259a9df660518033aa686b689f045a6eaf9d2\"\u003e\u003ccode\u003e909259a\u003c/code\u003e\u003c/a\u003e Remove Logfire example in documentation\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/2c4174c366606fc2dc46cb806833a080aefa77df\"\u003e\u003ccode\u003e2c4174c\u003c/code\u003e\u003c/a\u003e Bump libc from 0.2.155 to 0.2.185\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003c...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/42717","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/42717","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/42717/packages"}},{"old_version":"1.34.0","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-05-04T05:33:52.000Z","version_change":"1.34.0 → 1.36.0","issue":{"uuid":"4374224451","node_id":"PR_kwDOI7xefs7X4umm","number":41606,"state":"closed","title":"Bump the minor-update group across 1 directory with 140 updates","user":"dependabot[bot]","labels":["rocm","ci/build","nvidia","dependencies"],"assignees":[],"locked":false,"comments_count":4,"pull_request":true,"closed_at":"2026-05-05T23:42:41.000Z","author_association":null,"state_reason":null,"created_at":"2026-05-04T05:33:52.000Z","updated_at":"2026-05-05T23:42:43.000Z","time_to_close":151729,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Bump","group_name":"minor-update","update_count":140,"packages":[{"name":"regex","old_version":"2026.2.28","new_version":"2026.4.4","repository_url":"https://github.com/mrabarnett/mrab-regex"},{"name":"requests","old_version":"2.32.3","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"transformers","old_version":"5.5.3","new_version":"5.7.0","repository_url":"https://github.com/huggingface/transformers"},{"name":"tokenizers","old_version":"0.22.2","new_version":"0.23.1","repository_url":"https://github.com/huggingface/tokenizers"},{"name":"fastapi","old_version":"0.128.0","new_version":"0.136.1","repository_url":"https://github.com/fastapi/fastapi"},{"name":"pydantic","old_version":"2.12.0","new_version":"2.13.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"prometheus-client","old_version":"0.22.0","new_version":"0.25.0","repository_url":"https://github.com/prometheus/client_python"},{"name":"lark","old_version":"1.2.2","new_version":"1.3.1","repository_url":"https://github.com/lark-parser/lark"},{"name":"filelock","old_version":"3.16.1","new_version":"3.29.0","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"opentelemetry-sdk","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-api","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"fastsafetensors","old_version":"0.2.2","new_version":"0.3","repository_url":"https://github.com/foundation-model-stack/fastsafetensors"},{"name":"absl-py","old_version":"2.1.0","new_version":"2.4.0","repository_url":"https://github.com/abseil/abseil-py"},{"name":"alembic","old_version":"1.16.4","new_version":"1.18.4","repository_url":"https://github.com/sqlalchemy/alembic"},{"name":"anyio","old_version":"4.6.2.post1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"argcomplete","old_version":"3.5.1","new_version":"3.6.3","repository_url":"https://github.com/kislyuk/argcomplete"},{"name":"arrow","old_version":"1.3.0","new_version":"1.4.0","repository_url":"https://github.com/arrow-py/arrow"},{"name":"audioread","old_version":"3.0.1","new_version":"3.1.0","repository_url":"https://github.com/beetbox/audioread"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.40.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"blobfile","old_version":"3.0.0","new_version":"3.2.0","repository_url":"https://github.com/blobfile/blobfile"},{"name":"bm25s","old_version":"0.2.13","new_version":"0.3.8","repository_url":"https://github.com/xhluca/bm25s"},{"name":"boto3","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/boto3"},{"name":"botocore","old_version":"1.35.57","new_version":"1.43.3","repository_url":"https://github.com/boto/botocore"},{"name":"click","old_version":"8.1.7","new_version":"8.3.3","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.10.6","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cramjam","old_version":"2.9.0","new_version":"2.11.0","repository_url":"https://github.com/milesgranger/pyrus-cramjam"},{"name":"cuda-bindings","old_version":"13.0.3","new_version":"13.2.0","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-pathfinder","old_version":"1.3.3","new_version":"1.5.4","repository_url":"https://github.com/NVIDIA/cuda-python"},{"name":"cuda-toolkit","old_version":"13.0.2","new_version":"13.2.1"},{"name":"datamodel-code-generator","old_version":"0.26.3","new_version":"0.56.1","repository_url":"https://github.com/koxudaxi/datamodel-code-generator"},{"name":"dataproperty","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/thombashi/DataProperty"},{"name":"decorator","old_version":"5.1.1","new_version":"5.2.1","repository_url":"https://github.com/micheles/decorator"},{"name":"dill","old_version":"0.3.8","new_version":"0.4.1","repository_url":"https://github.com/uqfoundation/dill"},{"name":"distlib","old_version":"0.3.9","new_version":"0.4.0","repository_url":"https://github.com/pypa/distlib"},{"name":"dnspython","old_version":"2.7.0","new_version":"2.8.0","repository_url":"https://github.com/rthalley/dnspython"},{"name":"einx","old_version":"0.3.0","new_version":"0.4.3","repository_url":"https://github.com/fferflo/einx"},{"name":"email-validator","old_version":"2.2.0","new_version":"2.3.0","repository_url":"https://github.com/JoshData/python-email-validator"},{"name":"fonttools","old_version":"4.55.0","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"frozenlist","old_version":"1.5.0","new_version":"1.8.0","repository_url":"https://github.com/aio-libs/frozenlist"},{"name":"google-api-core","old_version":"2.24.2","new_version":"2.30.3","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-auth","old_version":"2.40.2","new_version":"2.50.0","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"google-cloud-core","old_version":"2.4.3","new_version":"2.5.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"google-cloud-storage","old_version":"3.4.0","new_version":"3.10.1","repository_url":"https://github.com/googleapis/python-storage"},{"name":"google-crc32c","old_version":"1.7.1","new_version":"1.8.0","repository_url":"https://github.com/googleapis/python-crc32c"},{"name":"google-resumable-media","old_version":"2.7.2","new_version":"2.8.2","repository_url":"https://github.com/googleapis/google-resumable-media-python"},{"name":"googleapis-common-protos","old_version":"1.70.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"greenlet","old_version":"3.2.3","new_version":"3.5.0","repository_url":"https://github.com/python-greenlet/greenlet"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"grpcio-reflection","old_version":"1.78.0","new_version":"1.80.0"},{"name":"h11","old_version":"0.14.0","new_version":"0.16.0","repository_url":"https://github.com/python-hyper/h11"},{"name":"harfile","old_version":"0.3.0","new_version":"0.4.0","repository_url":"https://github.com/schemathesis/harfile"},{"name":"hiredis","old_version":"3.0.0","new_version":"3.3.1","repository_url":"https://github.com/redis/hiredis-py"},{"name":"httpx","old_version":"0.27.2","new_version":"0.28.1","repository_url":"https://github.com/encode/httpx"},{"name":"huggingface-hub","old_version":"1.10.2","new_version":"1.13.0","repository_url":"https://github.com/huggingface/huggingface_hub"},{"name":"humanize","old_version":"4.11.0","new_version":"4.15.0","repository_url":"https://github.com/python-humanize/humanize"},{"name":"hypothesis","old_version":"6.131.0","new_version":"6.152.4","repository_url":"https://github.com/HypothesisWorks/hypothesis"},{"name":"hypothesis-graphql","old_version":"0.11.1","new_version":"0.12.0","repository_url":"https://github.com/Stranger6667/hypothesis-graphql"},{"name":"idna","old_version":"3.10","new_version":"3.13","repository_url":"https://github.com/kjd/idna"},{"name":"iniconfig","old_version":"2.0.0","new_version":"2.3.0","repository_url":"https://github.com/pytest-dev/iniconfig"},{"name":"jmespath","old_version":"1.0.1","new_version":"1.1.0","repository_url":"https://github.com/jmespath/jmespath.py"},{"name":"joblib","old_version":"1.4.2","new_version":"1.5.3","repository_url":"https://github.com/joblib/joblib"},{"name":"jsonpointer","old_version":"3.0.0","new_version":"3.1.1","repository_url":"https://github.com/stefankoegl/python-json-pointer"},{"name":"jsonschema","old_version":"4.23.0","new_version":"4.26.0","repository_url":"https://github.com/python-jsonschema/jsonschema"},{"name":"kiwisolver","old_version":"1.4.7","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"lazy-loader","old_version":"0.4","new_version":"0.5","repository_url":"https://github.com/scientific-python/lazy-loader"},{"name":"librosa","old_version":"0.10.2.post1","new_version":"0.11.0","repository_url":"https://github.com/librosa/librosa"},{"name":"matplotlib","old_version":"3.9.2","new_version":"3.10.9","repository_url":"https://github.com/matplotlib/matplotlib"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"mteb","old_version":"2.8.3","new_version":"2.12.30","repository_url":"https://github.com/embeddings-benchmark/mteb"},{"name":"multidict","old_version":"6.1.0","new_version":"6.7.1","repository_url":"https://github.com/aio-libs/multidict"},{"name":"mypy-extensions","old_version":"1.0.0","new_version":"1.1.0","repository_url":"https://github.com/python/mypy_extensions"},{"name":"networkx","old_version":"3.2.1","new_version":"3.4.2","repository_url":"https://github.com/networkx/networkx"},{"name":"nvidia-cublas","old_version":"13.1.0.3","new_version":"13.4.1.1"},{"name":"nvidia-cuda-cupti","old_version":"13.0.85","new_version":"13.2.75"},{"name":"nvidia-cuda-nvrtc","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-cuda-runtime","old_version":"13.0.96","new_version":"13.2.75"},{"name":"nvidia-cudnn-cu13","old_version":"9.19.0.56","new_version":"9.21.1.3"},{"name":"nvidia-cufft","old_version":"12.0.0.61","new_version":"12.2.0.46"},{"name":"nvidia-cufile","old_version":"1.15.1.6","new_version":"1.17.1.22"},{"name":"nvidia-cusolver","old_version":"12.0.4.66","new_version":"12.2.0.1"},{"name":"nvidia-cusparse","old_version":"12.6.3.3","new_version":"12.7.10.1"},{"name":"nvidia-cusparselt-cu13","old_version":"0.8.0","new_version":"0.9.1"},{"name":"nvidia-nccl-cu13","old_version":"2.28.9","new_version":"2.30.4"},{"name":"nvidia-nvjitlink","old_version":"13.0.88","new_version":"13.2.78"},{"name":"nvidia-nvshmem-cu13","old_version":"3.4.5","new_version":"3.6.5"},{"name":"nvidia-nvtx","old_version":"13.0.85","new_version":"13.2.75"},{"name":"opentelemetry-exporter-prometheus","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-proto","old_version":"1.35.0","new_version":"1.41.1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.56b0","new_version":"0.62b1","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"pathvalidate","old_version":"3.2.1","new_version":"3.3.1","repository_url":"https://github.com/thombashi/pathvalidate"},{"name":"peft","old_version":"0.18.1","new_version":"0.19.1","repository_url":"https://github.com/huggingface/peft"},{"name":"perceptron","old_version":"0.1.4","new_version":"0.2.1","repository_url":"https://github.com/perceptron-ai-inc/perceptron"},{"name":"platformdirs","old_version":"4.3.6","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pluggy","old_version":"1.5.0","new_version":"1.6.0","repository_url":"https://github.com/pytest-dev/pluggy"},{"name":"polars","old_version":"1.29.0","new_version":"1.40.1","repository_url":"https://github.com/pola-rs/polars"},{"name":"pooch","old_version":"1.8.2","new_version":"1.9.0","repository_url":"https://github.com/fatiando/pooch"},{"name":"propcache","old_version":"0.2.0","new_version":"0.4.1","repository_url":"https://github.com/aio-libs/propcache"},{"name":"proto-plus","old_version":"1.26.1","new_version":"1.27.2","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"pycryptodomex","old_version":"3.22.0","new_version":"3.23.0","repository_url":"https://github.com/Legrandin/pycryptodome"},{"name":"pydantic-core","old_version":"2.41.1","new_version":"2.46.3","repository_url":"https://github.com/pydantic/pydantic"},{"name":"pydantic-extra-types","old_version":"2.10.5","new_version":"2.11.1","repository_url":"https://github.com/pydantic/pydantic-extra-types"},{"name":"pygments","old_version":"2.18.0","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"pyparsing","old_version":"3.2.0","new_version":"3.3.2","repository_url":"https://github.com/pyparsing/pyparsing"},{"name":"pytest-mock","old_version":"3.14.0","new_version":"3.15.1","repository_url":"https://github.com/pytest-dev/pytest-mock"},{"name":"pytest-subtests","old_version":"0.14.1","new_version":"0.15.0","repository_url":"https://github.com/pytest-dev/pytest-subtests"},{"name":"pytest-timeout","old_version":"2.3.1","new_version":"2.4.0","repository_url":"https://github.com/pytest-dev/pytest-timeout"},{"name":"python-rapidjson","old_version":"1.20","new_version":"1.23","repository_url":"https://github.com/python-rapidjson/python-rapidjson"},{"name":"rapidfuzz","old_version":"3.12.1","new_version":"3.14.5","repository_url":"https://github.com/rapidfuzz/RapidFuzz"},{"name":"referencing","old_version":"0.35.1","new_version":"0.37.0","repository_url":"https://github.com/python-jsonschema/referencing"},{"name":"responses","old_version":"0.25.3","new_version":"0.26.0","repository_url":"https://github.com/getsentry/responses"},{"name":"rpds-py","old_version":"0.20.1","new_version":"0.30.0","repository_url":"https://github.com/crate-py/rpds"},{"name":"s3transfer","old_version":"0.10.3","new_version":"0.17.0","repository_url":"https://github.com/boto/s3transfer"},{"name":"sacrebleu","old_version":"2.4.3","new_version":"2.6.0","repository_url":"https://github.com/mjpost/sacrebleu"},{"name":"safetensors","old_version":"0.4.5","new_version":"0.7.0","repository_url":"https://github.com/huggingface/safetensors"},{"name":"scikit-learn","old_version":"1.5.2","new_version":"1.7.2","repository_url":"https://github.com/scikit-learn/scikit-learn"},{"name":"scipy","old_version":"1.13.1","new_version":"1.15.3","repository_url":"https://github.com/scipy/scipy"},{"name":"sentence-transformers","old_version":"5.2.0","new_version":"5.4.1","repository_url":"https://github.com/huggingface/sentence-transformers"},{"name":"six","old_version":"1.16.0","new_version":"1.17.0","repository_url":"https://github.com/benjaminp/six"},{"name":"smart-open","old_version":"7.1.0","new_version":"7.6.0","repository_url":"https://github.com/piskvorky/smart_open"},{"name":"soundfile","old_version":"0.12.1","new_version":"0.13.1","repository_url":"https://github.com/bastibe/python-soundfile"},{"name":"structlog","old_version":"25.4.0","new_version":"25.5.0","repository_url":"https://github.com/hynek/structlog"},{"name":"sympy","old_version":"1.13.3","new_version":"1.14.0","repository_url":"https://github.com/sympy/sympy"},{"name":"tabulate","old_version":"0.9.0","new_version":"0.10.0","repository_url":"https://github.com/astanin/python-tabulate"},{"name":"tblib","old_version":"3.1.0","new_version":"3.2.2","repository_url":"https://github.com/ionelmc/python-tblib"},{"name":"tensorizer","old_version":"2.10.1","new_version":"2.12.1","repository_url":"https://github.com/coreweave/tensorizer"},{"name":"termcolor","old_version":"3.1.0","new_version":"3.3.0","repository_url":"https://github.com/termcolor/termcolor"},{"name":"threadpoolctl","old_version":"3.5.0","new_version":"3.6.0","repository_url":"https://github.com/joblib/threadpoolctl"},{"name":"tomli","old_version":"2.2.1","new_version":"2.4.1","repository_url":"https://github.com/hukkin/tomli"},{"name":"tritonclient","old_version":"2.64.0","new_version":"2.68.0","repository_url":"https://github.com/triton-inference-server/client"},{"name":"typer","old_version":"0.15.2","new_version":"0.25.1","repository_url":"https://github.com/fastapi/typer"},{"name":"urllib3","old_version":"2.2.3","new_version":"2.6.3","repository_url":"https://github.com/urllib3/urllib3"},{"name":"uvicorn","old_version":"0.35.0","new_version":"0.46.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"vector-quantize-pytorch","old_version":"1.21.2","new_version":"1.28.2","repository_url":"https://github.com/lucidrains/vector-quantizer-pytorch"},{"name":"wcwidth","old_version":"0.2.13","new_version":"0.7.0","repository_url":"https://github.com/jquast/wcwidth"},{"name":"xxhash","old_version":"3.5.0","new_version":"3.7.0","repository_url":"https://github.com/ifduyue/python-xxhash"},{"name":"yarl","old_version":"1.17.1","new_version":"1.23.0","repository_url":"https://github.com/aio-libs/yarl"},{"name":"zstandard","old_version":"0.23.0","new_version":"0.25.0","repository_url":"https://github.com/indygreg/python-zstandard"},{"name":"conch-triton-kernels","old_version":"1.2.1","new_version":"1.3","repository_url":"https://github.com/stackav-oss/conch"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-update group with 140 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [regex](https://github.com/mrabarnett/mrab-regex) | `2026.2.28` | `2026.4.4` |\n| [requests](https://github.com/psf/requests) | `2.32.3` | `2.33.1` |\n| [transformers](https://github.com/huggingface/transformers) | `5.5.3` | `5.7.0` |\n| [tokenizers](https://github.com/huggingface/tokenizers) | `0.22.2` | `0.23.1` |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.128.0` | `0.136.1` |\n| [pydantic](https://github.com/pydantic/pydantic) | `2.12.0` | `2.13.3` |\n| [prometheus-client](https://github.com/prometheus/client_python) | `0.22.0` | `0.25.0` |\n| [lark](https://github.com/lark-parser/lark) | `1.2.2` | `1.3.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.16.1` | `3.29.0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [fastsafetensors](https://github.com/foundation-model-stack/fastsafetensors) | `0.2.2` | `0.3` |\n| [absl-py](https://github.com/abseil/abseil-py) | `2.1.0` | `2.4.0` |\n| [alembic](https://github.com/sqlalchemy/alembic) | `1.16.4` | `1.18.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.6.2.post1` | `4.13.0` |\n| [argcomplete](https://github.com/kislyuk/argcomplete) | `3.5.1` | `3.6.3` |\n| [arrow](https://github.com/arrow-py/arrow) | `1.3.0` | `1.4.0` |\n| [audioread](https://github.com/beetbox/audioread) | `3.0.1` | `3.1.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.40.0` |\n| [blobfile](https://github.com/blobfile/blobfile) | `3.0.0` | `3.2.0` |\n| [bm25s](https://github.com/xhluca/bm25s) | `0.2.13` | `0.3.8` |\n| [boto3](https://github.com/boto/boto3) | `1.35.57` | `1.43.3` |\n| [botocore](https://github.com/boto/botocore) | `1.35.57` | `1.43.3` |\n| [click](https://github.com/pallets/click) | `8.1.7` | `8.3.3` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.10.6` | `7.13.5` |\n| [cramjam](https://github.com/milesgranger/pyrus-cramjam) | `2.9.0` | `2.11.0` |\n| [cuda-bindings](https://github.com/NVIDIA/cuda-python) | `13.0.3` | `13.2.0` |\n| [cuda-pathfinder](https://github.com/NVIDIA/cuda-python) | `1.3.3` | `1.5.4` |\n| [cuda-toolkit](https://developer.nvidia.com/cuda-toolkit) | `13.0.2` | `13.2.1` |\n| [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator) | `0.26.3` | `0.56.1` |\n| [dataproperty](https://github.com/thombashi/DataProperty) | `1.0.1` | `1.1.0` |\n| [decorator](https://github.com/micheles/decorator) | `5.1.1` | `5.2.1` |\n| [dill](https://github.com/uqfoundation/dill) | `0.3.8` | `0.4.1` |\n| [distlib](https://github.com/pypa/distlib) | `0.3.9` | `0.4.0` |\n| [dnspython](https://github.com/rthalley/dnspython) | `2.7.0` | `2.8.0` |\n| [einx](https://github.com/fferflo/einx) | `0.3.0` | `0.4.3` |\n| [email-validator](https://github.com/JoshData/python-email-validator) | `2.2.0` | `2.3.0` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.55.0` | `4.62.1` |\n| [frozenlist](https://github.com/aio-libs/frozenlist) | `1.5.0` | `1.8.0` |\n| [google-api-core](https://github.com/googleapis/google-cloud-python) | `2.24.2` | `2.30.3` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.40.2` | `2.50.0` |\n| [google-cloud-core](https://github.com/googleapis/google-cloud-python) | `2.4.3` | `2.5.1` |\n| [google-cloud-storage](https://github.com/googleapis/python-storage) | `3.4.0` | `3.10.1` |\n| [google-crc32c](https://github.com/googleapis/python-crc32c) | `1.7.1` | `1.8.0` |\n| [google-resumable-media](https://github.com/googleapis/google-resumable-media-python) | `2.7.2` | `2.8.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.70.0` | `1.74.0` |\n| [greenlet](https://github.com/python-greenlet/greenlet) | `3.2.3` | `3.5.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [grpcio-reflection](https://grpc.io) | `1.78.0` | `1.80.0` |\n| [h11](https://github.com/python-hyper/h11) | `0.14.0` | `0.16.0` |\n| [harfile](https://github.com/schemathesis/harfile) | `0.3.0` | `0.4.0` |\n| [hiredis](https://github.com/redis/hiredis-py) | `3.0.0` | `3.3.1` |\n| [httpx](https://github.com/encode/httpx) | `0.27.2` | `0.28.1` |\n| [huggingface-hub](https://github.com/huggingface/huggingface_hub) | `1.10.2` | `1.13.0` |\n| [humanize](https://github.com/python-humanize/humanize) | `4.11.0` | `4.15.0` |\n| [hypothesis](https://github.com/HypothesisWorks/hypothesis) | `6.131.0` | `6.152.4` |\n| [hypothesis-graphql](https://github.com/Stranger6667/hypothesis-graphql) | `0.11.1` | `0.12.0` |\n| [idna](https://github.com/kjd/idna) | `3.10` | `3.13` |\n| [iniconfig](https://github.com/pytest-dev/iniconfig) | `2.0.0` | `2.3.0` |\n| [jmespath](https://github.com/jmespath/jmespath.py) | `1.0.1` | `1.1.0` |\n| [joblib](https://github.com/joblib/joblib) | `1.4.2` | `1.5.3` |\n| [jsonpointer](https://github.com/stefankoegl/python-json-pointer) | `3.0.0` | `3.1.1` |\n| [jsonschema](https://github.com/python-jsonschema/jsonschema) | `4.23.0` | `4.26.0` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.7` | `1.5.0` |\n| [lazy-loader](https://github.com/scientific-python/lazy-loader) | `0.4` | `0.5` |\n| [librosa](https://github.com/librosa/librosa) | `0.10.2.post1` | `0.11.0` |\n| [matplotlib](https://github.com/matplotlib/matplotlib) | `3.9.2` | `3.10.9` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.34.0` | `1.36.0` |\n| [mteb](https://github.com/embeddings-benchmark/mteb) | `2.8.3` | `2.12.30` |\n| [multidict](https://github.com/aio-libs/multidict) | `6.1.0` | `6.7.1` |\n| [mypy-extensions](https://github.com/python/mypy_extensions) | `1.0.0` | `1.1.0` |\n| [networkx](https://github.com/networkx/networkx) | `3.2.1` | `3.4.2` |\n| [nvidia-cublas](https://developer.nvidia.com/cuda-zone) | `13.1.0.3` | `13.4.1.1` |\n| [nvidia-cuda-cupti](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [nvidia-cuda-nvrtc](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-cuda-runtime](https://developer.nvidia.com/cuda-zone) | `13.0.96` | `13.2.75` |\n| [nvidia-cudnn-cu13](https://developer.nvidia.com/cuda-zone) | `9.19.0.56` | `9.21.1.3` |\n| [nvidia-cufft](https://developer.nvidia.com/cuda-zone) | `12.0.0.61` | `12.2.0.46` |\n| [nvidia-cufile](https://developer.nvidia.com/cuda-zone) | `1.15.1.6` | `1.17.1.22` |\n| [nvidia-cusolver](https://developer.nvidia.com/cuda-zone) | `12.0.4.66` | `12.2.0.1` |\n| [nvidia-cusparse](https://developer.nvidia.com/cuda-zone) | `12.6.3.3` | `12.7.10.1` |\n| [nvidia-cusparselt-cu13](https://developer.nvidia.com/cusparselt) | `0.8.0` | `0.9.1` |\n| [nvidia-nccl-cu13](https://developer.nvidia.com/cuda-zone) | `2.28.9` | `2.30.4` |\n| [nvidia-nvjitlink](https://developer.nvidia.com/cuda-zone) | `13.0.88` | `13.2.78` |\n| [nvidia-nvshmem-cu13](https://developer.nvidia.com/cuda-zone) | `3.4.5` | `3.6.5` |\n| [nvidia-nvtx](https://developer.nvidia.com/cuda-zone) | `13.0.85` | `13.2.75` |\n| [opentelemetry-exporter-prometheus](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [opentelemetry-proto](https://github.com/open-telemetry/opentelemetry-python) | `1.35.0` | `1.41.1` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.56b0` | `0.62b1` |\n| [pathvalidate](https://github.com/thombashi/pathvalidate) | `3.2.1` | `3.3.1` |\n| [peft](https://github.com/huggingface/peft) | `0.18.1` | `0.19.1` |\n| [perceptron](https://github.com/perceptron-ai-inc/perceptron) | `0.1.4` | `0.2.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.3.6` | `4.9.6` |\n| [pluggy](https://github.com/pytest-dev/pluggy) | `1.5.0` | `1.6.0` |\n| [polars](https://github.com/pola-rs/polars) | `1.29.0` | `1.40.1` |\n| [pooch](https://github.com/fatiando/pooch) | `1.8.2` | `1.9.0` |\n| [propcache](https://github.com/aio-libs/propcache) | `0.2.0` | `0.4.1` |\n| [proto-plus](https://github.com/googleapis/google-cloud-python) | `1.26.1` | `1.27.2` |\n| [pycryptodomex](https://github.com/Legrandin/pycryptodome) | `3.22.0` | `3.23.0` |\n| [pydantic-core](https://github.com/pydantic/pydantic) | `2.41.1` | `2.46.3` |\n| [pydantic-extra-types](https://github.com/pydantic/pydantic-extra-types) | `2.10.5` | `2.11.1` |\n| [pygments](https://github.com/pygments/pygments) | `2.18.0` | `2.20.0` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [pyparsing](https://github.com/pyparsing/pyparsing) | `3.2.0` | `3.3.2` |\n| [pytest-mock](https://github.com/pytest-dev/pytest-mock) | `3.14.0` | `3.15.1` |\n| [pytest-subtests](https://github.com/pytest-dev/pytest-subtests) | `0.14.1` | `0.15.0` |\n| [pytest-timeout](https://github.com/pytest-dev/pytest-timeout) | `2.3.1` | `2.4.0` |\n| [python-rapidjson](https://github.com/python-rapidjson/python-rapidjson) | `1.20` | `1.23` |\n| [rapidfuzz](https://github.com/rapidfuzz/RapidFuzz) | `3.12.1` | `3.14.5` |\n| [referencing](https://github.com/python-jsonschema/referencing) | `0.35.1` | `0.37.0` |\n| [responses](https://github.com/getsentry/responses) | `0.25.3` | `0.26.0` |\n| [rpds-py](https://github.com/crate-py/rpds) | `0.20.1` | `0.30.0` |\n| [s3transfer](https://github.com/boto/s3transfer) | `0.10.3` | `0.17.0` |\n| [sacrebleu](https://github.com/mjpost/sacrebleu) | `2.4.3` | `2.6.0` |\n| [safetensors](https://github.com/huggingface/safetensors) | `0.4.5` | `0.7.0` |\n| [scikit-learn](https://github.com/scikit-learn/scikit-learn) | `1.5.2` | `1.7.2` |\n| [scipy](https://github.com/scipy/scipy) | `1.13.1` | `1.15.3` |\n| [sentence-transformers](https://github.com/huggingface/sentence-transformers) | `5.2.0` | `5.4.1` |\n| [six](https://github.com/benjaminp/six) | `1.16.0` | `1.17.0` |\n| [smart-open](https://github.com/piskvorky/smart_open) | `7.1.0` | `7.6.0` |\n| [soundfile](https://github.com/bastibe/python-soundfile) | `0.12.1` | `0.13.1` |\n| [structlog](https://github.com/hynek/structlog) | `25.4.0` | `25.5.0` |\n| [sympy](https://github.com/sympy/sympy) | `1.13.3` | `1.14.0` |\n| [tabulate](https://github.com/astanin/python-tabulate) | `0.9.0` | `0.10.0` |\n| [tblib](https://github.com/ionelmc/python-tblib) | `3.1.0` | `3.2.2` |\n| [tensorizer](https://github.com/coreweave/tensorizer) | `2.10.1` | `2.12.1` |\n| [termcolor](https://github.com/termcolor/termcolor) | `3.1.0` | `3.3.0` |\n| [threadpoolctl](https://github.com/joblib/threadpoolctl) | `3.5.0` | `3.6.0` |\n| [tomli](https://github.com/hukkin/tomli) | `2.2.1` | `2.4.1` |\n| [tritonclient](https://github.com/triton-inference-server/client) | `2.64.0` | `2.68.0` |\n| [typer](https://github.com/fastapi/typer) | `0.15.2` | `0.25.1` |\n| [urllib3](https://github.com/urllib3/urllib3) | `2.2.3` | `2.6.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.35.0` | `0.46.0` |\n| [vector-quantize-pytorch](https://github.com/lucidrains/vector-quantizer-pytorch) | `1.21.2` | `1.28.2` |\n| [wcwidth](https://github.com/jquast/wcwidth) | `0.2.13` | `0.7.0` |\n| [xxhash](https://github.com/ifduyue/python-xxhash) | `3.5.0` | `3.7.0` |\n| [yarl](https://github.com/aio-libs/yarl) | `1.17.1` | `1.23.0` |\n| [zstandard](https://github.com/indygreg/python-zstandard) | `0.23.0` | `0.25.0` |\n| [conch-triton-kernels](https://github.com/stackav-oss/conch) | `1.2.1` | `1.3` |\n\n\nUpdates `regex` from 2026.2.28 to 2026.4.4\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/bc57b04b00de68590345ac2eb621b9a8dd222d7d\"\u003e\u003ccode\u003ebc57b04\u003c/code\u003e\u003c/a\u003e A fix for older Python versions before free-threading was  supported.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/773e213b5d7a78806e795d2513a37345dc793e97\"\u003e\u003ccode\u003e773e213\u003c/code\u003e\u003c/a\u003e More fixes for free-threading.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/5d51c75da03116e08bb6fb537fae6d8c804cc92c\"\u003e\u003ccode\u003e5d51c75\u003c/code\u003e\u003c/a\u003e Fixed segfault.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2aff2db5542ec5b58705be6ddb7b69a99d3e38a8\"\u003e\u003ccode\u003e2aff2db\u003c/code\u003e\u003c/a\u003e Fixed bug again.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/16af8aed2b3211e90588d2ac96f7c588ed477b2c\"\u003e\u003ccode\u003e16af8ae\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/2356563bbfd51b3986320a866c35a50b89833949\"\u003e\u003ccode\u003e2356563\u003c/code\u003e\u003c/a\u003e Fixed bug.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/f579e8ff60e2993a11cf4fd96748e4b7866c9fed\"\u003e\u003ccode\u003ef579e8f\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/55315a0497722898bed8286a596a64db698f498e\"\u003e\u003ccode\u003e55315a0\u003c/code\u003e\u003c/a\u003e Fixed version.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mrabarnett/mrab-regex/commit/923d78e39b8ff92db67606be3bfbc2e595b6475a\"\u003e\u003ccode\u003e923d78e\u003c/code\u003e\u003c/a\u003e Various fixes, including ones to improve free-threading support.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mrabarnett/mrab-regex/compare/2026.2.28...2026.4.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.3 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.32.5\u003c/h2\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.32.5 (2025-08-18)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eThe SSLContext caching feature originally introduced in 2.32.0 has created\na new class of issues in Requests that have had negative impact across a number\nof use cases. The Requests team has decided to revert this feature as long term\nmaintenance of it is proving to be unsustainable in its current iteration.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for Python 3.14.\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.3...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `transformers` from 5.5.3 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/transformers/releases\"\u003etransformers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eRelease v5.7.0\u003c/h1\u003e\n\u003ch2\u003eNew Model additions\u003c/h2\u003e\n\u003ch3\u003eLaguna\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eLaguna is Poolside's mixture-of-experts language model family that extends standard SwiGLU MoE transformers with two key innovations. It features per-layer head counts allowing different decoder layers to have different query-head counts while sharing the same KV cache shape, and implements a sigmoid MoE router with auxiliary-loss-free load balancing that uses element-wise sigmoid of gate logits plus learned per-expert bias for router scoring.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/laguna\"\u003eDocumentation\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLaguna XS.2 implementation (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45673\"\u003e#45673\u003c/a\u003e) by \u003ca href=\"https://github.com/joerowell\"\u003e\u003ccode\u003e@​joerowell\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/45673\"\u003e#45673\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDEIMv2\u003c/h3\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003eDEIMv2 (DETR with Improved Matching v2) is a real-time object detection model that extends DEIM with DINOv3 features and spans eight model sizes from X to Atto for diverse deployment scenarios. It uses a Spatial Tuning Adapter (STA) for larger variants to convert DINOv3's single-scale output into multi-scale features, while ultra-lightweight models employ pruned HGNetv2 backbones. The unified design achieves superior performance-cost trade-offs, with DEIMv2-X reaching 57.8 AP with only 50.3M parameters and DEIMv2-S being the first sub-10M model to exceed 50 AP on COCO.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eLinks:\u003c/strong\u003e \u003ca href=\"https://huggingface.co/docs/transformers/main/en/model_doc/deimv2\"\u003eDocumentation\u003c/a\u003e | \u003ca href=\"https://huggingface.co/papers/2509.20787\"\u003ePaper\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003emodel: Add DEIMv2 to Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/44339\"\u003e#44339\u003c/a\u003e) by \u003ca href=\"https://github.com/harshaljanjani\"\u003e\u003ccode\u003e@​harshaljanjani\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/pull/44339\"\u003e#44339\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eAttention\u003c/h2\u003e\n\u003cp\u003eSeveral attention-related bugs were fixed across multiple models, including a cross-attention cache type error in T5Gemma2 for long inputs, incorrect cached forward behavior in Qwen3.5's gated-delta-net linear attention, and a crash in GraniteMoeHybrid when no Mamba layers are present. Attention function dispatch was also updated to align with the latest model implementations.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix cross-attention cache layer type for T5Gemma2 long inputs (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e) by \u003ca href=\"https://github.com/Beichen-Ma\"\u003e\u003ccode\u003e@​Beichen-Ma\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45540\"\u003e#45540\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Qwen3.5] Fix GDN linear attention multi-token cached forward (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e) by \u003ca href=\"https://github.com/kashif\"\u003e\u003ccode\u003e@​kashif\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45513\"\u003e#45513\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix GraniteMoeHybrid _update_mamba_mask crash on attention-only models (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e) by \u003ca href=\"https://github.com/tianhaocui\"\u003e\u003ccode\u003e@​tianhaocui\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45514\"\u003e#45514\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAlign latest model attention function dispatch (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e) by \u003ca href=\"https://github.com/Cyrilvallez\"\u003e\u003ccode\u003e@​Cyrilvallez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45598\"\u003e#45598\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eTokenizers\u003c/h2\u003e\n\u003cp\u003eThere was a bug in AutoTokenizer that caused the wrong tokenizer class to be initialized. This caused regressions in models like DeepSeek R1.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003echange got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e) by \u003ca href=\"https://github.com/itazap\"\u003e\u003ccode\u003e@​itazap\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGeneration\u003c/h2\u003e\n\u003cp\u003eContinuous batching generation received several fixes and improvements, including correcting KV deduplication and memory estimation for long sequences (16K+), and removing misleading warnings about \u003ccode\u003enum_return_sequences\u003c/code\u003e and other unsupported features that were incorrectly firing even when functionality worked correctly. Documentation for per-request sampling parameters was also added.\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003egenerate: drop stale num_return_sequences warning on continuous batching path (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\u003c/a\u003e) by \u003ca href=\"https://github.com/joaquinhuigomez\"\u003e\u003ccode\u003e@​joaquinhuigomez\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45582\"\u003e#45582\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/transformers/commit/6ffbb07f93d9e44457450d1150136309b0dc966b\"\u003e\u003ccode\u003e6ffbb07\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/18e7fd752e6fa7dd4ff8b828ff8f3aec5b0882ae\"\u003e\u003ccode\u003e18e7fd7\u003c/code\u003e\u003c/a\u003e change got reverted (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45680\"\u003e#45680\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2dff8f76f48abd7dd31b8dc156046509887d3cf1\"\u003e\u003ccode\u003e2dff8f7\u003c/code\u003e\u003c/a\u003e v5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/93bed93e7518444cce442a89c78008fa0a21c963\"\u003e\u003ccode\u003e93bed93\u003c/code\u003e\u003c/a\u003e fixing more typos (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45689\"\u003e#45689\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/a29e9675a864e2c7854a4d0f574589a8db1dac2e\"\u003e\u003ccode\u003ea29e967\u003c/code\u003e\u003c/a\u003e [docs] cb memory management (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45587\"\u003e#45587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/2d01799735d455f745b9c53d5a9d2eebdd7be569\"\u003e\u003ccode\u003e2d01799\u003c/code\u003e\u003c/a\u003e [docs] cpu offloading (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45660\"\u003e#45660\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/4aba7167e328965caadcdfc6834b982037889f86\"\u003e\u003ccode\u003e4aba716\u003c/code\u003e\u003c/a\u003e docs(README_zh-hans): clarify conditions for not using Transformers (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45688\"\u003e#45688\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/f4fc6d013864f5389b6518787438cf55359613d1\"\u003e\u003ccode\u003ef4fc6d0\u003c/code\u003e\u003c/a\u003e fix padding side issue for fast_vlm tests (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45592\"\u003e#45592\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/5d7ff4393ab99aa7cadf4cccd1f814dbb799f2bb\"\u003e\u003ccode\u003e5d7ff43\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003ex_clip\u003c/code\u003e: 8 failed test cases (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45394\"\u003e#45394\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/transformers/commit/aadc005711da266af1f75c33185172af9d9f19bf\"\u003e\u003ccode\u003eaadc005\u003c/code\u003e\u003c/a\u003e zero_shot_object_detection ValueError fix for python 3.13 (\u003ca href=\"https://redirect.github.com/huggingface/transformers/issues/45669\"\u003e#45669\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/transformers/compare/v5.5.3...v5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `tokenizers` from 0.22.2 to 0.23.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/huggingface/tokenizers/releases\"\u003etokenizers's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v0.23.1\u003c/h2\u003e\n\u003ch2\u003eTL;DR\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003etokenizers 0.23.1\u003c/code\u003e is the first proper stable release in the \u003ccode\u003e0.23\u003c/code\u003e line — \u003ccode\u003e0.23.0\u003c/code\u003e only ever shipped as \u003ccode\u003erc0\u003c/code\u003e because the release pipeline itself was broken (Node side hadn't shipped multi-platform binaries since 2023, Python side was on \u003ccode\u003epyo3 0.27\u003c/code\u003e without free-threaded support). \u003ccode\u003e0.23.1\u003c/code\u003e is the version where everything actually goes out the door together: full Node multi-platform wheels for the first time in years, Python 3.14 (regular \u003cstrong\u003eand\u003c/strong\u003e free-threaded \u003ccode\u003e3.14t\u003c/code\u003e), full type hints for every Python class, and a stack of measurable perf wins on the BPE / added-vocab hot paths.\u003c/p\u003e\n\u003cp\u003eThere is no functional \u003ccode\u003e0.23.0\u003c/code\u003e published — we tag \u003ccode\u003e0.23.1\u003c/code\u003e directly so users don't accidentally pull a never-shipped version.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003e🚨 Breaking changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003eDrop Python 3.9\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1952\"\u003e#1952\u003c/a\u003e) — \u003ccode\u003erequires-python = \u0026quot;\u0026gt;=3.10\u0026quot;\u003c/code\u003e; 3.9 users stay on \u003ccode\u003e0.22.x\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e\u003ccode\u003eadd_tokens\u003c/code\u003e normalizes \u003ccode\u003econtent\u003c/code\u003e at insertion\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e) — re-saved \u003ccode\u003etokenizer.json\u003c/code\u003e may differ in the \u003ccode\u003eadded_tokens\u003c/code\u003e block. Existing files load unchanged.\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003eType stubs are precise\u003c/strong\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1928\"\u003e#1928\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1997\"\u003e#1997\u003c/a\u003e) — methods that returned \u003ccode\u003eAny\u003c/code\u003e now return real types; \u003ccode\u003emypy --strict\u003c/code\u003e may surface previously-hidden errors. Stub layout also moved from \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;/__init__.pyi\u003c/code\u003e to \u003ccode\u003etokenizers/\u0026lt;sub\u0026gt;.pyi\u003c/code\u003e. This breaks the surface of some of the processors like \u003ccode\u003eRobertaProcessign\u003c/code\u003e's \u003ccode\u003e__init__\u003c/code\u003e .\u003c/li\u003e\n\u003cli\u003e\u003cstrong\u003e3.14t-only\u003c/strong\u003e: setters/getters return \u003ccode\u003ePyResult\u0026lt;T\u0026gt;\u003c/code\u003e because of \u003ccode\u003eArc\u0026lt;RwLock\u0026lt;Tokenizer\u0026gt;\u0026gt;\u003c/code\u003e; a poisoned lock surfaces as \u003ccode\u003ePyException\u003c/code\u003e instead of a panic.\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003e⚡ Performance — measured locally on this Mac, not lifted from PRs\u003c/h2\u003e\n\u003cp\u003eRun with \u003ccode\u003ecargo bench --bench \u0026lt;name\u0026gt; -- --save-baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.22.2\u003c/code\u003e, then \u003ccode\u003e--baseline v0_22_2\u003c/code\u003e on \u003ccode\u003ev0.23.1\u003c/code\u003e. Numbers are point-in-time wall clock on a single laptop; relative deltas are what matters, absolute numbers will differ on CI hardware.\u003c/p\u003e\n\u003ch3\u003eAdded-vocabulary deserialize — the headline win (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1995\"\u003e#1995\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/1999\"\u003e#1999\u003c/a\u003e)\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003ebench: improve added_vocab_deserialize to reflect real-world workloads\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2000\"\u003e#2000\u003c/a\u003e) is now representative of how transformers actually loads tokenizer.json files. The combined effect of \u003ccode\u003edaachorse\u003c/code\u003e for the matching automaton plus the normalize-on-insert refactor is enormous on this workload:\u003c/p\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~410 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e248 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.1 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e273 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~395 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e235 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−40%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e100k tokens, non-special, NFKC\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~7.4 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e290 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−96%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e400k tokens, special, no norm\u003c/td\u003e\n\u003ctd align=\"right\"\u003e~15 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e980 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−94%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eReal-world impact: loading a Llama-3-style tokenizer with a large set of added tokens dropped from \u0026quot;noticeable pause\u0026quot; to \u0026quot;instant\u0026quot;.\u003c/p\u003e\n\u003ch3\u003eBPE encode\u003c/h3\u003e\n\u003ctable\u003e\n\u003cthead\u003e\n\u003ctr\u003e\n\u003cth\u003ebenchmark\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.22.2\u003c/th\u003e\n\u003cth align=\"right\"\u003ev0.23.1\u003c/th\u003e\n\u003cth align=\"right\"\u003echange\u003c/th\u003e\n\u003c/tr\u003e\n\u003c/thead\u003e\n\u003ctbody\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch, no cache\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e530 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e446 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e\u003cstrong\u003e−16%\u003c/strong\u003e\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode batch\u003c/code\u003e (cached)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e690 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e685 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE GPT2 encode\u003c/code\u003e (single)\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.95 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.94 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003enoise\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (small)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e32.6 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e31.5 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−3%\u003c/td\u003e\n\u003c/tr\u003e\n\u003ctr\u003e\n\u003ctd\u003e\u003ccode\u003eBPE Train (big)\u003c/code\u003e\u003c/td\u003e\n\u003ctd align=\"right\"\u003e1.01 s\u003c/td\u003e\n\u003ctd align=\"right\"\u003e988 ms\u003c/td\u003e\n\u003ctd align=\"right\"\u003e−2%\u003c/td\u003e\n\u003c/tr\u003e\n\u003c/tbody\u003e\n\u003c/table\u003e\n\u003cp\u003eThe BPE per-thread cache PR (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e) shows much larger wins on highly-parallel workloads (+47–62% at 88+ threads on a server box, per the PR's own measurements on Vera). Single-thread batch numbers above are flat or slightly improved because cache-hit overhead was already low without contention.\u003c/p\u003e\n\u003ch3\u003eLlama-3 encode\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/7f1623b90b5adfb9bc327d4c3468d2f70bbce262\"\u003e\u003ccode\u003e7f1623b\u003c/code\u003e\u003c/a\u003e Bump version to 0.23.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bbe43ad73d8fc8932b9d0e657ddee3cd70c649a4\"\u003e\u003ccode\u003ebbe43ad\u003c/code\u003e\u003c/a\u003e ci: release workflow fixes (node + python) (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2043\"\u003e#2043\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/ab0c5d8fc13eb1c5001d9c06806635e2b5a42e9f\"\u003e\u003ccode\u003eab0c5d8\u003c/code\u003e\u003c/a\u003e Fix node release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2034\"\u003e#2034\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/decd8e07dad15f296c0adc2bc3a560f62d3de2eb\"\u003e\u003ccode\u003edecd8e0\u003c/code\u003e\u003c/a\u003e bindings/python: free-threaded Python (3.14t) support (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2041\"\u003e#2041\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/3992692d483bf3177219b52cb101b1bb055c18e6\"\u003e\u003ccode\u003e3992692\u003c/code\u003e\u003c/a\u003e update for release (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2033\"\u003e#2033\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/bcdd25b97fcd78549903082ecf3ddd87d42c456b\"\u003e\u003ccode\u003ebcdd25b\u003c/code\u003e\u003c/a\u003e BPE cache: per-thread read-through cache to avoid RwLock atomics on hits (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2028\"\u003e#2028\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/618eb383f43e207139eb5cdb9bca17796b5e9bd7\"\u003e\u003ccode\u003e618eb38\u003c/code\u003e\u003c/a\u003e Bump follow-redirects in /tokenizers/examples/unstable_wasm/www (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2024\"\u003e#2024\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/b6b1688bef2e87efc91af18edf7ac38b4d2dfbe6\"\u003e\u003ccode\u003eb6b1688\u003c/code\u003e\u003c/a\u003e chore: bump doc-builder SHA for PR upload workflow (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2025\"\u003e#2025\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/19015d6b44aa3896626de5092e4171aed1b56d5b\"\u003e\u003ccode\u003e19015d6\u003c/code\u003e\u003c/a\u003e fix: use uvx --with cairosvg instead of uv pip install --system (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2021\"\u003e#2021\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/huggingface/tokenizers/commit/efbcc68e321c364c8f9541f1c93a158df54d7da4\"\u003e\u003ccode\u003eefbcc68\u003c/code\u003e\u003c/a\u003e Ci benchmarks (\u003ca href=\"https://redirect.github.com/huggingface/tokenizers/issues/2019\"\u003e#2019\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/huggingface/tokenizers/compare/v0.22.2...v0.23.1\"\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.136.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.136.1\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Update Pydantic v2 code to address deprecations. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15101\"\u003e#15101\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\u003eInternal\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔨 Tweak translation script. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15174\"\u003e#15174\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⬆ Bump mkdocs-material from 9.7.1 to 9.7.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15408\"\u003e#15408\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 inline-snapshot from 0.31.1 to 0.32.6. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15409\"\u003e#15409\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 pytest-codspeed from 4.3.0 to 4.4.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15407\"\u003e#15407\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 pytest-cov from 7.0.0 to 7.1.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15406\"\u003e#15406\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 cloudflare/wrangler-action from 3.14.1 to 3.15.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15405\"\u003e#15405\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 mypy from 1.19.1 to 1.20.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15410\"\u003e#15410\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 python-dotenv from 1.2.1 to 1.2.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15400\"\u003e#15400\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 starlette from 0.52.1 to 1.0.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15397\"\u003e#15397\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 pygithub from 2.8.1 to 2.9.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15396\"\u003e#15396\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 pyjwt from 2.12.0 to 2.12.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15393\"\u003e#15393\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 zizmor from 1.23.1 to 1.24.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15394\"\u003e#15394\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 strawberry-graphql from 0.312.3 to 0.314.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15395\"\u003e#15395\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 python-multipart from 0.0.22 to 0.0.26. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15360\"\u003e#15360\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 authlib from 1.6.9 to 1.6.11. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15373\"\u003e#15373\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 aiohttp from 3.13.3 to 3.13.4. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15282\"\u003e#15282\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 pygments from 2.19.2 to 2.20.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15263\"\u003e#15263\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 pymdown-extensions from 10.20.1 to 10.21.2. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15391\"\u003e#15391\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⬆ Bump pillow from 12.1.1 to 12.2.0. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15333\"\u003e#15333\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 pytest from 9.0.2 to 9.0.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15334\"\u003e#15334\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 actions/upload-artifact from 7.0.0 to 7.0.1. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15374\"\u003e#15374\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 actions/cache from 5.0.4 to 5.0.5. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15385\"\u003e#15385\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 sponsors: remove Zuplo. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15369\"\u003e#15369\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 sponsors: remove Speakeasy. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15368\"\u003e#15368\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 zizmor and fix audit findings. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15316\"\u003e#15316\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.136.0\u003c/h2\u003e\n\u003ch3\u003eUpgrades\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e⬆️ Support free-threaded Python 3.14t. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15149\"\u003e#15149\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.4\u003c/h2\u003e\n\u003ch3\u003eRefactors\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e🔥 Remove April Fool's \u003ccode\u003e@app.vibe()\u003c/code\u003e 🤪. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15363\"\u003e#15363\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⬆ Bump cryptography from 46.0.5 to 46.0.7. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15314\"\u003e#15314\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 strawberry-graphql from 0.307.1 to 0.312.3. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15309\"\u003e#15309\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 pre-commit hook to ensure latest release header has date. PR \u003ca href=\"https://redirect.github.com/fastapi/fastapi/pull/15293\"\u003e#15293\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.135.3\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/fastapi/fastapi/commit/e54e5a8980ffa6d7ff68ee7b25a1c46036375521\"\u003e\u003ccode\u003ee54e5a8\u003c/code\u003e\u003c/a\u003e 🔖 Release version 0.136.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/9a8a5fd99902c3b80d4cc94b85e120e2b808825f\"\u003e\u003ccode\u003e9a8a5fd\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/7815a32f2ed177b8b786a48b3e0712c05b5c644f\"\u003e\u003ccode\u003e7815a32\u003c/code\u003e\u003c/a\u003e ⬆️ Update Pydantic v2 code to address deprecations (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15101\"\u003e#15101\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ef1c927b0558d414e199a666833942a6fabb3a51\"\u003e\u003ccode\u003eef1c927\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/38039e12a86e67f2001b9b7d96c219691d6cb4af\"\u003e\u003ccode\u003e38039e1\u003c/code\u003e\u003c/a\u003e 🔨 Tweak translation script (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15174\"\u003e#15174\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4fa826ce0a3b16884a04f51e5aac95d01790b599\"\u003e\u003ccode\u003e4fa826c\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/c39415673e621665fdb7bbdde69beba7eb1dfd12\"\u003e\u003ccode\u003ec394156\u003c/code\u003e\u003c/a\u003e ⬆ Bump mkdocs-material from 9.7.1 to 9.7.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15408\"\u003e#15408\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/ae230ad2f9d90a4e3f6222ff1a5d6e8da41ec0ad\"\u003e\u003ccode\u003eae230ad\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/d9eb39d1a1bf2f6e6e5d3a55088f61c712cb864e\"\u003e\u003ccode\u003ed9eb39d\u003c/code\u003e\u003c/a\u003e ⬆ Bump inline-snapshot from 0.31.1 to 0.32.6 (\u003ca href=\"https://redirect.github.com/fastapi/fastapi/issues/15409\"\u003e#15409\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/fastapi/fastapi/commit/4f8b5d14d324ae8e15cfae8d85adb4186d4c2175\"\u003e\u003ccode\u003e4f8b5d1\u003c/code\u003e\u003c/a\u003e 📝 Update release notes\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/fastapi/fastapi/compare/0.128.0...0.136.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.0 to 2.13.3\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.3 2026-04-20\u003c/h2\u003e\n\u003ch2\u003ev2.13.3 (2026-04-20)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\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.13.2...v2.13.3\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.2...v2.13.3\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.2 2026-04-17\u003c/h2\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\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.13.1...v2.13.2\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.1...v2.13.2\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev2.13.1 2026-04-15\u003c/h2\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\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.13.0...v2.13.1\"\u003ehttps://github.com/pydantic/pydantic/compare/v2.13.0...v2.13.1\u003c/a\u003e\u003c/p\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\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.3 (2026-04-20)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.3\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eHandle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e 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/13096\"\u003e#13096\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.2 (2026-04-17)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.2\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e 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/13084\"\u003e#13084\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev2.13.1 (2026-04-15)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/pydantic/pydantic/releases/tag/v2.13.1\"\u003eGitHub release\u003c/a\u003e\u003c/p\u003e\n\u003ch3\u003eWhat's Changed\u003c/h3\u003e\n\u003ch4\u003eFixes\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\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/pull/13079\"\u003e#13079\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\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\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/9e9a11132c980c4ec84ff6d2df06d4c1a55ca8f3\"\u003e\u003ccode\u003e9e9a111\u003c/code\u003e\u003c/a\u003e Fix backported test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/1ec8c6aa0cae1c78409c6f31af738a24e16c7124\"\u003e\u003ccode\u003e1ec8c6a\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/fb4f2044436e9fa4ff9745479ce263016a99c4d6\"\u003e\u003ccode\u003efb4f204\u003c/code\u003e\u003c/a\u003e Handle \u003ccode\u003eAttributeError\u003c/code\u003e subclasses with \u003ccode\u003efrom_attributes\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/ca3ddd1149bd3b14273922a29da174804496a055\"\u003e\u003ccode\u003eca3ddd1\u003c/code\u003e\u003c/a\u003e Prepare release v2.13.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/000e823a3ab7545b0c6064fde34effdcd02044ab\"\u003e\u003ccode\u003e000e823\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.field_name\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/d45d8be3ffb6dfc6d0c64da6980140c91ff841fb\"\u003e\u003ccode\u003ed45d8be\u003c/code\u003e\u003c/a\u003e Prepare release 2.13.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pydantic/pydantic/commit/54aca609ce58e73dfe1c681d93432fbe3a4621da\"\u003e\u003ccode\u003e54aca60\u003c/code\u003e\u003c/a\u003e Fix \u003ccode\u003eValidationInfo.data\u003c/code\u003e missing with \u003ccode\u003emodel_validate_json()\u003c/code\u003e\u003c/li\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\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pydantic/pydantic/compare/v2.12.0...v2.13.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `prometheus-client` from 0.22.0 to 0.25.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/prometheus/client_python/releases\"\u003eprometheus-client's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev0.25.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix spaces in grouping key values for push_to_gateway by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1156\"\u003eprometheus/client_python#1156\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport MultiProcessCollector in RestrictedRegistry by \u003ca href=\"https://github.com/mathias-kende\"\u003e\u003ccode\u003e@​mathias-kende\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1150\"\u003eprometheus/client_python#1150\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.24.1...v0.25.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.24.1\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[Django] Pass correct registry to MultiProcessCollector by \u003ca href=\"https://github.com/jelly\"\u003e\u003ccode\u003e@​jelly\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1152\"\u003eprometheus/client_python#1152\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev0.24.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd an AIOHTTP exporter by \u003ca href=\"https://github.com/Lexicality\"\u003e\u003ccode\u003e@​Lexicality\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1139\"\u003eprometheus/client_python#1139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd remove_matching() method for metric label deletion by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1121\"\u003eprometheus/client_python#1121\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix(multiprocess): avoid double-building child metric names (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1035\"\u003e#1035\u003c/a\u003e) by \u003ca href=\"https://github.com/hazel-shen\"\u003e\u003ccode\u003e@​hazel-shen\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1146\"\u003eprometheus/client_python#1146\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't interleave histogram metrics in multi-process collector by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1148\"\u003eprometheus/client_python#1148\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRelax registry type annotations for exposition by \u003ca href=\"https://github.com/cjwatson\"\u003e\u003ccode\u003e@​cjwatson\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1149\"\u003eprometheus/client_python#1149\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded compression support in pushgateway by \u003ca href=\"https://github.com/ritesh-avesha\"\u003e\u003ccode\u003e@​ritesh-avesha\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1144\"\u003eprometheus/client_python#1144\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) by \u003ca href=\"https://github.com/Chadys\"\u003e\u003ccode\u003e@​Chadys\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1143\"\u003eprometheus/client_python#1143\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.1...v0.24.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use tuples instead of packaging Version by \u003ca href=\"https://github.com/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\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/efiop\"\u003e\u003ccode\u003e@​efiop\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1136\"\u003eprometheus/client_python#1136\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\"\u003ehttps://github.com/prometheus/client_python/compare/v0.23.0...v0.23.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev0.23.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUTF-8 Content Negotiation by \u003ca href=\"https://github.com/ywwg\"\u003e\u003ccode\u003e@​ywwg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1102\"\u003eprometheus/client_python#1102\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRe include test data by \u003ca href=\"https://github.com/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove parser performance by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1117\"\u003eprometheus/client_python#1117\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd support to \u003ccode\u003ewrite_to_textfile\u003c/code\u003e for custom tmpdir by \u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOM text exposition for NH by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1087\"\u003eprometheus/client_python#1087\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bug which caused metric publishing to not accept query string parameters in ASGI app by \u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEmit native histograms only when OM 2.0.0 is requested by \u003ca href=\"https://github.com/vesari\"\u003e\u003ccode\u003e@​vesari\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1128\"\u003eprometheus/client_python#1128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: remove space after comma in openmetrics exposition by \u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix issue parsing double spaces after # HELP/# TYPE by \u003ca href=\"https://github.com/csmarchbanks\"\u003e\u003ccode\u003e@​csmarchbanks\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1134\"\u003eprometheus/client_python#1134\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/mgorny\"\u003e\u003ccode\u003e@​mgorny\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1113\"\u003eprometheus/client_python#1113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aadityadhruv\"\u003e\u003ccode\u003e@​aadityadhruv\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1115\"\u003eprometheus/client_python#1115\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/hacksparr0w\"\u003e\u003ccode\u003e@​hacksparr0w\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1125\"\u003eprometheus/client_python#1125\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/theSuess\"\u003e\u003ccode\u003e@​theSuess\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/prometheus/client_python/pull/1132\"\u003eprometheus/client_python#1132\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\"\u003ehttps://github.com/prometheus/client_python/compare/v0.22.1...v0.23.0\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/prometheus/client_python/commit/2cd1738fb880fd0e6aa9a02ec48585128388a6cd\"\u003e\u003ccode\u003e2cd1738\u003c/code\u003e\u003c/a\u003e Release 0.25.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/daa1626eaf705318013b708954499b0a049088c8\"\u003e\u003ccode\u003edaa1626\u003c/code\u003e\u003c/a\u003e docs: add API reference for all metric types  (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1159\"\u003e#1159\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/8673912276bdca7ddbca5d163eb11422b546bffb\"\u003e\u003ccode\u003e8673912\u003c/code\u003e\u003c/a\u003e Support MultiProcessCollector in RestrictedRegistry. (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1150\"\u003e#1150\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/671f75c6f1f04838995fadd57cda21beee01838b\"\u003e\u003ccode\u003e671f75c\u003c/code\u003e\u003c/a\u003e Fix spaces in grouping key values for push_to_gateway (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1156\"\u003e#1156\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/1cf53feae63b6ecb0bd76eee80582a0fba957e09\"\u003e\u003ccode\u003e1cf53fe\u003c/code\u003e\u003c/a\u003e Fix server shutdown documentation (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1155\"\u003e#1155\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/a8541354519d04852d24688845f1d2d495eef59c\"\u003e\u003ccode\u003ea854135\u003c/code\u003e\u003c/a\u003e Migrate to Github Actions (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1153\"\u003e#1153\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/f417f6ea8f058165a1934e368fed245e91aafc14\"\u003e\u003ccode\u003ef417f6e\u003c/code\u003e\u003c/a\u003e Release 0.24.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/6f0e967c1f7a408b75861d6833a8d303874be95d\"\u003e\u003ccode\u003e6f0e967\u003c/code\u003e\u003c/a\u003e Pass correct registry to MultiProcessCollector (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1152\"\u003e#1152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/c5024d310fbfcba45a5e9db62e337a3a7930ea16\"\u003e\u003ccode\u003ec5024d3\u003c/code\u003e\u003c/a\u003e Release 0.24.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/prometheus/client_python/commit/e1cdc203b1cf5f15c7b9a64d79fccc7907a62ca3\"\u003e\u003ccode\u003ee1cdc20\u003c/code\u003e\u003c/a\u003e Add Django exporter (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1088\"\u003e#1088\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/prometheus/client_python/issues/1143\"\u003e#1143\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"...\n\n_Description has been truncated_","html_url":"https://github.com/vllm-project/vllm/pull/41606","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/vllm-project%2Fvllm/issues/41606","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/41606/packages"}},{"old_version":"\u003e=1.28.0","new_version":"\u003e=1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-04-27T00:36:46.000Z","version_change":"\u003e=1.28.0 → \u003e=1.36.0","issue":{"uuid":"4332419429","node_id":"PR_kwDOJc4wYs7Vylyn","number":68,"state":"open","title":"Update msal requirement from \u003e=1.28.0 to \u003e=1.36.0","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-04-27T00:36:46.000Z","updated_at":"2026-04-27T00:37:31.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.28.0","new_version":"\u003e=1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.28.0...1.36.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/Integration-Automation/FileAutomation/pull/68","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Integration-Automation%2FFileAutomation/issues/68","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/68/packages"}},{"old_version":"\u003e=1.33.0","new_version":"\u003e=1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-04-25T10:54:05.000Z","version_change":"\u003e=1.33.0 → \u003e=1.36.0","issue":{"uuid":"4327887283","node_id":"PR_kwDOSMPknM7VlQZN","number":3,"state":"open","title":"Update msal requirement from \u003e=1.33.0 to \u003e=1.36.0","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-25T10:54:05.000Z","updated_at":"2026-04-25T10:54:05.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"Update","packages":[{"name":"msal","old_version":"\u003e=1.33.0","new_version":"\u003e=1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Updates the requirements on [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) to permit the latest version.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.33.0...1.36.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/nightbreezerises/agentrx/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/nightbreezerises%2Fagentrx/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"1.34.0","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-04-24T23:19:12.000Z","version_change":"1.34.0 → 1.36.0","issue":{"uuid":"4326126764","node_id":"PR_kwDOPpHAzc7VfyHX","number":67,"state":"closed","title":"build(deps): bump msal from 1.34.0 to 1.36.0","user":"dependabot[bot]","labels":["dependencies","python:uv"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-06-05T23:14:24.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-24T23:19:12.000Z","updated_at":"2026-06-05T23:14:25.000Z","time_to_close":3628512,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"msal","old_version":"1.34.0","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.34.0 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.36.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=msal\u0026package-manager=uv\u0026previous-version=1.34.0\u0026new-version=1.36.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/traygo-app/canteen-management-system-server/pull/67","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/traygo-app%2Fcanteen-management-system-server/issues/67","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/67/packages"}},{"old_version":"1.35.1","new_version":"1.36.0","update_type":"minor","path":null,"pr_created_at":"2026-04-11T12:31:30.000Z","version_change":"1.35.1 → 1.36.0","issue":{"uuid":"4244521853","node_id":"PR_kwDORiN6gs7RqUkE","number":23,"state":"closed","title":"chore(deps): bump the pip-all group across 1 directory with 21 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":"2026-04-11T12:58:50.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-11T12:31:30.000Z","updated_at":"2026-04-11T12:58:58.000Z","time_to_close":1640,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"pip-all","update_count":21,"packages":[{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"rich","old_version":"14.3.3","new_version":"14.3.4","repository_url":"https://github.com/Textualize/rich"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"pytest","old_version":"9.0.2","new_version":"9.0.3","repository_url":"https://github.com/pytest-dev/pytest"},{"name":"ruff","old_version":"0.15.5","new_version":"0.15.10","repository_url":"https://github.com/astral-sh/ruff"},{"name":"types-pyyaml","old_version":"6.0.12.20250915","new_version":"6.0.12.20260408","repository_url":"https://github.com/python/typeshed"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.5","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"librt","old_version":"0.8.1","new_version":"0.9.0","repository_url":"https://github.com/mypyc/librt"},{"name":"mkdocs-get-deps","old_version":"0.2.0","new_version":"0.2.2","repository_url":"https://github.com/mkdocs/get-deps"},{"name":"mkdocs-material","old_version":"9.7.4","new_version":"9.7.6","repository_url":"https://github.com/squidfunk/mkdocs-material"},{"name":"msal","old_version":"1.35.1","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"platformdirs","old_version":"4.9.4","new_version":"4.9.6","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pymdown-extensions","old_version":"10.21","new_version":"10.21.2","repository_url":"https://github.com/facelessuser/pymdown-extensions"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"setuptools-scm","old_version":"9.2.2","new_version":"10.0.5","repository_url":"https://github.com/pypa/setuptools-scm"}],"path":null,"ecosystem":"pip"},"body":"Bumps the pip-all group with 21 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [rich](https://github.com/Textualize/rich) | `14.3.3` | `14.3.4` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [pytest](https://github.com/pytest-dev/pytest) | `9.0.2` | `9.0.3` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.5` | `0.15.10` |\n| [types-pyyaml](https://github.com/python/typeshed) | `6.0.12.20250915` | `6.0.12.20260408` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.5` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [librt](https://github.com/mypyc/librt) | `0.8.1` | `0.9.0` |\n| [mkdocs-get-deps](https://github.com/mkdocs/get-deps) | `0.2.0` | `0.2.2` |\n| [mkdocs-material](https://github.com/squidfunk/mkdocs-material) | `9.7.4` | `9.7.6` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.1` | `1.36.0` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.4` | `4.9.6` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [pymdown-extensions](https://github.com/facelessuser/pymdown-extensions) | `10.21` | `10.21.2` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [setuptools-scm](https://github.com/pypa/setuptools-scm) | `9.2.2` | `10.0.5` |\n\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `rich` from 14.3.3 to 14.3.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Textualize/rich/releases\"\u003erich's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eThe Faster Startup Release\u003c/h2\u003e\n\u003cp\u003eNo new features in this release, but there should be improved startup time for Rich apps, and potentially improved runtime if you have a lot of links.\u003c/p\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/blob/master/CHANGELOG.md\"\u003erich's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e[14.3.4] - 2026-04-11\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eImproved import time with lazy loading \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/4070\"\u003eTextualize/rich#4070\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eChanged link id generation to avoid random number generation at runtime \u003ca href=\"https://redirect.github.com/Textualize/rich/pull/3845\"\u003eTextualize/rich#3845\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/Textualize/rich/commit/ee8378c3bbbd7c75abc2f55c6c19e83b218ae81d\"\u003e\u003ccode\u003eee8378c\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4073\"\u003e#4073\u003c/a\u003e from Textualize/bump1434\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/f441a326f10af5dc0cd570dadaed16e7f7035fc3\"\u003e\u003ccode\u003ef441a32\u003c/code\u003e\u003c/a\u003e changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/b3167144fea59b02e257c1361f5e0c5832065ccd\"\u003e\u003ccode\u003eb316714\u003c/code\u003e\u003c/a\u003e bump\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/a86dce09714f4e5195cce8c15fce7a586d7b562a\"\u003e\u003ccode\u003ea86dce0\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/3845\"\u003e#3845\u003c/a\u003e from akx/faster-ids\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/7f40063da781f4990d21423f23f7ccb3165ce0bd\"\u003e\u003ccode\u003e7f40063\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/Textualize/rich/issues/4070\"\u003e#4070\u003c/a\u003e from KRRT7/upstream/lazy-traceback-logging\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/6729c6f6c4ee24a13a94d825cb7ce66b52206db2\"\u003e\u003ccode\u003e6729c6f\u003c/code\u003e\u003c/a\u003e typing\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/64f2f1cf89a698f17f5b2c801b014dc8aced1177\"\u003e\u003ccode\u003e64f2f1c\u003c/code\u003e\u003c/a\u003e import\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/de4a8bd5746a3cbda6d8ead9f75cbf49f868a639\"\u003e\u003ccode\u003ede4a8bd\u003c/code\u003e\u003c/a\u003e lazy is_expandable\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/e5b7b3199fecb1f7d1fbc3d3d0df800fa6234830\"\u003e\u003ccode\u003ee5b7b31\u003c/code\u003e\u003c/a\u003e no need to rename locals\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Textualize/rich/commit/5d6e2d72e4012eb594e131a8319dbd4165d97eda\"\u003e\u003ccode\u003e5d6e2d7\u003c/code\u003e\u003c/a\u003e fix docstring\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Textualize/rich/compare/v14.3.3...v14.3.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 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.19.1...v1.20.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.2 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\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/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.2...9.0.3\"\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.5 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.15.5...0.15.10\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `types-pyyaml` from 6.0.12.20250915 to 6.0.12.20260408\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/python/typeshed/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `anyio` from 4.12.1 to 4.13.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/agronholm/anyio/releases\"\u003eanyio's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.13.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9\u003c/li\u003e\n\u003cli\u003eAdded a \u003ccode\u003ettl\u003c/code\u003e parameter to the \u003ccode\u003eanyio.functools.lru_cache\u003c/code\u003e wrapper (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1073\"\u003e#1073\u003c/a\u003e; PR by \u003ca href=\"https://github.com/Graeme22\"\u003e\u003ccode\u003e@​Graeme22\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eWidened the type annotations of file I/O streams to accept \u003ccode\u003eIO[bytes]\u003c/code\u003e instead of just \u003ccode\u003eBinaryIO\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1078\"\u003e#1078\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eanyio.Path\u003c/code\u003e not being compatible with Python 3.15 due to the removal of \u003ccode\u003epathlib.Path.is_reserved()\u003c/code\u003e and the addition of \u003ccode\u003epathlib.Path.__vfspath__()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1061\"\u003e#1061\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eBrokenResourceError\u003c/code\u003e raised by the asyncio \u003ccode\u003eSocketStream\u003c/code\u003e not having the original exception as its cause (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1055\"\u003e#1055\u003c/a\u003e; PR by \u003ca href=\"https://github.com/veeceey\"\u003e\u003ccode\u003e@​veeceey\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the \u003ccode\u003eTypeError\u003c/code\u003e raised when using \u0026quot;func\u0026quot; as a parameter name in \u003ccode\u003epytest.mark.parametrize\u003c/code\u003e when using the pytest plugin (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1068\"\u003e#1068\u003c/a\u003e; PR by \u003ca href=\"https://github.com/JohnnyDeuss\"\u003e\u003ccode\u003e@​JohnnyDeuss\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed the pytest plugin not running tests that had the \u003ccode\u003eanyio\u003c/code\u003e marker added programmatically via \u003ccode\u003epytest_collection_modifyitems\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/422\"\u003e#422\u003c/a\u003e; PR by \u003ca href=\"https://github.com/chbndrhnns\"\u003e\u003ccode\u003e@​chbndrhnns\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when they are contained in an exception group alongside non-cancellation exceptions (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1091\"\u003e#1091\u003c/a\u003e; PR by \u003ca href=\"https://github.com/gschaffner\"\u003e\u003ccode\u003e@​gschaffner\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eCondition.wait()\u003c/code\u003e not passing on a notification when the task is cancelled but already received a notification\u003c/li\u003e\n\u003cli\u003eFixed inverted condition in the process pool shutdown phase which would cause still-running pooled processes not to be terminated (\u003ca href=\"https://redirect.github.com/agronholm/anyio/pull/1074\"\u003e#1074\u003c/a\u003e; PR 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\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/agronholm/anyio/commit/afbe93ca9d0c447adf26e9c1715ac20870622bf2\"\u003e\u003ccode\u003eafbe93c\u003c/code\u003e\u003c/a\u003e Bumped up the version\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/33bdf2e4b4f40c2df178123746147a6d2471808d\"\u003e\u003ccode\u003e33bdf2e\u003c/code\u003e\u003c/a\u003e Rearranged the changelog entries\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/19e09e25bc5a23dd78a577d8c3909dd377057c78\"\u003e\u003ccode\u003e19e09e2\u003c/code\u003e\u003c/a\u003e Fixed inverted condition in _forcibly_shutdown_process_pool_on_exit (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1074\"\u003e#1074\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/9369d80b9e8292f2a892a9d5c73923c6a28aa08c\"\u003e\u003ccode\u003e9369d80\u003c/code\u003e\u003c/a\u003e Fixed Condition.wait() not handing over notification when cancelled\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/6f122abdc6f6b166c6b6ac27d36d55cdf8fa08e8\"\u003e\u003ccode\u003e6f122ab\u003c/code\u003e\u003c/a\u003e Fixed cancellation exceptions leaking from a \u003ccode\u003eCancelScope\u003c/code\u003e on asyncio when th...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/beaa45aff568a4020f2faf317321dd92f0e1f4a0\"\u003e\u003ccode\u003ebeaa45a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1097\"\u003e#1097\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/602f6606dcf3f37702686a4f3e161328c537b07f\"\u003e\u003ccode\u003e602f660\u003c/code\u003e\u003c/a\u003e Widened type annotations to accept IO[bytes] in file streams\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/b5dcd45170701a756ba634197398f05d4710cab3\"\u003e\u003ccode\u003eb5dcd45\u003c/code\u003e\u003c/a\u003e Added note about erasing the template\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/d68670b3b4e0917d4caff2de082e03220f3e05a1\"\u003e\u003ccode\u003ed68670b\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1090\"\u003e#1090\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/agronholm/anyio/commit/fc17a22dd948e6a3d90d99908813f0010dfc3d2c\"\u003e\u003ccode\u003efc17a22\u003c/code\u003e\u003c/a\u003e tweak to_thread docs about abandon_on_cancel (\u003ca href=\"https://redirect.github.com/agronholm/anyio/issues/1088\"\u003e#1088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/agronholm/anyio/compare/4.12.1...4.13.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.39.0\u003c/h2\u003e\n\u003ch2\u003e1.39.0 (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the previously undocumented \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable from \u003ccode\u003eAZURE_CLOUD\u003c/code\u003e to \u003ccode\u003eAZURE_SDK_CLOUD_CONF\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/dee80a8fd745ddab91933f05e795cf41e10ab8fe\"\u003e\u003ccode\u003edee80a8\u003c/code\u003e\u003c/a\u003e Changed the \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45763\"\u003e#45763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a2d11701462371d3f8b38b935f77f2e5070a5bf7\"\u003e\u003ccode\u003ea2d1170\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45671\"\u003e#45671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.5 to 3.4.7\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.7\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/blob/master/CHANGELOG.md\"\u003echarset-normalizer's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.6...3.4.7\"\u003e3.4.7\u003c/a\u003e (2026-04-02)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003ePre-built optimized version using mypy[c] v1.20.\u003c/li\u003e\n\u003cli\u003eRelax \u003ccode\u003esetuptools\u003c/code\u003e constraint to \u003ccode\u003esetuptools\u0026gt;=68,\u0026lt;82.1\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eCorrectly remove SIG remnant in utf-7 decoded string. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/718\"\u003e#718\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/716\"\u003e#716\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when passing multiple files in. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/702\"\u003e#702\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eMisc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFreethreaded pre-built wheels now shipped in PyPI starting with 3.14t. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/616\"\u003e#616\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/jawah/charset_normalizer/commit/0f07891bf516b5d5231f1bd4dd2d8da7d4d09a9a\"\u003e\u003ccode\u003e0f07891\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/729\"\u003e#729\u003c/a\u003e from jawah/release-3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/fdbeb299479e8f4d737e4d227cd0b2bd5d273dc0\"\u003e\u003ccode\u003efdbeb29\u003c/code\u003e\u003c/a\u003e chore: update dev, and ci requirements\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b66f922bfbdbdd9dd46af18a8964d4fb888756d4\"\u003e\u003ccode\u003eb66f922\u003c/code\u003e\u003c/a\u003e chore: add ft classifier\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/f94249d0a2c712f2d03124f4de6b77f5e03aaa96\"\u003e\u003ccode\u003ef94249d\u003c/code\u003e\u003c/a\u003e chore: add test cases for utf_7 recent fix\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/95c866f6c984bbd043e7e3ed0628aa4f3f8d5a26\"\u003e\u003ccode\u003e95c866f\u003c/code\u003e\u003c/a\u003e chore: bump version to 3.4.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/4f429bb764c7e893f99bb4bceb60856da1baacfb\"\u003e\u003ccode\u003e4f429bb\u003c/code\u003e\u003c/a\u003e chore: bump mypy pre-commit to v1.20\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/b579cd6cab9bd83aa3fc0ca169d4df022bf4888c\"\u003e\u003ccode\u003eb579cd6\u003c/code\u003e\u003c/a\u003e fix: correctly remove SIG remnant in utf-7 decoded string\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/58bf944a77cc0883fc46a6ee8edac3549fea5d59\"\u003e\u003ccode\u003e58bf944\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump github/codeql-action from 4.32.4 to 4.35.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/728\"\u003e#728\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/44cf8a1b676a2532a8f1694e62e4f4f98f9132e1\"\u003e\u003ccode\u003e44cf8a1\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/726\"\u003e#726\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/jawah/charset_normalizer/commit/362bc20073f737b1ba4ca2f68cffb0c4cc024d20\"\u003e\u003ccode\u003e362bc20\u003c/code\u003e\u003c/a\u003e :arrow_up: Bump docker/setup-qemu-action from 3.7.0 to 4.0.0 (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/725\"\u003e#725\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/jawah/charset_normalizer/compare/3.4.5...3.4.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `click` from 8.3.1 to 8.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pallets/click/releases\"\u003eclick's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e8.3.2\u003c/h2\u003e\n\u003cp\u003eThis is the Click 8.3.2 fix release, which fixes 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/click/8.3.2/\"\u003ehttps://pypi.org/project/click/8.3.2/\u003c/a\u003e\nChanges: \u003ca href=\"https://click.palletsprojects.com/page/changes/#version-8-3-2\"\u003ehttps://click.palletsprojects.com/page/changes/#version-8-3-2\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/click/milestone/29\"\u003ehttps://github.com/pallets/click/milestone/29\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3084\"\u003e#3084\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3152\"\u003e#3152\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/3136\"\u003e#3136\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3199\"\u003e#3199\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3202\"\u003e#3202\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3209\"\u003e#3209\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3212\"\u003e#3212\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3224\"\u003e#3224\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n\u003ca href=\"https://redirect.github.com/pallets/click/issues/824\"\u003e#824\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2991\"\u003e#2991\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/2993\"\u003e#2993\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3110\"\u003e#3110\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3140\"\u003e#3140\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3139\"\u003e#3139\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/pallets/click/issues/3121\"\u003e#3121\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3201\"\u003e#3201\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3213\"\u003e#3213\u003c/a\u003e \u003ca href=\"https://redirect.github.com/pallets/click/issues/3225\"\u003e#3225\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/click/blob/main/CHANGES.rst\"\u003eclick's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 8.3.2\u003c/h2\u003e\n\u003cp\u003eReleased 2026-04-02\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix handling of \u003ccode\u003eflag_value\u003c/code\u003e when \u003ccode\u003eis_flag=False\u003c/code\u003e to allow such options to be\nused without an explicit value. :issue:\u003ccode\u003e3084\u003c/code\u003e :pr:\u003ccode\u003e3152\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eHide \u003ccode\u003eSentinel.UNSET\u003c/code\u003e values as \u003ccode\u003eNone\u003c/code\u003e when using \u003ccode\u003elookup_default()\u003c/code\u003e.\n:issue:\u003ccode\u003e3136\u003c/code\u003e :pr:\u003ccode\u003e3199\u003c/code\u003e :pr:\u003ccode\u003e3202\u003c/code\u003e :pr:\u003ccode\u003e3209\u003c/code\u003e :pr:\u003ccode\u003e3212\u003c/code\u003e :pr:\u003ccode\u003e3224\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003ePrevent \u003ccode\u003e_NamedTextIOWrapper\u003c/code\u003e from closing streams owned by \u003ccode\u003eStreamMixer\u003c/code\u003e.\n:issue:\u003ccode\u003e824\u003c/code\u003e :issue:\u003ccode\u003e2991\u003c/code\u003e :issue:\u003ccode\u003e2993\u003c/code\u003e :issue:\u003ccode\u003e3110\u003c/code\u003e :pr:\u003ccode\u003e3139\u003c/code\u003e :pr:\u003ccode\u003e3140\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eAdd comprehensive tests for \u003ccode\u003eCliRunner\u003c/code\u003e stream lifecycle, covering\nlogging interaction, multi-threaded safety, and sequential invocation\nisolation. Add high-iteration stress tests behind a \u003ccode\u003estress\u003c/code\u003e marker\nwith a dedicated CI job. :pr:\u003ccode\u003e3139\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix callable \u003ccode\u003eflag_value\u003c/code\u003e being instantiated when used as a default via\n\u003ccode\u003edefault=True\u003c/code\u003e. :issue:\u003ccode\u003e3121\u003c/code\u003e :pr:\u003ccode\u003e3201\u003c/code\u003e :pr:\u003ccode\u003e3213\u003c/code\u003e :pr:\u003ccode\u003e3225\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/click/commit/052c006033729bbb422cbdad0c4fee988ecb5aa5\"\u003e\u003ccode\u003e052c006\u003c/code\u003e\u003c/a\u003e Change update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/502b7ce7b131473ef00a3586e60bb000f33b4c43\"\u003e\u003ccode\u003e502b7ce\u003c/code\u003e\u003c/a\u003e Merge branch 'stable' of \u003ca href=\"https://github.com/pallets/click\"\u003ehttps://github.com/pallets/click\u003c/a\u003e into release-8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/a0a37e411820861d48e21b131fdd840abaf746e0\"\u003e\u003ccode\u003ea0a37e4\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3301\"\u003e#3301\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/57be6fc2b40eb40279d022e6aabc983ee0dfb7a9\"\u003e\u003ccode\u003e57be6fc\u003c/code\u003e\u003c/a\u003e Change publish to werkzeug latest.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/781d6a88bdd30229e72a84cd6753b0235f339679\"\u003e\u003ccode\u003e781d6a8\u003c/code\u003e\u003c/a\u003e Update publish workflows (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3266\"\u003e#3266\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/ff795b66ba945239c779b528171f5fe4536cf844\"\u003e\u003ccode\u003eff795b6\u003c/code\u003e\u003c/a\u003e Update precommit pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/dd87ef4f9fa7d6f13e14885e9a6842a21ededebc\"\u003e\u003ccode\u003edd87ef4\u003c/code\u003e\u003c/a\u003e Update github action pins with tox\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/93d3f9d22e90035bc2b51c2183c15bd4a021376f\"\u003e\u003ccode\u003e93d3f9d\u003c/code\u003e\u003c/a\u003e Release version 8.3.2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/3299ba1a8a5de34b24a7226a683a837d8a0857e7\"\u003e\u003ccode\u003e3299ba1\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog. (\u003ca href=\"https://redirect.github.com/pallets/click/issues/3264\"\u003e#3264\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/click/commit/b7f62c4d002e5b5bca3ebef6b995b7338740fe6f\"\u003e\u003ccode\u003eb7f62c4\u003c/code\u003e\u003c/a\u003e Add missing PR to changelog.\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/click/compare/8.3.1...8.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.4 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\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/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.4...7.13.5\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `librt` from 0.8.1 to 0.9.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/8f66cfe9cb3611b32741dd5b00e9049a627d6ccb\"\u003e\u003ccode\u003e8f66cfe\u003c/code\u003e\u003c/a\u003e Bump version to 0.9.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/149b3698bc3f6f7724f3fe6148938d6a4bc0d421\"\u003e\u003ccode\u003e149b369\u003c/code\u003e\u003c/a\u003e Sync mypy including extract_symbol() PR (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/37\"\u003e#37\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mypyc/librt/commit/05c11113460b73eb8ecc90adf539996012510169\"\u003e\u003ccode\u003e05c1111\u003c/code\u003e\u003c/a\u003e Use PEP 639 license metadata (\u003ca href=\"https://redirect.github.com/mypyc/librt/issues/34\"\u003e#34\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mypyc/librt/compare/v0.8.1...v0.9.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-get-deps` from 0.2.0 to 0.2.2\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/mkdocs/get-deps/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mkdocs-material` from 9.7.4 to 9.7.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/squidfunk/mkdocs-material/releases\"\u003emkdocs-material's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003emkdocs-material-9.7.6\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003emkdocs-material-9.7.5\u003c/h2\u003e\n\u003cblockquote\u003e\n\u003cp\u003e[!WARNING]\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eMaterial for MkDocs is in maintenance mode\u003c/strong\u003e\u003c/p\u003e\n\u003cp\u003eGoing forward, the Material for MkDocs team focuses on \u003ca href=\"https://zensical.org\"\u003eZensical\u003c/a\u003e, a next-gen static site generator built from first principles. We will provide critical bug fixes and security updates for Material for MkDocs until November 2026.\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003eRead the full announcement on our blog\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003ch2\u003eChanges\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\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/squidfunk/mkdocs-material/blob/master/CHANGELOG\"\u003emkdocs-material's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003emkdocs-material-9.7.6 (2026-03-19)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAutomatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.5 (2026-03-10)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eLimited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning (clarify relation with MkDocs)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.4 (2026-03-03)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHardened social cards plugin by switching to sandboxed environment\u003c/li\u003e\n\u003cli\u003eUpdated MkDocs 2.0 incompatibility warning\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.3 (2026-02-24)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8567\"\u003e#8567\u003c/a\u003e: Print MkDocs 2.0 incompatibility warning to stderr\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.2 (2026-02-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eOpened up version ranges of optional dependencies for forward-compatibility\u003c/li\u003e\n\u003cli\u003eAdded warning to 'mkdocs build' about impending MkDocs 2.0 incompatibility\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.1 (2025-12-18)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdated requests to 2.30+ to mitigate CVE in urllib\u003c/li\u003e\n\u003cli\u003eFixed privacy plugin not picking up protocol-relative URLs\u003c/li\u003e\n\u003cli\u003eFixed \u003ca href=\"https://redirect.github.com/squidfunk/mkdocs-material/issues/8542\"\u003e#8542\u003c/a\u003e: false positives and negatives captured in privacy plugin\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003emkdocs-material-9.7.0 (2025-11-11)\u003c/p\u003e\n\u003cp\u003e⚠️ Material for MkDocs is now in maintenance mode\u003c/p\u003e\n\u003cp\u003eThis is the last release of Material for MkDocs that will receive new features.\nGoing forward, the Material for MkDocs team focuses on Zensical, a next-gen\nstatic site generator built from first principles. We will provide critical\nbug fixes and security updates for Material for MkDocs for 12 months at least.\u003c/p\u003e\n\u003cp\u003eRead the full announcement on our blog:\n\u003ca href=\"https://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\"\u003ehttps://squidfunk.github.io/mkdocs-material/blog/2025/11/05/zensical/\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003eThis release includes all features that were previously exclusive to the\nInsiders edition. These features are now freely available to everyone.\u003c/p\u003e\n\u003cp\u003eNote on deprecated plugins: The projects and typeset plugins are included in\nthis release, but must be considered deprecated. Both plugins proved\nunsustainable to maintain and represent architectural dead ends. They are\nprovided as-is without ongoing support.\u003c/p\u003e\n\u003cp\u003eChanges:\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/squidfunk/mkdocs-material/commit/6c52ed6289b171a153875491f059a94819ec3e10\"\u003e\u003ccode\u003e6c52ed6\u003c/code\u003e\u003c/a\u003e Prepare 9.7.6 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/51d9b76636431814df924bcda27485b16023978b\"\u003e\u003ccode\u003e51d9b76\u003c/code\u003e\u003c/a\u003e Automatically disable MkDocs 2.0 warning for forks of MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/6f9a48b4048650341a654d9757da57fc1e3e323d\"\u003e\u003ccode\u003e6f9a48b\u003c/code\u003e\u003c/a\u003e Updated links\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/00b9933e5821fd852700268767d4fd53ae1ce1cb\"\u003e\u003ccode\u003e00b9933\u003c/code\u003e\u003c/a\u003e Prepare 9.7.5 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/37683d12c9cd62309aa917237741ee0886709b7c\"\u003e\u003ccode\u003e37683d1\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/199e31598055d5d6ea538618804c7558f5d81047\"\u003e\u003ccode\u003e199e315\u003c/code\u003e\u003c/a\u003e Updated warning message to clarify relation to MkDocs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/10258334eb13545e6d708cf121c3867bfbdb6017\"\u003e\u003ccode\u003e1025833\u003c/code\u003e\u003c/a\u003e Limited version range of mkdocs to \u0026lt;2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/1532f523f6c650c9d6fd16229ee8bec0759b4151\"\u003e\u003ccode\u003e1532f52\u003c/code\u003e\u003c/a\u003e Added update log to blog post\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/d0c8b2862a966f5f268d4a4c35bb4fcfccebb9b1\"\u003e\u003ccode\u003ed0c8b28\u003c/code\u003e\u003c/a\u003e Updated dependencies to fix vulnerabilities\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/squidfunk/mkdocs-material/commit/71d48699a0e2bef231e796818c4dc20b230a5f45\"\u003e\u003ccode\u003e71d4869\u003c/code\u003e\u003c/a\u003e Updated blog post on MkDocs 2.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/squidfunk/mkdocs-material/compare/9.7.4...9.7.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.35.1 to 1.36.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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://gi...\n\n_Description has been truncated_","html_url":"https://github.com/maxvanp/az-rbac-watch/pull/23","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/maxvanp%2Faz-rbac-watch/issues/23","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/23/packages"}},{"old_version":"1.35.1","new_version":"1.36.0","update_type":"minor","path":"/it/python","pr_created_at":"2026-04-10T08:33:51.000Z","version_change":"1.35.1 → 1.36.0","issue":{"uuid":"4237784683","node_id":"PR_kwDOE0q91s7RY3tL","number":7589,"state":"open","title":"chore(deps-dev): bump msal from 1.35.1 to 1.36.0 in /it/python","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-10T08:33:51.000Z","updated_at":"2026-04-10T12:15:06.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps-dev)","packages":[{"name":"msal","old_version":"1.35.1","new_version":"1.36.0","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":"/it/python","ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.35.1 to 1.36.0.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.36.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix the PoP flow in the console app by \u003ca href=\"https://github.com/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd ADO CI, SDL, and release pipelines with e2e test enablement by \u003ca href=\"https://github.com/RyAuld\"\u003e\u003ccode\u003e@​RyAuld\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/890\"\u003eAzureAD/microsoft-authentication-library-for-python#890\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd documentation for Managed Identity v2 Hackathon by \u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePotential fix for code scanning alert no. 74: Workflow does not contain permissions by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/884\"\u003eAzureAD/microsoft-authentication-library-for-python#884\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdded withFmi method for cca app by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/876\"\u003eAzureAD/microsoft-authentication-library-for-python#876\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse cryptographically secure randomness for PKCE, state, and nonce generation by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/894\"\u003eAzureAD/microsoft-authentication-library-for-python#894\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix OIDC issuer domain spoofing in B2C host validation by \u003ca href=\"https://github.com/4gust\"\u003e\u003ccode\u003e@​4gust\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/896\"\u003eAzureAD/microsoft-authentication-library-for-python#896\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/PetarSDimov\"\u003e\u003ccode\u003e@​PetarSDimov\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/887\"\u003eAzureAD/microsoft-authentication-library-for-python#887\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/gladjohn\"\u003e\u003ccode\u003e@​gladjohn\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/885\"\u003eAzureAD/microsoft-authentication-library-for-python#885\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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/AzureAD/microsoft-authentication-library-for-python/commit/4a2cb98928a48ff3d9aee8fbd395dad03c510e48\"\u003e\u003ccode\u003e4a2cb98\u003c/code\u003e\u003c/a\u003e Update sku.py\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/a3ba722660e838f58659f8f501a2624044266247\"\u003e\u003ccode\u003ea3ba722\u003c/code\u003e\u003c/a\u003e Fix OIDC issuer domain spoofing in B2C host validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6a92f2498d221c673d6e725e7f99d958bd189c5a\"\u003e\u003ccode\u003e6a92f24\u003c/code\u003e\u003c/a\u003e Use cryptographically secure randomness for PKCE, state, and nonce generation...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/ecf515a542feb3bcdfa34ed69144c793ed3be4b6\"\u003e\u003ccode\u003eecf515a\u003c/code\u003e\u003c/a\u003e Added withFmi method for cca app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/876\"\u003e#876\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/eb7806838f0bc13f2f38fd1bf62a1f8991bbe197\"\u003e\u003ccode\u003eeb78068\u003c/code\u003e\u003c/a\u003e Potential fix for code scanning alert no. 74: Workflow does not contain permi...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/6de712edbf3310aa4af163a51ac8b9eeb9dbe65c\"\u003e\u003ccode\u003e6de712e\u003c/code\u003e\u003c/a\u003e Add documentation for Managed Identity v2 Hackathon (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1f71ede35133ed2a2fa707928e60de6d4f067566\"\u003e\u003ccode\u003e1f71ede\u003c/code\u003e\u003c/a\u003e Add ADO CI, SDL, and release pipelines with e2e test enablement (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/890\"\u003e#890\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/e4e692c5acaa798bd3f24f8178b042fd9a98ab0d\"\u003e\u003ccode\u003ee4e692c\u003c/code\u003e\u003c/a\u003e Fix the PoP flow in the console app (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.1...1.36.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=msal\u0026package-manager=pip\u0026previous-version=1.35.1\u0026new-version=1.36.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/microsoft/kiota/pull/7589","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fkiota/issues/7589","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/7589/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":null,"pr_created_at":"2026-04-06T09:52:23.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4210901163","node_id":"PR_kwDORZyJE87QKwd3","number":3,"state":"open","title":"deps(deps): bump the minor-patch group across 1 directory with 23 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-06T09:52:23.000Z","updated_at":"2026-04-06T09:52:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"deps(deps): bump","group_name":"minor-patch","update_count":23,"packages":[{"name":"fastapi","old_version":"0.135.1","new_version":"0.135.3","repository_url":"https://github.com/fastapi/fastapi"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.44.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"sqlalchemy","old_version":"2.0.48","new_version":"2.0.49","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"python-multipart","old_version":"0.0.22","new_version":"0.0.24","repository_url":"https://github.com/Kludex/python-multipart"},{"name":"requests","old_version":"2.33.0","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"redis","old_version":"7.3.0","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"ruff","old_version":"0.15.4","new_version":"0.15.9","repository_url":"https://github.com/astral-sh/ruff"},{"name":"mypy","old_version":"1.19.1","new_version":"1.20.0","repository_url":"https://github.com/python/mypy"},{"name":"locust","old_version":"2.43.3","new_version":"2.43.4","repository_url":"https://github.com/locustio/locust"},{"name":"anyio","old_version":"4.12.1","new_version":"4.13.0","repository_url":"https://github.com/agronholm/anyio"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.7","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"click","old_version":"8.3.1","new_version":"8.3.2","repository_url":"https://github.com/pallets/click"},{"name":"googleapis-common-protos","old_version":"1.73.0","new_version":"1.74.0","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"importlib-metadata","old_version":"8.7.1","new_version":"8.9.0","repository_url":"https://github.com/python/importlib_metadata"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.45.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"coverage","old_version":"7.13.4","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.8","repository_url":"https://github.com/pallets/werkzeug"}],"path":null,"ecosystem":"pip"},"body":"Bumps the minor-patch group with 23 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [fastapi](https://github.com/fastapi/fastapi) | `0.135.1` | `0.135.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.44.0` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.48` | `2.0.49` |\n| [python-multipart](https://github.com/Kludex/python-multipart) | `0.0.22` | `0.0.24` |\n| [requests](https://github.com/psf/requests) | `2.33.0` | `2.33.1` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [redis](https://github.com/redis/redis-py) | `7.3.0` | `7.4.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.9` |\n| [mypy](https://github.com/python/mypy) | `1.19.1` | `1.20.0` |\n| [locust](https://github.com/locustio/locust) | `2.43.3` | `2.43.4` |\n| [anyio](https://github.com/agronholm/anyio) | `4.12.1` | `4.13.0` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.7` |\n| [click](https://github.com/pallets/click) | `8.3.1` | `8.3.2` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.73.0` | `1.74.0` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [importlib-metadata](https://github.com/python/importlib_metadata) | `8.7.1` | `8.9.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.45.0` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.4` | `7.13.5` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.8` |\n\n\nUpdates `fastapi` from 0.135.1 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.135.1...0.135.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.41.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\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.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\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/8d397c73191b49c6d5280098d7c09dbe474e00bf\"\u003e\u003ccode\u003e8d397c7\u003c/code\u003e\u003c/a\u003e Version 0.43.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2885\"\u003e#2885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/587042d68ff6c813ec0d8cfafaa820ebe7229d23\"\u003e\u003ccode\u003e587042d\u003c/code\u003e\u003c/a\u003e 🐛 Emit \u003ccode\u003ehttp.disconnect\u003c/code\u003e ASGI \u003ccode\u003ereceive()\u003c/code\u003e event on server shutting down for s...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/c9a75fb67b2e969253a41ef4ad447e013eee879e\"\u003e\u003ccode\u003ec9a75fb\u003c/code\u003e\u003c/a\u003e chore(deps): bump the github-actions group with 3 updates (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2878\"\u003e#2878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/84fd578224e36766efb056585cb6cc5171270089\"\u003e\u003ccode\u003e84fd578\u003c/code\u003e\u003c/a\u003e chore(deps): bump pygments from 2.19.2 to 2.20.0 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2877\"\u003e#2877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/cd52d34b55d898180a65cfc01a6a88aac54c65c3\"\u003e\u003ccode\u003ecd52d34\u003c/code\u003e\u003c/a\u003e Use 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\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/5211880320b2e99a532eb121808039404da234ab\"\u003e\u003ccode\u003e5211880\u003c/code\u003e\u003c/a\u003e Drop cast in ASGI types (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2875\"\u003e#2875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/1cb8e747e2817ee46a4c0d44139e46b3b1f8fab6\"\u003e\u003ccode\u003e1cb8e74\u003c/code\u003e\u003c/a\u003e Add websocket 500 fallback header test (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2874\"\u003e#2874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/uvicorn/commit/28efbb24bd590f1f943cbc2bf84f197268a8c6d8\"\u003e\u003ccode\u003e28efbb2\u003c/code\u003e\u003c/a\u003e chore(deps-dev): bump cryptography from 46.0.5 to 46.0.6 (\u003ca href=\"https://redirect.github.com/Kludex/uvicorn/issues/2873\"\u003e#2873\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/uvicorn/compare/0.41.0...0.44.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.48 to 2.0.49\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.49\u003c/h1\u003e\n\u003cp\u003eReleased: April 3, 2026\u003c/p\u003e\n\u003ch2\u003eorm\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where \u003ccode\u003e_orm.Session.get()\u003c/code\u003e would bypass the identity map\nand emit unnecessary SQL when \u003ccode\u003ewith_for_update=False\u003c/code\u003e was passed,\nrather than treating it equivalently to the default of \u003ccode\u003eNone\u003c/code\u003e.\nPull request courtesy of Joshua Swanson.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13176\"\u003e#13176\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug]\u003c/strong\u003e Fixed issue where chained \u003ccode\u003e_orm.joinedload()\u003c/code\u003e options would not be\napplied correctly when the final relationship in the chain is declared on a\nbase mapper and accessed through a subclass mapper in a\n\u003ccode\u003e_orm.with_polymorphic()\u003c/code\u003e query. The path registry now correctly\ncomputes the natural path when a property declared on a base class is\naccessed through a path containing a subclass mapper, ensuring the loader\noption can be located during query compilation.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13193\"\u003e#13193\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using \u003ccode\u003e_orm.Load.options()\u003c/code\u003e to apply a chained loader\noption such as \u003ccode\u003e_orm.joinedload()\u003c/code\u003e or \u003ccode\u003e_orm.selectinload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot generate the necessary clauses for the polymorphic subclasses. The\npolymorphic loading strategy is now correctly propagated when using a call\nsuch as \u003ccode\u003ejoinedload(A.b).options(joinedload(B.c.of_type(poly)))\u003c/code\u003e to match\nthe behavior of direct chaining e.g.\n\u003ccode\u003ejoinedload(A.b).joinedload(B.c.of_type(poly))\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13202\"\u003e#13202\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[orm] [bug] [inheritance]\u003c/strong\u003e Fixed issue where using chained loader options such as\n\u003ccode\u003e_orm.selectinload()\u003c/code\u003e after \u003ccode\u003e_orm.joinedload()\u003c/code\u003e with\n\u003ccode\u003e_orm.PropComparator.of_type()\u003c/code\u003e for a polymorphic relationship would\nnot properly apply the chained loader option. The loader option is now\ncorrectly applied when using a call such as\n\u003ccode\u003ejoinedload(A.b.of_type(poly)).selectinload(poly.SubClass.c)\u003c/code\u003e to eagerly\nload related objects.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13209\"\u003e#13209\u003c/a\u003e\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003etyping\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003cstrong\u003e[typing] [bug]\u003c/strong\u003e Fixed a typing issue where the typed members of :data:\u003ccode\u003e.func\u003c/code\u003e would return\nthe appropriate class of the same name, however this creates an issue for\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/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `python-multipart` from 0.0.22 to 0.0.24\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Kludex/python-multipart/releases\"\u003epython-multipart's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 0.0.24\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e 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/python-multipart/pull/244\"\u003eKludex/python-multipart#244\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/python-multipart/compare/0.0.23...0.0.24\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.23...0.0.24\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eVersion 0.0.23\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback by \u003ca href=\"https://github.com/jhnstrk\"\u003e\u003ccode\u003e@​jhnstrk\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003eKludex/python-multipart#196\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e by \u003ca href=\"https://github.com/bysiber\"\u003e\u003ccode\u003e@​bysiber\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003eKludex/python-multipart#229\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e by \u003ca href=\"https://github.com/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\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/Chesars\"\u003e\u003ccode\u003e@​Chesars\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003eKludex/python-multipart#227\u003c/a\u003e\u003c/li\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/python-multipart/pull/229\"\u003eKludex/python-multipart#229\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/python-multipart/compare/0.0.22...0.0.23\"\u003ehttps://github.com/Kludex/python-multipart/compare/0.0.22...0.0.23\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/python-multipart/blob/master/CHANGELOG.md\"\u003epython-multipart's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e0.0.24 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eValidate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/244\"\u003e#244\u003c/a\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e0.0.23 (2026-04-05)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/196\"\u003e#196\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eReturn processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/229\"\u003e#229\u003c/a\u003e.\u003c/li\u003e\n\u003cli\u003eCleanup metadata dunders from \u003ccode\u003e__init__.py\u003c/code\u003e \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/pull/227\"\u003e#227\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/python-multipart/commit/b7cc76dbb30d647c0eb7288221d08a6520317b7a\"\u003e\u003ccode\u003eb7cc76d\u003c/code\u003e\u003c/a\u003e Version 0.0.24 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/245\"\u003e#245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/8f1838d2a20f31cd783e6c3ecf8eb6085aeadaf0\"\u003e\u003ccode\u003e8f1838d\u003c/code\u003e\u003c/a\u003e Validate \u003ccode\u003echunk_size\u003c/code\u003e in \u003ccode\u003eparse_form()\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/244\"\u003e#244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/2582c83be4e6cad00b8edaad730455e20e9eb1af\"\u003e\u003ccode\u003e2582c83\u003c/code\u003e\u003c/a\u003e Restore mkdocstrings handler options to handler level (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/243\"\u003e#243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/8f1dbede94b3eff41fafa77a56eaab6824bf18c4\"\u003e\u003ccode\u003e8f1dbed\u003c/code\u003e\u003c/a\u003e Harden GitHub Actions workflows and add zizmor audit (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/242\"\u003e#242\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/3a4be31e68a224e0cd18c966d6cbdfc28cab9603\"\u003e\u003ccode\u003e3a4be31\u003c/code\u003e\u003c/a\u003e Unbreak docs build on newer pygments/mkdocstrings (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/241\"\u003e#241\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/e59b6b7b60e9993ead149a15a2ec4db73453fe0a\"\u003e\u003ccode\u003ee59b6b7\u003c/code\u003e\u003c/a\u003e Add \u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/227\"\u003e#227\u003c/a\u003e to changelog (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/239\"\u003e#239\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/4bd03ea40a556611f244a9c09da2b21ab458bc98\"\u003e\u003ccode\u003e4bd03ea\u003c/code\u003e\u003c/a\u003e Version 0.0.23 (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/238\"\u003e#238\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/aa6f106ea81c4118e829d9125a14400ff23b65d3\"\u003e\u003ccode\u003eaa6f106\u003c/code\u003e\u003c/a\u003e Return processed length from \u003ccode\u003eQuerystringParser._internal_write\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/229\"\u003e#229\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/c85631946a4125edf81fa64f0d1bc6966ed79aeb\"\u003e\u003ccode\u003ec856319\u003c/code\u003e\u003c/a\u003e Remove unused \u003ccode\u003etrust_x_headers\u003c/code\u003e parameter and \u003ccode\u003eX-File-Name\u003c/code\u003e fallback (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/196\"\u003e#196\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Kludex/python-multipart/commit/7303c74515fe10aaaa1131c0e0f64a83d3791b02\"\u003e\u003ccode\u003e7303c74\u003c/code\u003e\u003c/a\u003e Bump the python-packages group with 4 updates (\u003ca href=\"https://redirect.github.com/Kludex/python-multipart/issues/237\"\u003e#237\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Kludex/python-multipart/compare/0.0.22...0.0.24\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.33.0 to 2.33.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.1\u003c/h2\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/ferdnyc\"\u003e\u003ccode\u003e@​ferdnyc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7277\"\u003epsf/requests#7277\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2331-2026-03-30\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.1 (2026-03-30)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed test cleanup for CVE-2026-25645 to avoid leaving unnecessary\nfiles in the tmp directory. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed Content-Type header parsing for malformed values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved error consistency for malformed header values. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\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/psf/requests/commit/111d2b77790bf49943c0dfa09b365371c24aec7e\"\u003e\u003ccode\u003e111d2b7\u003c/code\u003e\u003c/a\u003e v2.33.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/f0198e6dfc431a2293dc16e1b1e8fcddc910a7f3\"\u003e\u003ccode\u003ef0198e6\u003c/code\u003e\u003c/a\u003e Fix malformed value parsing for Content-Type (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7309\"\u003e#7309\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/bc7dd0fc4d56e808bcdd85ac2d797b3107c89259\"\u003e\u003ccode\u003ebc7dd0f\u003c/code\u003e\u003c/a\u003e Fix cosmetic header validity parsing regex (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7308\"\u003e#7308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/4443b1a847b190010c2972a658924b98b5db6360\"\u003e\u003ccode\u003e4443b1a\u003c/code\u003e\u003c/a\u003e Fix unintended test extra (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7306\"\u003e#7306\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/389eea58dfb2f2ee096421a812e3af29c0298951\"\u003e\u003ccode\u003e389eea5\u003c/code\u003e\u003c/a\u003e Cleanup extracted file after extract_zipped_path test (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7305\"\u003e#7305\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/7407309c8a8a73aa2f4337184025d440bbedab7a\"\u003e\u003ccode\u003e7407309\u003c/code\u003e\u003c/a\u003e Packaging: DRY out extras definition (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7277\"\u003e#7277\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/psf/requests/compare/v2.33.0...v2.33.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.3.0...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.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.4 to 0.15.9\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.9\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\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\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Avoid shadowing existing \u003ccode\u003emsg\u003c/code\u003e in fix for \u003ccode\u003eEM101\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24363\"\u003e#24363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Ignore pre-initialization references in \u003ccode\u003eSIM113\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24235\"\u003e#24235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eW391\u003c/code\u003e fixes for consecutive empty notebook cells (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24236\"\u003e#24236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e nested class matching (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24273\"\u003e#24273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF072\u003c/code\u003e: skip formfeeds on dedent (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24308\"\u003e#24308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid re-using symbol in \u003ccode\u003eRUF024\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24316\"\u003e#24316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Parenthesize expression in \u003ccode\u003eRUF050\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24234\"\u003e#24234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24280\"\u003e#24280\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-simplify\u003c/code\u003e] Suppress \u003ccode\u003eSIM105\u003c/code\u003e for \u003ccode\u003eexcept*\u003c/code\u003e before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23869\"\u003e#23869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Extend \u003ccode\u003eF507\u003c/code\u003e to flag \u003ccode\u003e%\u003c/code\u003e-format strings with zero placeholders (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24215\"\u003e#24215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ccode\u003eUP018\u003c/code\u003e should detect more unnecessarily wrapped literals (UP018) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24093\"\u003e#24093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e callable scope handling to support lambdas (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24274\"\u003e#24274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF010\u003c/code\u003e: Mark fix as unsafe when it deletes a comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24270\"\u003e#24270\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enested-string-quote-style\u003c/code\u003e formatting option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24312\"\u003e#24312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Clarify RUF071 fix safety for non-path string comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24149\"\u003e#24149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Clarify import cycle wording for \u003ccode\u003eTC001\u003c/code\u003e/\u003ccode\u003eTC002\u003c/code\u003e/\u003ccode\u003eTC003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24322\"\u003e#24322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid rendering fix lines with trailing whitespace after \u003ccode\u003e|\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24343\"\u003e#24343\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tranhoangtu-it\"\u003e\u003ccode\u003e@​tranhoangtu-it\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/zsol\"\u003e\u003ccode\u003e@​zsol\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.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\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-errmsg\u003c/code\u003e] Avoid shadowing existing \u003ccode\u003emsg\u003c/code\u003e in fix for \u003ccode\u003eEM101\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24363\"\u003e#24363\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-simplify\u003c/code\u003e] Ignore pre-initialization references in \u003ccode\u003eSIM113\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24235\"\u003e#24235\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epycodestyle\u003c/code\u003e] Fix \u003ccode\u003eW391\u003c/code\u003e fixes for consecutive empty notebook cells (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24236\"\u003e#24236\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e nested class matching (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24273\"\u003e#24273\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF072\u003c/code\u003e: skip formfeeds on dedent (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24308\"\u003e#24308\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Avoid re-using symbol in \u003ccode\u003eRUF024\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24316\"\u003e#24316\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] Parenthesize expression in \u003ccode\u003eRUF050\u003c/code\u003e fix (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24234\"\u003e#24234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDisallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24280\"\u003e#24280\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-simplify\u003c/code\u003e] Suppress \u003ccode\u003eSIM105\u003c/code\u003e for \u003ccode\u003eexcept*\u003c/code\u003e before Python 3.12 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/23869\"\u003e#23869\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Extend \u003ccode\u003eF507\u003c/code\u003e to flag \u003ccode\u003e%\u003c/code\u003e-format strings with zero placeholders (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24215\"\u003e#24215\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] \u003ccode\u003eUP018\u003c/code\u003e should detect more unnecessarily wrapped literals (UP018) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24093\"\u003e#24093\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyupgrade\u003c/code\u003e] Fix \u003ccode\u003eUP008\u003c/code\u003e callable scope handling to support lambdas (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24274\"\u003e#24274\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] \u003ccode\u003eRUF010\u003c/code\u003e: Mark fix as unsafe when it deletes a comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24270\"\u003e#24270\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFormatter\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003enested-string-quote-style\u003c/code\u003e formatting option (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24312\"\u003e#24312\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bugbear\u003c/code\u003e] Clarify RUF071 fix safety for non-path string comparisons (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24149\"\u003e#24149\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-type-checking\u003c/code\u003e] Clarify import cycle wording for \u003ccode\u003eTC001\u003c/code\u003e/\u003ccode\u003eTC002\u003c/code\u003e/\u003ccode\u003eTC003\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24322\"\u003e#24322\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid rendering fix lines with trailing whitespace after \u003ccode\u003e|\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24343\"\u003e#24343\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/MichaReiser\"\u003e\u003ccode\u003e@​MichaReiser\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/tranhoangtu-it\"\u003e\u003ccode\u003e@​tranhoangtu-it\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/zsol\"\u003e\u003ccode\u003e@​zsol\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/renovate\"\u003e\u003ccode\u003e@​renovate\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/astral-sh/ruff/commit/724ccc1ae8a61e872cf58435f2c073189dc248f2\"\u003e\u003ccode\u003e724ccc1\u003c/code\u003e\u003c/a\u003e Bump 0.15.9 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24369\"\u003e#24369\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/96d9e0964cb87498ef15510ea7f896ba336659f9\"\u003e\u003ccode\u003e96d9e09\u003c/code\u003e\u003c/a\u003e [ty] Move the \u003ccode\u003edeferred\u003c/code\u003e submodule inside \u003ccode\u003einfer/builder\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24368\"\u003e#24368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/130da28d610a466721bb942e8a5e0ec47bbe3469\"\u003e\u003ccode\u003e130da28\u003c/code\u003e\u003c/a\u003e [ty] Infer the \u003ccode\u003eextra_items\u003c/code\u003e keyword argument to class-based TypedDicts as an...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/a617c54b0708a8c1eb850cc3b2a5caee21137a28\"\u003e\u003ccode\u003ea617c54\u003c/code\u003e\u003c/a\u003e [ty] Validate type qualifiers in functional TypedDict fields and the `extra_i...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d8517087c6cd0aa4f33dcede605ff642941dd74b\"\u003e\u003ccode\u003ed851708\u003c/code\u003e\u003c/a\u003e [ty] Improve robustness of various type-qualifier-related checks (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24251\"\u003e#24251\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/aecb5877c6d6fe035c03aba994ec3a7b935b8f02\"\u003e\u003ccode\u003eaecb587\u003c/code\u003e\u003c/a\u003e Only run the release-gate on workflow dispatch (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24366\"\u003e#24366\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/b88957174311030927bf564da32d05dee0eb89d9\"\u003e\u003ccode\u003eb889571\u003c/code\u003e\u003c/a\u003e [ty] Use \u003ccode\u003einfer_type_expression\u003c/code\u003e for parsing parameter annotations and return...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/3286a62be986a8d6d04d95b3bc619f06e012fa2f\"\u003e\u003ccode\u003e3286a62\u003c/code\u003e\u003c/a\u003e Add a \u0026quot;release-gate\u0026quot; step to the release workflow (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24365\"\u003e#24365\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5f88756ee10e3faf0e96c883c34c95fc78200536\"\u003e\u003ccode\u003e5f88756\u003c/code\u003e\u003c/a\u003e Disallow starred expressions as values of starred expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24280\"\u003e#24280\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/5c59f8a46965cac3470f09972196c8620faa4626\"\u003e\u003ccode\u003e5c59f8a\u003c/code\u003e\u003c/a\u003e [\u003ccode\u003epyupgrade\u003c/code\u003e] Ignore strings with string-only escapes (\u003ccode\u003eUP012\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/16058\"\u003e#16058\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.9\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mypy` from 1.19.1 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.19.1...v1.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `locust` from 2.43.3 to 2.43.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/locustio/locust/releases\"\u003elocust's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.43.4\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eadding mqtt user feature that works around the paho mqtt 340 connections limit issue by \u003ca href=\"https://github.com/ionutab\"\u003e\u003ccode\u003e@​ionutab\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3268\"\u003elocustio/locust#3268\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUnset print_stats on workers created by --processes option by \u003ca href=\"https://github.com/markogle\"\u003e\u003ccode\u003e@​markogle\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3353\"\u003elocustio/locust#3353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd Qdrant support by \u003ca href=\"https://github.com/Anush008\"\u003e\u003ccode\u003e@​Anush008\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3354\"\u003elocustio/locust#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump qdrant-client from 1.16.2 to 1.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/locustio/locust/pull/3362\"\u003elocustio/locust#3362\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump sphinxcontrib-htmlhelp from 2.0.1 to 2.1.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/locustio/locust/pull/3359\"\u003elocustio/locust#3359\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump sphinxcontrib-serializinghtml from 1.1.10 to 2.0.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/locustio/locust/pull/3361\"\u003elocustio/locust#3361\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump snowballstemmer from 2.2.0 to 3.0.1 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/locustio/locust/pull/3358\"\u003elocustio/locust#3358\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the all_dependencies group with 2 updates 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/locustio/locust/pull/3356\"\u003elocustio/locust#3356\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExtract response time bucketing into an overridable function by \u003ca href=\"https://github.com/thessem\"\u003e\u003ccode\u003e@​thessem\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3373\"\u003elocustio/locust#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove Type Hinting for Wait Time Functions by \u003ca href=\"https://github.com/abstract-333\"\u003e\u003ccode\u003e@​abstract-333\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3374\"\u003elocustio/locust#3374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the eslint group in /locust/webui with 8 updates 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/locustio/locust/pull/3363\"\u003elocustio/locust#3363\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the vite group in /locust/webui with 2 updates 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/locustio/locust/pull/3364\"\u003elocustio/locust#3364\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump typescript from 5.7.2 to 5.9.3 in /locust/webui 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/locustio/locust/pull/3367\"\u003elocustio/locust#3367\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump the vite group across 1 directory with 3 updates 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/locustio/locust/pull/3375\"\u003elocustio/locust#3375\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd locust-otel Docker image with OpenTelemetry dependencies by \u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3379\"\u003elocustio/locust#3379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix typos in docs, docstrings, and UI string by \u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3381\"\u003elocustio/locust#3381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix false \u0026quot;--run-time limit reached\u0026quot; log message when shape test completes by \u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3382\"\u003elocustio/locust#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: use total_rps instead of current_rps in HTML report and navbar stats by \u003ca href=\"https://github.com/juliosuas\"\u003e\u003ccode\u003e@​juliosuas\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3384\"\u003elocustio/locust#3384\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/markogle\"\u003e\u003ccode\u003e@​markogle\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3353\"\u003elocustio/locust#3353\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Anush008\"\u003e\u003ccode\u003e@​Anush008\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3354\"\u003elocustio/locust#3354\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/thessem\"\u003e\u003ccode\u003e@​thessem\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3373\"\u003elocustio/locust#3373\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/abstract-333\"\u003e\u003ccode\u003e@​abstract-333\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3374\"\u003elocustio/locust#3374\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/eyupcanakman\"\u003e\u003ccode\u003e@​eyupcanakman\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3379\"\u003elocustio/locust#3379\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/r266-tech\"\u003e\u003ccode\u003e@​r266-tech\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3381\"\u003elocustio/locust#3381\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Krishnachaitanyakc\"\u003e\u003ccode\u003e@​Krishnachaitanyakc\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3382\"\u003elocustio/locust#3382\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/juliosuas\"\u003e\u003ccode\u003e@​juliosuas\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/locustio/locust/pull/3384\"\u003elocustio/locust#3384\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/locustio/locust/compare/2.43.3...2.43.4\"\u003ehttps://github.com/locustio/locust/compare/2.43.3...2.43.4\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/locustio/locust/blob/master/CHANGELOG.md\"\u003elocust's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/locustio/locust/tree/2.43.4\"\u003e2.43.4\u003c/a\u003e (2026-04-01)\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://github.com/locustio/locust/compare/2.43.3...2.43.4\"\u003eFull Changelog\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFixed bugs:\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eHTML report uses current_rps instead of total_rps for req/s column \u003ca href=\"https://redirect.github.com/locustio/locust/issues/3355\"\u003e#3355\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUsing --processes with --print-stats causes all workers to print stats \u003ca href=\"https://redirect.github.com/locustio/locust/issues/3352\"\u003e#3352\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocker image does not have OTEL libraries installed \u003ca href=\"https://redirect.g...\n\n_Description has been truncated_","html_url":"https://github.com/HTT-BRANDS/azure-governance-platform/pull/3","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/HTT-BRANDS%2Fazure-governance-platform/issues/3","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/3/packages"}},{"old_version":"1.31.0","new_version":"1.35.1","update_type":"minor","path":null,"pr_created_at":"2026-04-04T04:12:37.000Z","version_change":"1.31.0 → 1.35.1","issue":{"uuid":"4203426703","node_id":"PR_kwDOR3f_qM7P6vOH","number":10,"state":"open","title":"build(deps): bump msal from 1.31.0 to 1.35.1","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-04T04:12:37.000Z","updated_at":"2026-04-14T04:37:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"build(deps)","packages":[{"name":"msal","old_version":"1.31.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"}],"path":null,"ecosystem":"pip"},"body":"Bumps [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) from 1.31.0 to 1.35.1.\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e1.35.0\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eSet Redirect Uri for broker silent flow on Linux platform by \u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd form_post response mode support for system browser authentication by \u003ca href=\"https://github.com/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/868\"\u003eAzureAD/microsoft-authentication-library-for-python#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd OIDC issuer validation by \u003ca href=\"https://github.com/Avery-Dunn\"\u003e\u003ccode\u003e@​Avery-Dunn\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/840\"\u003eAzureAD/microsoft-authentication-library-for-python#840\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSecurity: Remove unsafe PowerShell fallback in WSL by \u003ca href=\"https://github.com/RinZ27\"\u003e\u003ccode\u003e@​RinZ27\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/866\"\u003eAzureAD/microsoft-authentication-library-for-python#866\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.35.0b1\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe managed identity code path no longer has a dependency on the \u003ccode\u003esocket.getfqdn()\u003c/code\u003e. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThis version of MSAL Python will pick up PyMsalRuntime 0.20.*. No API change is needed. Existing MSAL-powered apps will automatically pick up this new behavior.\u003c/li\u003e\n\u003cli\u003eThe \u003ccode\u003ethumbprint\u003c/code\u003e name-value pair in the \u003ccode\u003eclient_credential\u003c/code\u003e parameter becomes optional now. See \u003ca href=\"https://msal-python.readthedocs.io/en/latest/#msal.ClientApplication.params.client_credential\"\u003eAPI docs\u003c/a\u003e for usage.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eROPC deprecation by \u003ca href=\"https://github.com/Ugonnaak1\"\u003e\u003ccode\u003e@​Ugonnaak1\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/855\"\u003eAzureAD/microsoft-authentication-library-for-python#855\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eTest case for token response scope differing from token request scope by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/856\"\u003eAzureAD/microsoft-authentication-library-for-python#856\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate pymsalruntime version range to handle the latest 0.20.0 release by \u003ca href=\"https://github.com/DharshanBJ\"\u003e\u003ccode\u003e@​DharshanBJ\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/858\"\u003eAzureAD/microsoft-authentication-library-for-python#858\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDocument how to enable sha256 for client credential by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/833\"\u003eAzureAD/microsoft-authentication-library-for-python#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove the reliance on getfqdn() by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/859\"\u003eAzureAD/microsoft-authentication-library-for-python#859\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eThumbprint for certificate made optional by \u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport Python 3.14 by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/861\"\u003eAzureAD/microsoft-authentication-library-for-python#861\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExplicitly remove issuer from the OIDC discovery response by \u003ca href=\"https://github.com/rayluo\"\u003e\u003ccode\u003e@​rayluo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/863\"\u003eAzureAD/microsoft-authentication-library-for-python#863\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSuppress CodeQL warning by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/867\"\u003eAzureAD/microsoft-authentication-library-for-python#867\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/ashok672\"\u003e\u003ccode\u003e@​ashok672\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/839\"\u003eAzureAD/microsoft-authentication-library-for-python#839\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/xinyuxu1026\"\u003e\u003ccode\u003e@​xinyuxu1026\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/846\"\u003eAzureAD/microsoft-authentication-library-for-python#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/849\"\u003eAzureAD/microsoft-authentication-library-for-python#849\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/vi7us\"\u003e\u003ccode\u003e@​vi7us\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/835\"\u003eAzureAD/microsoft-authentication-library-for-python#835\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0b1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.34.0...1.35.0b1\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eMSAL Python 1.34.0\u003c/h2\u003e\n\u003cp\u003eThis release includes:\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/AzureAD/microsoft-authentication-library-for-python/commit/6572c45e46901a0354809630906dce9d3c0ac772\"\u003e\u003ccode\u003e6572c45\u003c/code\u003e\u003c/a\u003e bump version to 1.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b81257f63111b3fb8d5bfd3a000c76bca3552387\"\u003e\u003ccode\u003eb81257f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0 to release 1.35.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/4549f9b9f15f8bc9386ca7a6cc843e238b7879ea\"\u003e\u003ccode\u003e4549f9b\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/1310faca65e452b09e347fdee52da1fe400ce48f\"\u003e\u003ccode\u003e1310fac\u003c/code\u003e\u003c/a\u003e Removed logs that were causing Alerts (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/878\"\u003e#878\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/733a83cc09a85192607cc012b51638d4bcce76f7\"\u003e\u003ccode\u003e733a83c\u003c/code\u003e\u003c/a\u003e Security: Remove unsafe PowerShell fallback in WSL (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/866\"\u003e#866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/d7e0e11368457ee6ef6c44df75e5218ac984eef9\"\u003e\u003ccode\u003ed7e0e11\u003c/code\u003e\u003c/a\u003e Add OIDC issuer validation (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/840\"\u003e#840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/58cf0736d48a9bbc2c855983705c1b5f278709ec\"\u003e\u003ccode\u003e58cf073\u003c/code\u003e\u003c/a\u003e Separate manual tests and remove unused settings from E2E (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/874\"\u003e#874\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/c0963357b113cad6455ae5b3cd22c049f358ade7\"\u003e\u003ccode\u003ec096335\u003c/code\u003e\u003c/a\u003e Remove usage of Lab API for integration test config (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.31.0...1.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e","html_url":"https://github.com/dismatel/multitel-reportes/pull/10","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/dismatel%2Fmultitel-reportes/issues/10","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/10/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":null,"pr_created_at":"2026-04-01T06:13:47.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4184408223","node_id":"PR_kwDOKkbJi87PJ1HH","number":136,"state":"closed","title":"chore(deps): bump the maintenance group with 17 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-05-01T06:45:45.000Z","author_association":null,"state_reason":null,"created_at":"2026-04-01T06:13:47.000Z","updated_at":"2026-05-01T06:45:47.000Z","time_to_close":2593918,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"maintenance","update_count":17,"packages":[{"name":"ruff","old_version":"0.15.4","new_version":"0.15.8","repository_url":"https://github.com/astral-sh/ruff"},{"name":"coverage","old_version":"7.13.2","new_version":"7.13.5","repository_url":"https://github.com/coveragepy/coveragepy"},{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"model-bakery","old_version":"1.23.3","new_version":"1.23.4","repository_url":"https://github.com/model-bakers/model_bakery"},{"name":"pygments","old_version":"2.19.2","new_version":"2.20.0","repository_url":"https://github.com/pygments/pygments"},{"name":"pyopenssl","old_version":"25.3.0","new_version":"26.0.0","repository_url":"https://github.com/pyca/pyopenssl"},{"name":"pytest-cov","old_version":"7.0.0","new_version":"7.1.0","repository_url":"https://github.com/pytest-dev/pytest-cov"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.39.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"googleapis-common-protos","old_version":"1.72.0","new_version":"1.73.1","repository_url":"https://github.com/googleapis/google-cloud-python"},{"name":"grpcio","old_version":"1.78.0","new_version":"1.80.0","repository_url":"https://github.com/grpc/grpc"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"protobuf","old_version":"6.33.5","new_version":"6.33.6","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"pyjwt","old_version":"2.11.0","new_version":"2.12.1","repository_url":"https://github.com/jpadilla/pyjwt"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.1","repository_url":"https://github.com/psf/requests"}],"path":null,"ecosystem":"pip"},"body":"Bumps the maintenance group with 17 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [ruff](https://github.com/astral-sh/ruff) | `0.15.4` | `0.15.8` |\n| [coverage](https://github.com/coveragepy/coveragepy) | `7.13.2` | `7.13.5` |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [model-bakery](https://github.com/model-bakers/model_bakery) | `1.23.3` | `1.23.4` |\n| [pygments](https://github.com/pygments/pygments) | `2.19.2` | `2.20.0` |\n| [pyopenssl](https://github.com/pyca/pyopenssl) | `25.3.0` | `26.0.0` |\n| [pytest-cov](https://github.com/pytest-dev/pytest-cov) | `7.0.0` | `7.1.0` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.39.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [googleapis-common-protos](https://github.com/googleapis/google-cloud-python) | `1.72.0` | `1.73.1` |\n| [grpcio](https://github.com/grpc/grpc) | `1.78.0` | `1.80.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `6.33.6` |\n| [pyjwt](https://github.com/jpadilla/pyjwt) | `2.11.0` | `2.12.1` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.1` |\n\nUpdates `ruff` from 0.15.4 to 0.15.8\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.8\u003c/h2\u003e\n\u003ch2\u003eRelease Notes\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] ignore \u003ccode\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\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.8\u003c/h2\u003e\n\u003cp\u003eReleased on 2026-03-26.\u003c/p\u003e\n\u003ch3\u003ePreview features\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003eunnecessary-if\u003c/code\u003e (\u003ccode\u003eRUF050\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24114\"\u003e#24114\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003euseless-finally\u003c/code\u003e (\u003ccode\u003eRUF072\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24165\"\u003e#24165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eruff\u003c/code\u003e] New rule \u003ccode\u003ef-string-percent-format\u003c/code\u003e (\u003ccode\u003eRUF073\u003c/code\u003e): warn when using \u003ccode\u003e%\u003c/code\u003e operator on an f-string (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24162\"\u003e#24162\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Recognize \u003ccode\u003efrozendict\u003c/code\u003e as a builtin for Python 3.15+ (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24100\"\u003e#24100\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eBug fixes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-async\u003c/code\u003e] Use fully-qualified \u003ccode\u003eanyio.lowlevel\u003c/code\u003e import in autofix (\u003ccode\u003eASYNC115\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24166\"\u003e#24166\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Check tuple arguments for partial paths in \u003ccode\u003eS607\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24080\"\u003e#24080\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] Skip \u003ccode\u003eundefined-name\u003c/code\u003e (\u003ccode\u003eF821\u003c/code\u003e) for conditionally deleted variables (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24088\"\u003e#24088\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eE501\u003c/code\u003e/\u003ccode\u003eW505\u003c/code\u003e/formatter: Exclude nested pragma comments from line width calculation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24071\"\u003e#24071\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e%foo?\u003c/code\u003e parsing in IPython assignment expressions (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24152\"\u003e#24152\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eanalyze graph\u003c/code\u003e: resolve string imports that reference attributes, not just modules (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24058\"\u003e#24058\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eRule changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e[\u003ccode\u003eeradicate\u003c/code\u003e] ignore \u003ccode\u003ety: ignore\u003c/code\u003e comments in \u003ccode\u003eERA001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24192\"\u003e#24192\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-bandit\u003c/code\u003e] Treat \u003ccode\u003esys.executable\u003c/code\u003e as trusted input in \u003ccode\u003eS603\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24106\"\u003e#24106\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003eflake8-self\u003c/code\u003e] Recognize \u003ccode\u003eSelf\u003c/code\u003e annotation and \u003ccode\u003eself\u003c/code\u003e assignment in \u003ccode\u003eSLF001\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24144\"\u003e#24144\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003epyflakes\u003c/code\u003e] \u003ccode\u003eF507\u003c/code\u003e: Fix false negative for non-tuple RHS in \u003ccode\u003e%\u003c/code\u003e-formatting (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24142\"\u003e#24142\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[\u003ccode\u003erefurb\u003c/code\u003e] Parenthesize generator arguments in \u003ccode\u003eFURB142\u003c/code\u003e fixer (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24200\"\u003e#24200\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003ePerformance\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSpeed up diagnostic rendering (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24146\"\u003e#24146\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eServer\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eWarn when Markdown files are skipped due to preview being disabled (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24150\"\u003e#24150\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eDocumentation\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eClarify \u003ccode\u003eextend-ignore\u003c/code\u003e and \u003ccode\u003eextend-select\u003c/code\u003e settings documentation (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24064\"\u003e#24064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMention AI policy in PR template (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24198\"\u003e#24198\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eUse trusted publishing for NPM packages (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/pull/24171\"\u003e#24171\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/bitloi\"\u003e\u003ccode\u003e@​bitloi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Sim-hu\"\u003e\u003ccode\u003e@​Sim-hu\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mvanhorn\"\u003e\u003ccode\u003e@​mvanhorn\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/astral-sh/ruff/commit/c2a8815842f9dc5d24ec19385eae0f1a7188b0d9\"\u003e\u003ccode\u003ec2a8815\u003c/code\u003e\u003c/a\u003e Release 0.15.8 (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24217\"\u003e#24217\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d444d52e2b9cc8bc9a078c2bd4ff6ff993290209\"\u003e\u003ccode\u003ed444d52\u003c/code\u003e\u003c/a\u003e [ty] Infer lambda expressions with \u003ccode\u003eCallable\u003c/code\u003e type context (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/22633\"\u003e#22633\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/9622285ed0081fc688149f6efca87f127d9b18dd\"\u003e\u003ccode\u003e9622285\u003c/code\u003e\u003c/a\u003e [ty] Autocomplete arguments if in arguments node (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24167\"\u003e#24167\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/d81266252aaf0820346d55edbed79c4f25ba13d2\"\u003e\u003ccode\u003ed812662\u003c/code\u003e\u003c/a\u003e Use the \u003ccode\u003erelease\u003c/code\u003e environment in \u003ccode\u003epublish-docs\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24214\"\u003e#24214\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/eda2355832f7a9c58aef6febd3e061dc9c87509a\"\u003e\u003ccode\u003eeda2355\u003c/code\u003e\u003c/a\u003e [ty] Show \u003ccode\u003eFinal\u003c/code\u003e source in final assignment diagnostic (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24194\"\u003e#24194\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/929eb5238c82bfadad4549ff526f02efc0163dd0\"\u003e\u003ccode\u003e929eb52\u003c/code\u003e\u003c/a\u003e [ty] Enforce Final attribute assignment rules for annotated and augmented wri...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/34998be22ec3a77d398bbd55234ef8740f768329\"\u003e\u003ccode\u003e34998be\u003c/code\u003e\u003c/a\u003e [ty] Fix typo in comment (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24211\"\u003e#24211\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/560aca0b2828ee2ff1b4bcc5c5ef1ef4ced229d2\"\u003e\u003ccode\u003e560aca0\u003c/code\u003e\u003c/a\u003e [ty] Minor simplifications to some benchmark code (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/24209\"\u003e#24209\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/683bae512d03d3727a7bcdbc5a0170dafa049583\"\u003e\u003ccode\u003e683bae5\u003c/code\u003e\u003c/a\u003e [ty] Track non-terminal-call constraints in global scope (\u003ca href=\"https://redirect.github.com/astral-sh/ruff/issues/23245\"\u003e#23245\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/astral-sh/ruff/commit/4704c2a4ff3dde2fd29324346720e9516b4fe387\"\u003e\u003ccode\u003e4704c2a\u003c/code\u003e\u003c/a\u003e [ty] Remove unnecessary intermediate collection in `StaticClassLiteral::field...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/astral-sh/ruff/compare/0.15.4...0.15.8\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `coverage` from 7.13.2 to 7.13.5\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/coveragepy/coveragepy/blob/main/CHANGES.rst\"\u003ecoverage's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 7.13.5 — 2026-03-17\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: \u003ccode\u003eissue 2138\u003c/code\u003e_ describes a memory leak that happened when repeatedly\nusing the Coverage API with in-memory data. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the markdown-formatted coverage report didn't fully escape special\ncharacters in file paths (\u003ccode\u003eissue 2141\u003c/code\u003e\u003cem\u003e). This would be very unlikely to\ncause a problem, but now it's done properly, thanks to \u003ccode\u003eEllie Ayla \u0026lt;pull 2142_\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the C extension wouldn't build on VS2019, but now it does (\u003ccode\u003eissue 2145\u003c/code\u003e_).\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _issue 2138: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2138\"\u003ecoveragepy/coveragepy#2138\u003c/a\u003e\n.. _issue 2141: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2141\"\u003ecoveragepy/coveragepy#2141\u003c/a\u003e\n.. _pull 2142: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2142\"\u003ecoveragepy/coveragepy#2142\u003c/a\u003e\n.. _issue 2145: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2145\"\u003ecoveragepy/coveragepy#2145\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-4:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.4 — 2026-02-09\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFix: the third-party code fix in 7.13.3 required examining the parent\ndirectories where coverage was run. In the unusual situation that one of the\nparent directories is unreadable, a PermissionError would occur, as\ndescribed in \u003ccode\u003eissue 2129\u003c/code\u003e_. This is now fixed.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix: in test suites that change sys.path, coverage.py could fail with\n\u0026quot;RuntimeError: Set changed size during iteration\u0026quot; as described and fixed in\n\u003ccode\u003epull 2130\u003c/code\u003e_. Thanks, Noah Fatsi.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eWe now publish ppc64le wheels, thanks to \u003ccode\u003ePankhudi Jain \u0026lt;pull 2121_\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e.. _pull 2121: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2121\"\u003ecoveragepy/coveragepy#2121\u003c/a\u003e\n.. _issue 2129: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/issues/2129\"\u003ecoveragepy/coveragepy#2129\u003c/a\u003e\n.. _pull 2130: \u003ca href=\"https://redirect.github.com/coveragepy/coveragepy/pull/2130\"\u003ecoveragepy/coveragepy#2130\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e.. _changes_7-13-3:\u003c/p\u003e\n\u003ch2\u003eVersion 7.13.3 — 2026-02-03\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix: in some situations, third-party code was measured when it shouldn't have\nbeen, slowing down test execution. This happened with layered virtual\nenvironments such as uv sometimes makes. The problem is fixed, closing \u003ccode\u003eissue 2082\u003c/code\u003e_. Now any directory on sys.path that is inside a virtualenv is\nconsidered third-party code.\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/coveragepy/coveragepy/commit/c88da144eef8cf78424331e5cbbde3e002eef43f\"\u003e\u003ccode\u003ec88da14\u003c/code\u003e\u003c/a\u003e docs: sample HTML for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e2ac3e1ef644370101ff365acad3431d16076512\"\u003e\u003ccode\u003ee2ac3e1\u003c/code\u003e\u003c/a\u003e build: sample HTML shouldn't include the status.json file\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/910f8f336541c2dcb4e9ec468144c7eb4a7779ac\"\u003e\u003ccode\u003e910f8f3\u003c/code\u003e\u003c/a\u003e docs: prep for 7.13.5\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/3a4819c24d3d20cb2670b99141517812ffa3fab0\"\u003e\u003ccode\u003e3a4819c\u003c/code\u003e\u003c/a\u003e style: make workflows more uniform\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2a53705f5fe588158b8a8d37ff3beee86388b9e4\"\u003e\u003ccode\u003e2a53705\u003c/code\u003e\u003c/a\u003e chore: bump the action-dependencies group across 1 directory with 4 updates (...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/e7c878d201db819416b978150944d9a842d22b18\"\u003e\u003ccode\u003ee7c878d\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/ab4db406a9c35acf977cf3ddb94a78d696b77bc5\"\u003e\u003ccode\u003eab4db40\u003c/code\u003e\u003c/a\u003e build: use --generate-hashes when pinning\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/a438753eef870441044cef588e29ce4b9a28adf1\"\u003e\u003ccode\u003ea438753\u003c/code\u003e\u003c/a\u003e chore: make upgrade\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/7b33457d2c6367dfd5a563239998b3980444e090\"\u003e\u003ccode\u003e7b33457\u003c/code\u003e\u003c/a\u003e refactor: some leftover pyupgrade 3.10 bits\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/coveragepy/coveragepy/commit/2ff968db91a7cdafe6f6569ac7659a3a93a2da07\"\u003e\u003ccode\u003e2ff968d\u003c/code\u003e\u003c/a\u003e refactor: this type wasn't used anywhere\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/coveragepy/coveragepy/compare/7.13.2...7.13.5\"\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.5 to 46.0.6\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.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\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/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.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `model-bakery` from 1.23.3 to 1.23.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/model-bakers/model_bakery/releases\"\u003emodel-bakery's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.23.4\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError when processing models with reverse ForeignKey relations (\u003ccode\u003eManyToOneRel\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e_bulk_create\u003c/code\u003e not setting M2M fields on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix type annotations (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eGitHub Changelog\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix type annotations by \u003ca href=\"https://github.com/amureki\"\u003e\u003ccode\u003e@​amureki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003emodel-bakers/model_bakery#584\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump pillow from 12.0.0 to 12.1.1 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/model-bakers/model_bakery/pull/586\"\u003emodel-bakers/model_bakery#586\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump django from 5.2.9 to 5.2.12 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/model-bakers/model_bakery/pull/585\"\u003emodel-bakers/model_bakery#585\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 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/model-bakers/model_bakery/pull/581\"\u003emodel-bakers/model_bakery#581\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/model-bakers/model_bakery/pull/580\"\u003emodel-bakers/model_bakery#580\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump urllib3 from 2.6.2 to 2.6.3 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/model-bakers/model_bakery/pull/587\"\u003emodel-bakers/model_bakery#587\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump black from 25.12.0 to 26.3.1 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/model-bakers/model_bakery/pull/588\"\u003emodel-bakers/model_bakery#588\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate uv-build requirement from \u0026lt;0.10.0,\u0026gt;=0.9.26 to \u0026gt;=0.9.26,\u0026lt;0.11.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/model-bakers/model_bakery/pull/579\"\u003emodel-bakers/model_bakery#579\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd regression test for bulk_create with M2M field using explicit related_name by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/582\"\u003emodel-bakers/model_bakery#582\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix remaining ty type errors in baker.py and generators.py by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003emodel-bakers/model_bakery#589\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix bulk_create not setting M2M on FK-related objects by \u003ca href=\"https://github.com/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/583\"\u003emodel-bakers/model_bakery#583\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump requests from 2.32.5 to 2.33.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/model-bakers/model_bakery/pull/590\"\u003emodel-bakers/model_bakery#590\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix AttributeError on ManyToOneRel fields (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e) by \u003ca href=\"https://github.com/amureki\"\u003e\u003ccode\u003e@​amureki\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/576\"\u003emodel-bakers/model_bakery#576\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/benaduo\"\u003e\u003ccode\u003e@​benaduo\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/582\"\u003emodel-bakers/model_bakery#582\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\"\u003ehttps://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\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/model-bakers/model_bakery/blob/main/CHANGELOG.md\"\u003emodel-bakery's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e\u003ca href=\"https://pypi.org/project/model-bakery/1.23.4/\"\u003e1.23.4\u003c/a\u003e\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError when processing models with reverse ForeignKey relations (\u003ccode\u003eManyToOneRel\u003c/code\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix \u003ccode\u003e_bulk_create\u003c/code\u003e not setting M2M fields on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix type annotations (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/584\"\u003e#584\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[dev] Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/pull/589\"\u003e#589\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/model-bakers/model_bakery/commit/b094155db98a74a4c8074fc4562ee743ac3ef790\"\u003e\u003ccode\u003eb094155\u003c/code\u003e\u003c/a\u003e Bump 1.23.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/ccd0c80701bb7e970e231426bc3b17d61eeda620\"\u003e\u003ccode\u003eccd0c80\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/1ff59bb9f842f1767f2d435217b125d893cc7909\"\u003e\u003ccode\u003e1ff59bb\u003c/code\u003e\u003c/a\u003e Fix AttributeError on ManyToOneRel fields (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/575\"\u003e#575\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/d8756ab4bb83c8b39c12d099443986f452ab80e8\"\u003e\u003ccode\u003ed8756ab\u003c/code\u003e\u003c/a\u003e Bump requests from 2.32.5 to 2.33.0 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/590\"\u003e#590\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/2d51d7c737958a086e29fe97037791441962b99e\"\u003e\u003ccode\u003e2d51d7c\u003c/code\u003e\u003c/a\u003e Fix bulk_create not setting M2M on FK-related objects (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/ac79620984ba426495df0153ec39ddcddaa885e6\"\u003e\u003ccode\u003eac79620\u003c/code\u003e\u003c/a\u003e Fix remaining ty type errors in baker.py and generators.py (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/5be6452e0cf2adc508e1066e95edd407463f76e9\"\u003e\u003ccode\u003e5be6452\u003c/code\u003e\u003c/a\u003e Add regression test for bulk_create with M2M field using explicit related_nam...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/2293b5b6042e55e07c608941e697bd82e37cdc99\"\u003e\u003ccode\u003e2293b5b\u003c/code\u003e\u003c/a\u003e Update uv-build requirement from \u0026lt;0.10.0,\u0026gt;=0.9.26 to \u0026gt;=0.9.26,\u0026lt;0.11.0 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/579\"\u003e#579\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/031537e61f44efed13221ee41eddc81882780699\"\u003e\u003ccode\u003e031537e\u003c/code\u003e\u003c/a\u003e Bump black from 25.12.0 to 26.3.1 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/model-bakers/model_bakery/commit/501a3c6dbf8f089f377886c8c8d9aa853ad96e59\"\u003e\u003ccode\u003e501a3c6\u003c/code\u003e\u003c/a\u003e Bump urllib3 from 2.6.2 to 2.6.3 (\u003ca href=\"https://redirect.github.com/model-bakers/model_bakery/issues/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/model-bakers/model_bakery/compare/1.23.3...1.23.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pygments` from 2.19.2 to 2.20.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pygments/pygments/releases\"\u003epygments's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.20.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\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/pygments/pygments/blob/master/CHANGES\"\u003epygments's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 2.20.0\u003c/h2\u003e\n\u003cp\u003e(released March 29th, 2026)\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eNew lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRell (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2914\"\u003e#2914\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdated lexers:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003earchetype: Fix catastrophic backtracking in GUID and ID patterns (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3064\"\u003e#3064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eASN.1: Recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3014\"\u003e#3014\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eC++: Add C++26 keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e), add integer literal suffixes (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2966\"\u003e#2966\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eComponentPascal: Fix \u003ccode\u003eanalyse_text\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3028\"\u003e#3028\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3032\"\u003e#3032\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCoq renamed to Rocq (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2883\"\u003e#2883\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2908\"\u003e#2908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCython: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2932\"\u003e#2932\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2933\"\u003e#2933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDebian control: Improve architecture parsing (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3052\"\u003e#3052\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDevicetree: Add support for overlay/fragments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3021\"\u003e#3021\u003c/a\u003e), add bytestring support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3022\"\u003e#3022\u003c/a\u003e), fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3057\"\u003e#3057\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFennel: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2911\"\u003e#2911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHaskell: Handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/1795\"\u003e#1795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eJava: Add module keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2955\"\u003e#2955\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLean4: Add operators \u003ccode\u003e]'\u003c/code\u003e, \u003ccode\u003e]?\u003c/code\u003e, \u003ccode\u003e]!\u003c/code\u003e  (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2946\"\u003e#2946\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLESS: Support single-line comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3005\"\u003e#3005\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLilyPond: Update to 2.25.29 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2974\"\u003e#2974\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLLVM: Support C-style comments (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3023\"\u003e#3023\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2978\"\u003e#2978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eLua(u): Fix catastrophic backtracking (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3047\"\u003e#3047\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMacaulay2: Update to 1.25.05 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2893\"\u003e#2893\u003c/a\u003e), 1.25.11 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2988\"\u003e#2988\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMathematica: Various improvements (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2957\"\u003e#2957\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003emeson: Add additional operators (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2919\"\u003e#2919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMySQL: Update keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2970\"\u003e#2970\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eorg-Mode: Support both schedule and deadline (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2899\"\u003e#2899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePHP: Add \u003ccode\u003e__PROPERTY__\u003c/code\u003e magic constant (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2924\"\u003e#2924\u003c/a\u003e), add reserved keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3002\"\u003e#3002\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePostgreSQL: Add more keywords (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2985\"\u003e#2985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eprotobuf: Fix namespace tokenization (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2929\"\u003e#2929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePython: Add \u003ccode\u003et\u003c/code\u003e-string support (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2973\"\u003e#2973\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3009\"\u003e#3009\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3010\"\u003e#3010\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTablegen: Fix infinite loop (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2972\"\u003e#2972\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2940\"\u003e#2940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTera Term macro: Add commands introduced in v5.3 through v5.6 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2951\"\u003e#2951\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTOML: Support TOML 1.1.0 (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3026\"\u003e#3026\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3027\"\u003e#3027\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eTurtle: Allow empty comment lines (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2980\"\u003e#2980\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eXML: Added \u003ccode\u003e.xbrl\u003c/code\u003e as file ending (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2890\"\u003e#2890\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2891\"\u003e#2891\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eDrop Python 3.8, and add Python 3.14 as a supported version (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2987\"\u003e#2987\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3012\"\u003e#3012\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to \u003ccode\u003eautopygmentize\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003eonedark\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2977\"\u003e#2977\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eUpdate \u003ccode\u003ertt\u003c/code\u003e style to support more token types (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2895\"\u003e#2895\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eCache entry points to improve performance (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/2979\"\u003e#2979\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003exterm-256\u003c/code\u003e color table (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3043\"\u003e#3043\u003c/a\u003e)\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFix \u003ccode\u003ekwargs\u003c/code\u003e dictionary getting mutated on each call (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3044\"\u003e#3044\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/708197d82827ba2d5ca78bcbb653c7102ce86dcd\"\u003e\u003ccode\u003e708197d\u003c/code\u003e\u003c/a\u003e Fix underline length.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d4538ae8621d766ecc91ff59caf76ab75983abc\"\u003e\u003ccode\u003e1d4538a\u003c/code\u003e\u003c/a\u003e Prepare 2.20 release.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/2ceaee4e634eebae2d10a47fd05406871f6bac8f\"\u003e\u003ccode\u003e2ceaee4\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/e3a3c54b58c7f80bc4db887e471d4f91c77844ed\"\u003e\u003ccode\u003ee3a3c54\u003c/code\u003e\u003c/a\u003e Fix Haskell lexer: handle escape sequences in character literals (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3069\"\u003e#3069\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/d7c3453e342dac319f58e4091f4ef183cc49d802\"\u003e\u003ccode\u003ed7c3453\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3071\"\u003e#3071\u003c/a\u003e from pygments/harden-html-formatter\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/0f97e7c37d44abfa4ddfddf44a3290fdad586034\"\u003e\u003ccode\u003e0f97e7c\u003c/code\u003e\u003c/a\u003e Harden the HTML formatter against CSS.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/9f981b2ba42b88ca5bdcebf12cd01efd7cd80aec\"\u003e\u003ccode\u003e9f981b2\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/1d889151024e9a53f3702a60558b29b070306e9e\"\u003e\u003ccode\u003e1d88915\u003c/code\u003e\u003c/a\u003e Update CHANGES.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/c3d93adb9827fc054c3c12b47bde31c781a36a93\"\u003e\u003ccode\u003ec3d93ad\u003c/code\u003e\u003c/a\u003e Fix ASN.1 lexer: recognize minus sign and fix range operator (\u003ca href=\"https://redirect.github.com/pygments/pygments/issues/3060\"\u003e#3060\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pygments/pygments/commit/4f06bcf8a5ba3f2b5bda24a26ccf041a1a65d91e\"\u003e\u003ccode\u003e4f06bcf\u003c/code\u003e\u003c/a\u003e fix bad behaving backtracking regex in CommonLispLexer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pygments/pygments/compare/2.19.2...2.20.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pyopenssl` from 25.3.0 to 26.0.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst\"\u003epyopenssl's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0.0 (2026-03-15)\u003c/h2\u003e\n\u003cp\u003eBackward-incompatible changes:\n^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.7.\u003c/li\u003e\n\u003cli\u003eThe minimum \u003ccode\u003ecryptography\u003c/code\u003e version is now 46.0.0.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDeprecations:\n^^^^^^^^^^^^^\u003c/p\u003e\n\u003cp\u003eChanges:\n^^^^^^^^\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdded support for using aws-lc instead of OpenSSL.\u003c/li\u003e\n\u003cli\u003eProperly raise an error if a DTLS cookie callback returned a cookie longer than \u003ccode\u003eDTLS1_COOKIE_LENGTH\u003c/code\u003e bytes. Previously this would result in a buffer-overflow. Credit to \u003cstrong\u003edark_haxor\u003c/strong\u003e for reporting the issue. \u003cstrong\u003eCVE-2026-27459\u003c/strong\u003e\u003c/li\u003e\n\u003cli\u003eAdded \u003ccode\u003eOpenSSL.SSL.Connection.get_group_name\u003c/code\u003e to determine which group name was negotiated.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eContext.set_tlsext_servername_callback\u003c/code\u003e now handles exceptions raised in the callback by calling \u003ccode\u003esys.excepthook\u003c/code\u003e and returning a fatal TLS alert. Previously, exceptions were silently swallowed and the handshake would proceed as if the callback had succeeded. Credit to \u003cstrong\u003eLeury Castillo\u003c/strong\u003e for reporting this issue. \u003cstrong\u003eCVE-2026-27448\u003c/strong\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/pyca/pyopenssl/commit/358cbf29c4e364c59930e53a270116249581eaa3\"\u003e\u003ccode\u003e358cbf2\u003c/code\u003e\u003c/a\u003e Prepare for 26.0.0 release (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1487\"\u003e#1487\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a8d28e7069ca213049ccfbcc227ed9ef6080a15b\"\u003e\u003ccode\u003ea8d28e7\u003c/code\u003e\u003c/a\u003e Bump actions/cache from 4 to 5 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1486\"\u003e#1486\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/6fefff05561c0a5e8f668b4e029a6ba3adb7d89e\"\u003e\u003ccode\u003e6fefff0\u003c/code\u003e\u003c/a\u003e Add aws-lc compatibility to tests and CI (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1476\"\u003e#1476\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/a739f9661d09ec6cda448ad71ca3e6df0dce9d75\"\u003e\u003ccode\u003ea739f96\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 8.0.0 to 8.0.1 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1485\"\u003e#1485\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/8b4c66b1b5649ce046665b151772d40c1cddd66a\"\u003e\u003ccode\u003e8b4c66b\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact in /.github/actions/upload-coverage (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1484\"\u003e#1484\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/02a5c78435cd445a7d5ef20b354dba2b6abdac64\"\u003e\u003ccode\u003e02a5c78\u003c/code\u003e\u003c/a\u003e Bump actions/upload-artifact from 6.0.0 to 7.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1483\"\u003e#1483\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d9733878d67ee2ad94327768bb6dc416f7827443\"\u003e\u003ccode\u003ed973387\u003c/code\u003e\u003c/a\u003e Bump actions/download-artifact from 7.0.0 to 8.0.0 (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1482\"\u003e#1482\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/57f09bb4bb051d3bc2a1abd36e9525313d5cd408\"\u003e\u003ccode\u003e57f09bb\u003c/code\u003e\u003c/a\u003e Fix buffer overflow in DTLS cookie generation callback (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1479\"\u003e#1479\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/d41a814759a9fb49584ca8ab3f7295de49a85aa0\"\u003e\u003ccode\u003ed41a814\u003c/code\u003e\u003c/a\u003e Handle exceptions in set_tlsext_servername_callback callbacks (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1478\"\u003e#1478\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pyca/pyopenssl/commit/7b29beba7759f0b810b5d5375a50469c4f8947b3\"\u003e\u003ccode\u003e7b29beb\u003c/code\u003e\u003c/a\u003e Fix not using a cryptography wheel on uv (\u003ca href=\"https://redirect.github.com/pyca/pyopenssl/issues/1475\"\u003e#1475\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pyca/pyopenssl/compare/25.3.0...26.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `pytest-cov` from 7.0.0 to 7.1.0\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pytest-dev/pytest-cov/blob/master/CHANGELOG.rst\"\u003epytest-cov's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.1.0 (2026-03-21)\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003eFixed total coverage computation to always be consistent, regardless of reporting settings.\nPreviously some reports could produce different total counts, and consequently can make --cov-fail-under behave different depending on\nreporting options.\nSee \u003ccode\u003e[#641](https://github.com/pytest-dev/pytest-cov/issues/641) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/641\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eImprove handling of ResourceWarning from sqlite3.\u003c/p\u003e\n\u003cp\u003eThe plugin adds warning filter for sqlite3 \u003ccode\u003eResourceWarning\u003c/code\u003e unclosed database (since 6.2.0).\nIt checks if there is already existing plugin for this message by comparing filter regular expression.\nWhen filter is specified on command line the message is escaped and does not match an expected message.\nA check for an escaped regular expression is added to handle this case.\u003c/p\u003e\n\u003cp\u003eWith this fix one can suppress \u003ccode\u003eResourceWarning\u003c/code\u003e from sqlite3 from command line::\u003c/p\u003e\n\u003cp\u003epytest -W \u0026quot;ignore:unclosed database in \u0026lt;sqlite3.Connection object at:ResourceWarning\u0026quot; ...\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eVarious improvements to documentation.\nContributed by Art Pelling in \u003ccode\u003e[#718](https://github.com/pytest-dev/pytest-cov/issues/718) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/718\u0026gt;\u003c/code\u003e_ and\n\u0026quot;vivodi\u0026quot; in \u003ccode\u003e[#738](https://github.com/pytest-dev/pytest-cov/issues/738) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/738\u0026gt;\u003c/code\u003e\u003cem\u003e.\nAlso closed \u003ccode\u003e[#736](https://github.com/pytest-dev/pytest-cov/issues/736) \u0026lt;https://github.com/pytest-dev/pytest-cov/issues/736\u0026gt;\u003c/code\u003e\u003c/em\u003e.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eFixed some assertions in tests.\nContributed by in Markéta Machová in \u003ccode\u003e[#722](https://github.com/pytest-dev/pytest-cov/issues/722) \u0026lt;https://github.com/pytest-dev/pytest-cov/pull/722\u0026gt;\u003c/code\u003e_.\u003c/p\u003e\n\u003c/li\u003e\n\u003cli\u003e\n\u003cp\u003eRemoved unnecessary coverage configuration copying (meant as a backup because reporting commands had configuration side-effects before coverage 5.0).\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/pytest-dev/pytest-cov/commit/66c8a526b1246b5eb8fb1bc218878131bc628622\"\u003e\u003ccode\u003e66c8a52\u003c/code\u003e\u003c/a\u003e Bump version: 7.0.0 → 7.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/f7076624784332594aa4cb3585d4757d295db15e\"\u003e\u003ccode\u003ef707662\u003c/code\u003e\u003c/a\u003e Make the examples use pypy 3.11.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/6049a7847872e3139e6c82e93787123df5dc8672\"\u003e\u003ccode\u003e6049a78\u003c/code\u003e\u003c/a\u003e Make context test use the old ctracer (seems the new sysmon tracer behaves di...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/8ebf20bbbc73478b3f8fd36d30237d9ea083f06b\"\u003e\u003ccode\u003e8ebf20b\u003c/code\u003e\u003c/a\u003e Update changelog.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/861d30e60d571f97259c6b718b71c819d5dbc3b9\"\u003e\u003ccode\u003e861d30e\u003c/code\u003e\u003c/a\u003e Remove the backup context manager  - shouldn't be needed since coverage 5.0, ...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/fd4c956014035527f0c3c8d7faef3f8cfdadac7f\"\u003e\u003ccode\u003efd4c956\u003c/code\u003e\u003c/a\u003e Pass the precision on the nulled total (seems that there's some caching goion...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/78c9c4ecb005faf4962fd86ff7bf9c9cce9554d6\"\u003e\u003ccode\u003e78c9c4e\u003c/code\u003e\u003c/a\u003e Only run the 3.9 on older deps.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/4849a922e8be725c662a3d9175da571ace6545dc\"\u003e\u003ccode\u003e4849a92\u003c/code\u003e\u003c/a\u003e Punctuation.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/197c35e2f37031fd1927715307ab6eed7cb3d2b7\"\u003e\u003ccode\u003e197c35e\u003c/code\u003e\u003c/a\u003e Update changelog and hopefully I don't forget to publish release again :))\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pytest-dev/pytest-cov/commit/14dc1c92d44108384e39803888635fdbfc578b7f\"\u003e\u003ccode\u003e14dc1c9\u003c/code\u003e\u003c/a\u003e Update examples to use 3.11 and make the adhoc layout example look a bit more...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pytest-dev/pytest-cov/compare/v7.0.0...v7.1.0\"\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.6 to 3.1.7\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.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 fix release, which fixes 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.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d3d3df56c98ba84111a15118d38e8dbfba71c3fd\"\u003e\u003ccode\u003ed3d3df5\u003c/code\u003e\u003c/a\u003e validate host characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2c6a3a528219385f8b7d6ad40d5184c07cd7f87b\"\u003e\u003ccode\u003e2c6a3a5\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/63261cdfb98b37a2dd0ea70b6b49d330a408e033\"\u003e\u003ccode\u003e63261cd\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/dafe7f1e37cf78cc7f11a9706c62a23e0dba9010\"\u003e\u003ccode\u003edafe7f1\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/051fd66352cf8b3f0797249858068dedaead6d39\"\u003e\u003ccode\u003e051fd66\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.39.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.39.0\u003c/h2\u003e\n\u003ch2\u003e1.39.0 (2026-03-18)\u003c/h2\u003e\n\u003ch3\u003eBreaking Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eChanged the previously undocumented \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable from \u003ccode\u003eAZURE_CLOUD\u003c/code\u003e to \u003ccode\u003eAZURE_SDK_CLOUD_CONF\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/dee80a8fd745ddab91933f05e795cf41e10ab8fe\"\u003e\u003ccode\u003edee80a8\u003c/code\u003e\u003c/a\u003e Changed the \u003ccode\u003eazure_cloud\u003c/code\u003e setting environment variable (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45763\"\u003e#45763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a2d11701462371d3f8b38b935f77f2e5070a5bf7\"\u003e\u003ccode\u003ea2d1170\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45671\"\u003e#45671\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.39.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `charset-normalizer` from 3.4.4 to 3.4.6\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/jawah/charset_normalizer/releases\"\u003echarset-normalizer's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 3.4.6\u003c/h2\u003e\n\u003ch2\u003e\u003ca href=\"https://github.com/Ousret/charset_normalizer/compare/3.4.5...3.4.6\"\u003e3.4.6\u003c/a\u003e (2026-03-15)\u003c/h2\u003e\n\u003ch3\u003eChanged\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFlattened the logic in \u003ccode\u003echarset_normalizer.md\u003c/code\u003e for higher performance. Removed \u003ccode\u003eeligible(..)\u003c/code\u003e and \u003ccode\u003efeed(...)\u003c/code\u003e\nin favor of \u003ccode\u003efeed_info(...)\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003eRaised upper bound for mypy[c] to 1.20, for our optimized version.\u003c/li\u003e\n\u003cli\u003eUpdated \u003ccode\u003eUNICODE_RANGES_COMBINED\u003c/code\u003e using Unicode blocks v17.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eFixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eEdge case where noise difference between two candidates can be almost insignificant. (\u003ca href=\"https://redirect.github.com/jawah/charset_normalizer/issues/672\"\u003e#672\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eCLI \u003ccode\u003e--normalize\u003c/code\u003e writing to wrong path when p...\n\n_Description has been truncated_","html_url":"https://github.com/Amsterdam/fb-locatielijst/pull/136","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/Amsterdam%2Ffb-locatielijst/issues/136","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/136/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":null,"pr_created_at":"2026-03-30T09:42:35.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4169237406","node_id":"PR_kwDOQh8SrM7Ojnx7","number":602,"state":"closed","title":"⬆️(deps): Bump the production-dependencies group across 1 directory with 10 updates","user":"dependabot[bot]","labels":["dependencies","python"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":"2026-04-13T09:48:07.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-30T09:42:35.000Z","updated_at":"2026-04-13T09:48:09.000Z","time_to_close":1209932,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"⬆️(deps): Bump","group_name":"production-dependencies","update_count":10,"packages":[{"name":"cryptography","old_version":"46.0.5","new_version":"46.0.6","repository_url":"https://github.com/pyca/cryptography"},{"name":"sqlalchemy","old_version":"2.0.47","new_version":"2.0.48","repository_url":"https://github.com/sqlalchemy/sqlalchemy"},{"name":"requests","old_version":"2.32.5","new_version":"2.33.0","repository_url":"https://github.com/psf/requests"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"spacy","old_version":"3.8.11","new_version":"3.8.14","repository_url":"https://github.com/explosion/spaCy"},{"name":"nltk","old_version":"3.9.3","new_version":"3.9.4","repository_url":"https://github.com/nltk/nltk"},{"name":"numpy","old_version":"2.4.2","new_version":"2.4.4","repository_url":"https://github.com/numpy/numpy"},{"name":"werkzeug","old_version":"3.1.6","new_version":"3.1.7","repository_url":"https://github.com/pallets/werkzeug"},{"name":"redis","old_version":"7.2.1","new_version":"7.4.0","repository_url":"https://github.com/redis/redis-py"},{"name":"ipython","old_version":"9.10.0","new_version":"9.12.0","repository_url":"https://github.com/ipython/ipython"}],"path":null,"ecosystem":"pip"},"body":"Bumps the production-dependencies group with 10 updates in the / directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [cryptography](https://github.com/pyca/cryptography) | `46.0.5` | `46.0.6` |\n| [sqlalchemy](https://github.com/sqlalchemy/sqlalchemy) | `2.0.47` | `2.0.48` |\n| [requests](https://github.com/psf/requests) | `2.32.5` | `2.33.0` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [spacy](https://github.com/explosion/spaCy) | `3.8.11` | `3.8.14` |\n| [nltk](https://github.com/nltk/nltk) | `3.9.3` | `3.9.4` |\n| [numpy](https://github.com/numpy/numpy) | `2.4.2` | `2.4.4` |\n| [werkzeug](https://github.com/pallets/werkzeug) | `3.1.6` | `3.1.7` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.4.0` |\n| [ipython](https://github.com/ipython/ipython) | `9.10.0` | `9.12.0` |\n\n\nUpdates `cryptography` from 46.0.5 to 46.0.6\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.6 - 2026-03-25\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\n* **SECURITY ISSUE**: Fixed a bug where name constraints were not applied\n  to peer names during verification when the leaf certificate contains a\n  wildcard DNS SAN. Ordinary X.509 topologies are not affected by this bug,\n  including those used by the Web PKI. Credit to **Oleh Konko (1seal)** for\n  reporting the issue. **CVE-2026-34073**\n\u003cp\u003e.. _v46-0-5:\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/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.6\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `sqlalchemy` from 2.0.47 to 2.0.48\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/releases\"\u003esqlalchemy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003e2.0.48\u003c/h1\u003e\n\u003cp\u003eReleased: March 2, 2026\u003c/p\u003e\n\u003ch2\u003eengine\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\n\u003cp\u003e\u003cstrong\u003e[engine] [bug]\u003c/strong\u003e Fixed a critical issue in \u003ccode\u003eEngine\u003c/code\u003e where connections created in\nconjunction with the \u003ccode\u003eDialectEvents.do_connect()\u003c/code\u003e event listeners\nwould receive shared, mutable collections for the connection arguments,\nleading to a variety of potential issues including unlimited growth of the\nargument list as well as elements within the parameter dictionary being\nshared among concurrent connection calls.  In particular this could impact\ndo_connect routines making use of complex mutable authentication\nstructures.\u003c/p\u003e\n\u003cp\u003eReferences: \u003ca href=\"https://www.sqlalchemy.org/trac/ticket/13144\"\u003e#13144\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\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/sqlalchemy/sqlalchemy/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `requests` from 2.32.5 to 2.33.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/psf/requests/releases\"\u003erequests's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev2.33.0\u003c/h2\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that uses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report any gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts contents to a non-deterministic location to prevent malicious file replacement. This does not affect default usage of Requests, only applications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause malformed authentication to be applied to Requests on Python 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/M0d3v1\"\u003e\u003ccode\u003e@​M0d3v1\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6865\"\u003epsf/requests#6865\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/aminvakil\"\u003e\u003ccode\u003e@​aminvakil\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7220\"\u003epsf/requests#7220\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/E8Price\"\u003e\u003ccode\u003e@​E8Price\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6960\"\u003epsf/requests#6960\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7244\"\u003epsf/requests#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/magsen\"\u003e\u003ccode\u003e@​magsen\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/6553\"\u003epsf/requests#6553\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Rohan5commit\"\u003e\u003ccode\u003e@​Rohan5commit\u003c/code\u003e\u003c/a\u003e made their first contribution in \u003ca href=\"https://redirect.github.com/psf/requests/pull/7227\"\u003epsf/requests#7227\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\"\u003ehttps://github.com/psf/requests/blob/main/HISTORY.md#2330-2026-03-25\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/psf/requests/blob/main/HISTORY.md\"\u003erequests's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e2.33.0 (2026-03-25)\u003c/h2\u003e\n\u003cp\u003e\u003cstrong\u003eAnnouncements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e📣 Requests is adding inline types. If you have a typed code base that\nuses Requests, please take a look at \u003ca href=\"https://redirect.github.com/psf/requests/issues/7271\"\u003e#7271\u003c/a\u003e. Give it a try, and report\nany gaps or feedback you may have in the issue. 📣\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eSecurity\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCVE-2026-25645 \u003ccode\u003erequests.utils.extract_zipped_paths\u003c/code\u003e now extracts\ncontents to a non-deterministic location to prevent malicious file\nreplacement. This does not affect default usage of Requests, only\napplications calling the utility function directly.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eImprovements\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eMigrated to a PEP 517 build system using setuptools. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7012\"\u003e#7012\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eBugfixes\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an empty netrc entry could cause\nmalformed authentication to be applied to Requests on\nPython 3.11+. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7205\"\u003e#7205\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDeprecations\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eDropped support for Python 3.9 following its end of support. (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7196\"\u003e#7196\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eDocumentation\u003c/strong\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eVarious typo fixes and doc improvements.\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/psf/requests/commit/bc04dfd6dad4cb02cd92f5daa81eb562d280a761\"\u003e\u003ccode\u003ebc04dfd\u003c/code\u003e\u003c/a\u003e v2.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/66d21cb07bd6255b1280291c4fafb71803cdb3b7\"\u003e\u003ccode\u003e66d21cb\u003c/code\u003e\u003c/a\u003e Merge commit from fork\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/8b9bc8fc0f63be84602387913c4b689f19efd028\"\u003e\u003ccode\u003e8b9bc8f\u003c/code\u003e\u003c/a\u003e Move badges to top of README (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7293\"\u003e#7293\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/e331a288f369973f5de0ec8901c94cae4fa87286\"\u003e\u003ccode\u003ee331a28\u003c/code\u003e\u003c/a\u003e Remove unused extraction call (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7292\"\u003e#7292\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/753fd08c5eacce0aa0df73fe47e49525c67e0a29\"\u003e\u003ccode\u003e753fd08\u003c/code\u003e\u003c/a\u003e docs: fix FAQ grammar in httplib2 example\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/774a0b837a194ee885d4fdd9ca947900cc3daf71\"\u003e\u003ccode\u003e774a0b8\u003c/code\u003e\u003c/a\u003e docs(socks): same block as other sections\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/9c72a41bec8597f948c9d8caa5dc3f12273b3303\"\u003e\u003ccode\u003e9c72a41\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.33.0 to 4.34.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/ebf71906798ec82f34e07d3168f8b8aecaf8a3be\"\u003e\u003ccode\u003eebf7190\u003c/code\u003e\u003c/a\u003e Bump github/codeql-action from 4.32.0 to 4.33.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/0e4ae38f0c93d4f92a96c774bd52c069d12a4798\"\u003e\u003ccode\u003e0e4ae38\u003c/code\u003e\u003c/a\u003e docs: exclude Response.is_permanent_redirect from API docs (\u003ca href=\"https://redirect.github.com/psf/requests/issues/7244\"\u003e#7244\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/psf/requests/commit/d568f47278492e630cc990a259047c67991d007a\"\u003e\u003ccode\u003ed568f47\u003c/code\u003e\u003c/a\u003e docs: clarify Quickstart POST example (\u003ca href=\"https://redirect.github.com/psf/requests/issues/6960\"\u003e#6960\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/psf/requests/compare/v2.32.5...v2.33.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `msal` from 1.35.0 to 1.35.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/releases\"\u003emsal's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e1.35.1\u003c/h2\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eInstance discovery remains cloud local on known clouds by \u003ca href=\"https://github.com/bgavrilMS\"\u003e\u003ccode\u003e@​bgavrilMS\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/pull/875\"\u003eAzureAD/microsoft-authentication-library-for-python#875\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ehttps://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.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/AzureAD/microsoft-authentication-library-for-python/blob/dev/RELEASE_GUIDE.md\"\u003emsal's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch1\u003eMSAL Python — Release Guide\u003c/h1\u003e\n\u003cp\u003eThis document provides step-by-step instructions for releasing a new version of \u003ccode\u003emsal\u003c/code\u003e to PyPI.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003ePrerequisites\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eYou have push access to the \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python\"\u003eAzureAD/microsoft-authentication-library-for-python\u003c/a\u003e repository.\u003c/li\u003e\n\u003cli\u003eThe following GitHub repository secrets are configured:\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eTEST_PYPI_API_TOKEN\u003c/code\u003e — API token for \u003ca href=\"https://test.pypi.org/\"\u003eTestPyPI\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003ePYPI_API_TOKEN\u003c/code\u003e — API token for \u003ca href=\"https://pypi.org/\"\u003ePyPI\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/li\u003e\n\u003c/ul\u003e\n\u003chr /\u003e\n\u003ch2\u003eVersion Location\u003c/h2\u003e\n\u003cp\u003eThe package version is defined in a single file:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003emsal/sku.py  →  __version__ = \u0026quot;x.y.z\u0026quot;\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003e\u003ccode\u003esetup.cfg\u003c/code\u003e reads it dynamically via \u003ccode\u003eversion = attr: msal.__version__\u003c/code\u003e, so \u003cstrong\u003eno other file needs updating\u003c/strong\u003e.\u003c/p\u003e\n\u003chr /\u003e\n\u003ch2\u003eBranch Strategy\u003c/h2\u003e\n\u003cpre\u003e\u003ccode\u003edev  (all development happens here)\n │\n │── feature/fix PR → merged into dev\n │\n ├──► release-1.35.0  (version branch, cut from dev when ready)\n │       │\n │       ├── TestPyPI publish (automatic on push)\n │       │\n │       ├── bug found? fix on dev, merge dev → release-1.35.0\n │       │       │\n │       │       └── TestPyPI re-publish (automatic)\n │       │\n │       ├── tag 1.35.0 (via GitHub Release) → PyPI publish\n │       │\n │       │   ── post-release hotfix needed? ──\n │       │\n │       ├── fix on dev, merge dev → release-1.35.0\n │       │       │\n │       │       ├── bump sku.py to 1.35.1\n │       │       │\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt; \n\u003c/code\u003e\u003c/pre\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/AzureAD/microsoft-authentication-library-for-python/commit/6572c45e46901a0354809630906dce9d3c0ac772\"\u003e\u003ccode\u003e6572c45\u003c/code\u003e\u003c/a\u003e bump version to 1.35.1\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/b81257f63111b3fb8d5bfd3a000c76bca3552387\"\u003e\u003ccode\u003eb81257f\u003c/code\u003e\u003c/a\u003e Merge branch 'dev' into release-1.35.0 to release 1.35.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/2de45aeb534a05cfff0d85e96c4f330c102ef607\"\u003e\u003ccode\u003e2de45ae\u003c/code\u003e\u003c/a\u003e Instance discovery remains cloud local on known clouds (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/875\"\u003e#875\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/commit/09c8821cca91fc01345f080b1c75b124b1ad47f1\"\u003e\u003ccode\u003e09c8821\u003c/code\u003e\u003c/a\u003e Create RELEASE_GUIDE.md (\u003ca href=\"https://redirect.github.com/AzureAD/microsoft-authentication-library-for-python/issues/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/AzureAD/microsoft-authentication-library-for-python/compare/1.35.0...1.35.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `spacy` from 3.8.11 to 3.8.14\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/explosion/spaCy/releases\"\u003espacy's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.8.14: Bug fix for model downloading in environments without pip on PATH\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ccode\u003espacy download\u003c/code\u003e failing in environments where \u003ccode\u003epip\u003c/code\u003e is not on PATH but is available as a Python module (e.g., some virtual environments and containers)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ev3.8.13: Pin confection to new version\u003c/h2\u003e\n\u003cp\u003eThe v3.8.12 release didn't update the confection pin, which meant that if you did an upgrade-install models wouldn't load.\u003c/p\u003e\n\u003ch2\u003ev3.8.12\u003c/h2\u003e\n\u003cp\u003eUse confection v1.3 and Thinc v8.3.13, which implement custom validation logic in place of Pydantic, allowing us to properly adopt Pydantic v2 and provide full Python 3.14 support.\u003c/p\u003e\n\u003cp\u003eOur dependency tree used Pydantic v1 in unusual ways, and relied on behaviours that Pydantic v2 reformed. In the time since Pydantic v2 was released there were a few attempts to migrate over to it, but the task has been complicated by the fact that the confection library has a fairly tangled implementation and I had reduced availability for open-source work in 2024 and 2025.\u003c/p\u003e\n\u003cp\u003eSpecifically, our library confection provides the extensible configuration system we use in spaCy and Thinc. The config system allows you to refer to values that will be supplied by arbitrary functions, that e.g. define some neural network model or its sublayers. The functionality in confection is complicated because we aggressively prioritised user experience in the specification, even if it required increased implementation complexity.\u003c/p\u003e\n\u003cp\u003eConfection's original implementation built a dynamic Pydantic v1 schema for function-supplied values (\u0026quot;promises\u0026quot;). We validate the schema before calling any promises, and then validate the schema again after calling all the promises and substituting in their values. The variable-interpolation system adds further difficulties to the implementation, and we have to do it all subclassing the Python built-in configparser, which ties us to implementation choices I'd do differently if I had a clean slate.\u003c/p\u003e\n\u003cp\u003eHere's one summary of Pydantic v1-specific behaviours that the migration to v2 particularly difficult for us. This particular summary was produced during a session with Claude Code Opus 4.6, so nuances of it might be wrong. The full history of attempts at doing this spans over different refactors separated by a few months at a time, so I don't have a full record of all the things that I struggled with. It's possible some details of this summary are incorrect though.\u003c/p\u003e\n\u003cp\u003eThe core problem we kept hitting: Pydantic v2 compiles validation schemas upfront and has much stricter immutability. The whole session has been a series of workarounds for this:\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e 1. Schema mutation — v1 let you mutate __fields__ in place; v2 needs model_rebuild() which loses forward ref namespaces, or create_model subclasses which don't propagate to parent schemas.\r\n 2. model_dump vs dict — v2 converts dataclasses to dicts, breaking resolved objects. Needed a custom _model_to_dict helper.\r\n 3. model_construct drops extras — v2 silently drops fields with extra=\u0026quot;forbid\u0026quot;, needed manual workarounds.\r\n 4. Strict coercion — v2 coerces ndarray to List[Floats1d] via iteration, needed strict=True.\r\n 5. Forward refs — Every schema with TYPE_CHECKING imports needs model_rebuild() with the right namespace, and that breaks when confection re-rebuilds later.\r\nIn order to adjust for behavioural differences like this, I'd refactored confection to build the different versions of the schema in multiple passes, instead of building all the representations together as we'd been doing. However this refactor itself had problems, further complicating the migration.\r\n\u003c/code\u003e\u003c/pre\u003e\n\u003cp\u003eI've now bitten the bullet and rolled back the refactor I'd been attempting of confection, and instead replaced the Pydantic validation with custom logic. This allows Confection to remove Pydantic as a dependency entirely.~ Update: Actually I went back and got the refactor working. All much nicer now.\u003c/p\u003e\n\u003cp\u003eI've taken some lengths to explain this because migrating off a dependency after breaking changes can be a sensitive topic. I want to stress that the changes Pydantic made from v1 to v2 are very good, and I greatly appreciate them as a user of FastAPI in our services. It would be very bad for the ecosystem if Pydantic pinned themselves to exactly matching the behaviours they had in v1 just to avoid breaking support for the sort of thing we'd been doing. Instead users who were relying on those behaviours like us should just find some way to adapt --- either vendor the v1 version we need, or change our behaviours, or implement an alternative. I would have liked to do this sooner but we've ultimately gone with the third option.\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/explosion/spaCy/commit/0069cf99b60023363ba5f47404819f59c8a39b3e\"\u003e\u003ccode\u003e0069cf9\u003c/code\u003e\u003c/a\u003e Set version to 3.8.14\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/56032260f2d37981682d6685b2a124346b60cca7\"\u003e\u003ccode\u003e5603226\u003c/code\u003e\u003c/a\u003e fix: check pip module availability instead of PATH binary in download (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13947\"\u003e#13947\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/d4bb796b5ed3d0bd65d0af6b1e26ebc181c3aef1\"\u003e\u003ccode\u003ed4bb796\u003c/code\u003e\u003c/a\u003e Add least-privilege permissions to CI workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/9d29209d0486f315773c890c25db34c07a888654\"\u003e\u003ccode\u003e9d29209\u003c/code\u003e\u003c/a\u003e Pass github context via stdin instead of CLI arg\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/4216738cf83719938d5bafc29fb61537d758baf1\"\u003e\u003ccode\u003e4216738\u003c/code\u003e\u003c/a\u003e Pin GitHub Actions to commit SHAs for supply chain security\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/297938e7040d5b4866d65d2d11dd113a1146ba89\"\u003e\u003ccode\u003e297938e\u003c/code\u003e\u003c/a\u003e Add smoke test and upgrade test to release build workflow\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/fdca647b1b07cca7ac36adc78fedaea908b0d168\"\u003e\u003ccode\u003efdca647\u003c/code\u003e\u003c/a\u003e Set version to 3.8.13\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/0d94a9d66dd6a754fa958db2fd20ce60ff908c94\"\u003e\u003ccode\u003e0d94a9d\u003c/code\u003e\u003c/a\u003e Pin confection\u0026gt;=1.3.2 — older versions crash with pydantic v2\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/f175a51e2df36f16d473c7b62a0b9b8563ebb773\"\u003e\u003ccode\u003ef175a51\u003c/code\u003e\u003c/a\u003e Fully migrate to Pydantic v2 (\u003ca href=\"https://redirect.github.com/explosion/spaCy/issues/13940\"\u003e#13940\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/explosion/spaCy/commit/24255bd1e25c7275553325d989bfcfd3a41fc1d2\"\u003e\u003ccode\u003e24255bd\u003c/code\u003e\u003c/a\u003e Fix import sorting for ruff isort compliance\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/explosion/spaCy/compare/release-v3.8.11...release-v3.8.14\"\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.3 to 3.9.4\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.4 2026-03-24\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eSupport Python 3.14\u003c/li\u003e\n\u003cli\u003eFix bug in Levenshtein distance when substitution_cost \u0026gt; 2\u003c/li\u003e\n\u003cli\u003eFix bug in Treebank detokeniser re quote ordering\u003c/li\u003e\n\u003cli\u003eFix bug in Jaro similarity for empty strings\u003c/li\u003e\n\u003cli\u003eSeveral security enhancements\u003c/li\u003e\n\u003cli\u003eFix GHSA-rf74-v2fm-23pw: unbounded recursion in JSONTaggedDecoder\u003c/li\u003e\n\u003cli\u003eImplement TextTiling vocabulary introduction method (Hearst 1997)\u003c/li\u003e\n\u003cli\u003eFix ALINE feature matrix errors and add comprehensive tests\u003c/li\u003e\n\u003cli\u003eSupport multiple VerbNet versions, fix longid/shortid regex for VerbNet ids\u003c/li\u003e\n\u003cli\u003eLet downloader fallback to md5 when sha256 is unavailable\u003c/li\u003e\n\u003cli\u003eSeveral other minor bugfixes and code cleanups\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThanks to the following contributors to 3.9.4:\nMin-Yen Kan, Eric Kafe, Emily Voss, bowiechen, Hrudhai01,\njancallewaert, Mr-Neutr0n, pollak.peter89, ylwango613,\u003c/p\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\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/ad9c96ba00a16923ffe917eacf63f1707bfa2d08\"\u003e\u003ccode\u003ead9c96b\u003c/code\u003e\u003c/a\u003e Update copyright year\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/7edcddfda566627b897397397cc4d10ae91cb86d\"\u003e\u003ccode\u003e7edcddf\u003c/code\u003e\u003c/a\u003e Updates for 3.9.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/67a2736f89b286b028db08bd247134f17a11fc6b\"\u003e\u003ccode\u003e67a2736\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3180\"\u003e#3180\u003c/a\u003e from yzhaoinuw/bug-on-edit_distance_align\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/2b17ac5358a1c8d4b97455766efde0b786e6cdb2\"\u003e\u003ccode\u003e2b17ac5\u003c/code\u003e\u003c/a\u003e Fix edit_distance_align backtrace for high substitution costs\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/4b72976a6ff3d180ed4012f11843e611a8f89516\"\u003e\u003ccode\u003e4b72976\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3018\"\u003e#3018\u003c/a\u003e from JuanIMartinezB/bug/shortid-longid\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/8a5619f53a281149e5342b1a00fe05fe2fc6517f\"\u003e\u003ccode\u003e8a5619f\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3222\"\u003e#3222\u003c/a\u003e from Syzygy2048/feature/texttiling-vocabulary-introd...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/c6574d755e02b6163d9cd1d0b407076940e08864\"\u003e\u003ccode\u003ec6574d7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3289\"\u003e#3289\u003c/a\u003e from ihitamandal/codeflash/optimize-windowdiff-2024-...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/98ff5d9eaa1a81511873b9aef857944519c28dc4\"\u003e\u003ccode\u003e98ff5d9\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3435\"\u003e#3435\u003c/a\u003e from Hrudhai01/fix-3260-detokenize-quotes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/aec4fce1b84ad725b8975f7365b23a4f626572a9\"\u003e\u003ccode\u003eaec4fce\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3522\"\u003e#3522\u003c/a\u003e from ekaf/pathsec\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/nltk/nltk/commit/eec4ee3591cb9cb8b8c2989f08012608c841d532\"\u003e\u003ccode\u003eeec4ee3\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/nltk/nltk/issues/3526\"\u003e#3526\u003c/a\u003e from nltk/update-contributing\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/nltk/nltk/compare/3.9.3...3.9.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `numpy` from 2.4.2 to 2.4.4\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.4 (Mar 29, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.4 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.4 is a patch release that fixes bugs discovered after the 2.4.3\nrelease. It should finally close issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e, the OpenBLAS threading problem\non ARM.\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 8 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 Haag +\u003c/li\u003e\n\u003cli\u003eDenis Prokopenko +\u003c/li\u003e\n\u003cli\u003eHarshith J +\u003c/li\u003e\n\u003cli\u003eKoki Watanabe\u003c/li\u003e\n\u003cli\u003eMarten van Kerkwijk\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 7 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/30978\"\u003e#30978\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/31049\"\u003e#31049\u003c/a\u003e: BUG: Add test to reproduce problem described in \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30818\"\u003e#30818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31052\"\u003e#31052\u003c/a\u003e: BUG: fix FNV-1a 64-bit selection by using NPY_SIZEOF_UINTP (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31035\"\u003e#31035\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31053\"\u003e#31053\u003c/a\u003e: BUG: avoid warning on ufunc with where=True and no output\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31058\"\u003e#31058\u003c/a\u003e: DOC: document caveats of ndarray.resize on 3.14 and newer\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31079\"\u003e#31079\u003c/a\u003e: TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/31084\"\u003e#31084\u003c/a\u003e: MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e...\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e2.4.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\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/numpy/numpy/commit/be93fe2960dbf49b4647f5783c66d967fb2c65b5\"\u003e\u003ccode\u003ebe93fe2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31090\"\u003e#31090\u003c/a\u003e from charris/prepare-2.4.4\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f5245dc7ea5c6279c59cb0d5de81113229841290\"\u003e\u003ccode\u003ef5245dc\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.4 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/02e838ba270a5ca3dd8afc5a31c090cd34a56615\"\u003e\u003ccode\u003e02e838b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31084\"\u003e#31084\u003c/a\u003e from charris/backport-31056\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/fa74b2d05f8f7604bf6635d5280c3216c8ec667f\"\u003e\u003ccode\u003efa74b2d\u003c/code\u003e\u003c/a\u003e MAINT: numpy.i: Replace deprecated \u003ccode\u003esprintf\u003c/code\u003e with \u003ccode\u003esnprintf\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31056\"\u003e#31056\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/533a6db96dfa2556a61102a58c35fd64eaf3fa2b\"\u003e\u003ccode\u003e533a6db\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31079\"\u003e#31079\u003c/a\u003e from charris/backport-20801\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9e496cbd0a281195bd779ae1833f2a8f4a1d46a7\"\u003e\u003ccode\u003e9e496cb\u003c/code\u003e\u003c/a\u003e TST: fix POWER VSX feature mapping (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30801\"\u003e#30801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/8052c4b69ef18e582709af946f93f9e58b848f39\"\u003e\u003ccode\u003e8052c4b\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/31058\"\u003e#31058\u003c/a\u003e from charris/backport-31021\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/7f13b5ad2b69fd6ea6aa3af7036b2dcf98e96486\"\u003e\u003ccode\u003e7f13b5a\u003c/code\u003e\u003c/a\u003e MAINT: Skip test on PyPy.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4c5fdd66c8f379a1e2b3f40fa62bd0b87769d1c7\"\u003e\u003ccode\u003e4c5fdd6\u003c/code\u003e\u003c/a\u003e MAINT: Remove unused import of tracemalloc.\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a3ca5ed354b26e0fd6e35bf29765a24271ed7c3a\"\u003e\u003ccode\u003ea3ca5ed\u003c/code\u003e\u003c/a\u003e Update numpy/_core/src/multiarray/shape.c\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v2.4.2...v2.4.4\"\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.6 to 3.1.7\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.7\u003c/h2\u003e\n\u003cp\u003eThis is the Werkzeug 3.1.7 fix release, which fixes 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.7/\"\u003ehttps://pypi.org/project/Werkzeug/3.1.7/\u003c/a\u003e\nChanges: \u003ca href=\"https://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\"\u003ehttps://werkzeug.palletsprojects.com/page/changes/#version-3-1-7\u003c/a\u003e\nMilestone: \u003ca href=\"https://github.com/pallets/werkzeug/milestone/44?closed=1\"\u003ehttps://github.com/pallets/werkzeug/milestone/44?closed=1\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty items, and returns empty for unclosed quoted values. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3128\"\u003e#3128\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there are no parameters. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3127\"\u003e#3127\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the characters of the value. An empty value is no longer allowed. A Unix socket server address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to \u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3113\"\u003e#3113\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3088\"\u003e#3088\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it is not a satisfiable range request. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3108\"\u003e#3108\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. \u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3121\"\u003e#3121\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.7\u003c/h2\u003e\n\u003cp\u003eReleased 2026-03-23\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003eparse_list_header\u003c/code\u003e preserves partially quoted items, discards empty\nitems, and returns empty for unclosed quoted values. :pr:\u003ccode\u003e3128\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eWWWAuthenticate.to_header\u003c/code\u003e does not produce a trailing space when there\nare no parameters. :issue:\u003ccode\u003e3127\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eTransfer-Encoding\u003c/code\u003e is parsed as a set. :pr:\u003ccode\u003e3134\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eRequest.host\u003c/code\u003e, \u003ccode\u003eget_host\u003c/code\u003e, and \u003ccode\u003ehost_is_trusted\u003c/code\u003e validate the\ncharacters of the value. An empty value is no longer allowed. A Unix socket\nserver address is ignored. The \u003ccode\u003etrusted_list\u003c/code\u003e argument to\n\u003ccode\u003ehost_is_trusted\u003c/code\u003e is optional. :pr:\u003ccode\u003e3113\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003eFix multipart form parser handling of newline at boundary. :issue:\u003ccode\u003e3088\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003eResponse.make_conditional\u003c/code\u003e sets the \u003ccode\u003eAccept-Ranges\u003c/code\u003e header even if it\nis not a satisfiable range request. :issue:\u003ccode\u003e3108\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003emerge_slashes\u003c/code\u003e merges any number of consecutive slashes. :issue:\u003ccode\u003e3121\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/005d93bf3437226ab185d2edc6132918d3e45763\"\u003e\u003ccode\u003e005d93b\u003c/code\u003e\u003c/a\u003e release version 3.1.7\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/c328342ef9f7a6476b9e41565ad0a70ff10cfde6\"\u003e\u003ccode\u003ec328342\u003c/code\u003e\u003c/a\u003e merge any number of slashes (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3136\"\u003e#3136\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/23142a3cb5d1b5ba8e9914980934477e0abdc30e\"\u003e\u003ccode\u003e23142a3\u003c/code\u003e\u003c/a\u003e merge any number of slashes\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/b913d68db5898c8f3def3c09a653aaf95abe38e5\"\u003e\u003ccode\u003eb913d68\u003c/code\u003e\u003c/a\u003e always set accept-ranges header\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/f282943ddc687e613b7ee79b4677e4961c32ae15\"\u003e\u003ccode\u003ef282943\u003c/code\u003e\u003c/a\u003e Correct 1049dd6b2a363e1ef302b4161c340fb8582f627a\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/d3d3df56c98ba84111a15118d38e8dbfba71c3fd\"\u003e\u003ccode\u003ed3d3df5\u003c/code\u003e\u003c/a\u003e validate host characters\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/2c6a3a528219385f8b7d6ad40d5184c07cd7f87b\"\u003e\u003ccode\u003e2c6a3a5\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3134\"\u003e#3134\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/63261cdfb98b37a2dd0ea70b6b49d330a408e033\"\u003e\u003ccode\u003e63261cd\u003c/code\u003e\u003c/a\u003e parse transfer-encoding as set\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/dafe7f1e37cf78cc7f11a9706c62a23e0dba9010\"\u003e\u003ccode\u003edafe7f1\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer (\u003ca href=\"https://redirect.github.com/pallets/werkzeug/issues/3129\"\u003e#3129\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/pallets/werkzeug/commit/051fd66352cf8b3f0797249858068dedaead6d39\"\u003e\u003ccode\u003e051fd66\u003c/code\u003e\u003c/a\u003e fix trailing whitespace in WWW-Authenticate bearer\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/pallets/werkzeug/compare/3.1.6...3.1.7\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `redis` from 7.2.1 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/redis/redis-py/releases\"\u003eredis's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e7.4.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix AttributeError in cluster metrics recording when connection is None or ClusterNode object instance is used to extract the connection info (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3999\"\u003e#3999\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords might leak in plain text logs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3998\"\u003e#3998\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRefactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧪 Experimental Features\u003c/h2\u003e\n\u003cp\u003e-Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpose basic Otel classes and functions to be importable through redis.observability to match the examples in the readthedocs (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3996\"\u003e#3996\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e7.3.0\u003c/h2\u003e\n\u003ch1\u003eChanges\u003c/h1\u003e\n\u003cp\u003e\u003cstrong\u003eOpenTelemetry Native Metrics Support for asynchronous clients\u003c/strong\u003e\nAdded comprehensive OpenTelemetry metrics support for asynchronous clients following the \u003ca href=\"https://opentelemetry.io/docs/specs/semconv/database/database-metrics/\"\u003eOpenTelemetry Database Client Semantic Conventions\u003c/a\u003e.\nMetric groups include:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eCommand metrics: Operation duration with retry tracking\u003c/li\u003e\n\u003cli\u003eConnection basic: Connection count and creation time\u003c/li\u003e\n\u003cli\u003eResiliency: Errors, handoffs, timeout relaxation\u003c/li\u003e\n\u003cli\u003eConnection advanced: Wait time and use time\u003c/li\u003e\n\u003cli\u003ePubsub metrics: Published and received messages\u003c/li\u003e\n\u003cli\u003eStream metrics: Processing duration and maintenance notifications\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🚀 New Features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded OTel instrumentation and metrics export for async client (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3977\"\u003e#3977\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e[async] Adding access to cluster client's nodes_manager and set_response_callback in ClusterPipeline objects (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3989\"\u003e#3989\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix(connection): Ensure we have an initialized protocol in connection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3981\"\u003e#3981\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🧰 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003efix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e \u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/upload-artifact from 6 to 7 (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3985\"\u003e#3985\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003efix: replace 3 bare except clauses with except Exception (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3980\"\u003e#3980\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eWe'd like to thank all the contributors who worked on this release!\n\u003ca href=\"https://github.com/mitre88\"\u003e\u003ccode\u003e@​mitre88\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/turanalmammadov\"\u003e\u003ccode\u003e@​turanalmammadov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/haosenwang1018\"\u003e\u003ccode\u003e@​haosenwang1018\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/Medno\"\u003e\u003ccode\u003e@​Medno\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/vladvildanov\"\u003e\u003ccode\u003e@​vladvildanov\u003c/code\u003e\u003c/a\u003e \u003ca href=\"https://github.com/petyaslavova\"\u003e\u003ccode\u003e@​petyaslavova\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/redis/redis-py/commit/b72f24ad6a2226d46aed770e18094a86117d2217\"\u003e\u003ccode\u003eb72f24a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/0a4e0afe36504c3fb6df1e38683ea946febac9d3\"\u003e\u003ccode\u003e0a4e0af\u003c/code\u003e\u003c/a\u003e Refactored health check logic for MultiDBClient (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3994\"\u003e#3994\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/15492c9156d3ab8dce05360977480510cf24fbf9\"\u003e\u003ccode\u003e15492c9\u003c/code\u003e\u003c/a\u003e Refactored connection count and SCH metric collection (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/4001\"\u003e#4001\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/cd964ac96649df872a051835e9a52e05a5090607\"\u003e\u003ccode\u003ecd964ac\u003c/code\u003e\u003c/a\u003e Expose basic Otel classes and funtions to be importable through redis.observa...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/46ab74d02ed9b15176f67edb817de83524f8145a\"\u003e\u003ccode\u003e46ab74d\u003c/code\u003e\u003c/a\u003e Fixing security concern in \u003cstrong\u003erepr\u003c/strong\u003e methods for ConnectionPools - passwords m...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/26482dbaae38abdb1966d9b1c803331e2dab2053\"\u003e\u003ccode\u003e26482db\u003c/code\u003e\u003c/a\u003e Fix AttributeError in cluster metrics recording when connection is None or Cl...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/8ecbc7a728792ab9c71078cb330a64c225cb3351\"\u003e\u003ccode\u003e8ecbc7a\u003c/code\u003e\u003c/a\u003e Updating lib version to 7.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/11043df86ed5f892cde1f34f08f3450f13bb6339\"\u003e\u003ccode\u003e11043df\u003c/code\u003e\u003c/a\u003e typing: accept single-key input for blpop and brpop (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3990\"\u003e#3990\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/d9581250202123ebf68d299e8f2ea79fa9bd7210\"\u003e\u003ccode\u003ed958125\u003c/code\u003e\u003c/a\u003e fix: use KeysT for blpop and brpop keys parameter type annotation (\u003ca href=\"https://redirect.github.com/redis/redis-py/issues/3987\"\u003e#3987\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/redis/redis-py/commit/75bf91b8a28bfc3f8417e58d1b78bd112ffcf6de\"\u003e\u003ccode\u003e75bf91b\u003c/code\u003e\u003c/a\u003e [async] Adding access to cluster client's nodes_manager and set_response_call...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/redis/redis-py/compare/v7.2.1...v7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `ipython` from 9.10.0 to 9.12.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d9c6e314c3f31cb624cd443448e9094fdd49a1eb\"\u003e\u003ccode\u003ed9c6e31\u003c/code\u003e\u003c/a\u003e release 9.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/4c560d21ec7d6f72d2f150400fdab010790c81d7\"\u003e\u003ccode\u003e4c560d2\u003c/code\u003e\u003c/a\u003e security note\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/bf954e4665168eeac39626164d76a646b683eaeb\"\u003e\u003ccode\u003ebf954e4\u003c/code\u003e\u003c/a\u003e Add release notes for 9.12\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/bfbdaaf71efae1d70ededaa0c0375400d7692d29\"\u003e\u003ccode\u003ebfbdaaf\u003c/code\u003e\u003c/a\u003e Merge remote-tracking branch 'ghsa/windows-programdata'\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/8aae9a39bd6b44d4a798540a8d4863f73593ff57\"\u003e\u003ccode\u003e8aae9a3\u003c/code\u003e\u003c/a\u003e strip ansi for comparison\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/e1aadc2c607df59f4d7313c60257ef9d43a46d7a\"\u003e\u003ccode\u003ee1aadc2\u003c/code\u003e\u003c/a\u003e fix test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/f48986a01e14eaed3504c474725e98700deae298\"\u003e\u003ccode\u003ef48986a\u003c/code\u003e\u003c/a\u003e fix-test\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/d9b5285f5cb06aba35d4c3842cee7d2795afed7c\"\u003e\u003ccode\u003ed9b5285\u003c/code\u003e\u003c/a\u003e try to group tb frames\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/323552ea59fab72dcb36e4960caaffc18d3c5dae\"\u003e\u003ccode\u003e323552e\u003c/code\u003e\u003c/a\u003e Interleave fast and slow traceback path\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/ipython/ipython/commit/22cd33275bfccae3666f9f54d7f90fab924e517b\"\u003e\u003ccode\u003e22cd332\u003c/code\u003e\u003c/a\u003e Fix missing space in pdb chained exceptions warning message\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/ipython/ipython/compare/9.10.0...9.12.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/mattiIce/PBX/pull/602","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/mattiIce%2FPBX/issues/602","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/602/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":null,"pr_created_at":"2026-03-17T04:04:37.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4086072905","node_id":"PR_kwDORckIoM7LGgi0","number":286,"state":"open","title":"security(deps): bump the training-dependencies group across 1 directory with 54 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":2,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-17T04:04:37.000Z","updated_at":"2026-03-17T04:36:23.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"security(deps): bump","group_name":"training-dependencies","update_count":54,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.2","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"rsl-rl-lib","old_version":"5.0.0","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the training-dependencies group with 54 updates in the /training/rl directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.2` | `1.38.3` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `5.0.0` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.2 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.2...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\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/pypa/packaging/blob/main/CHANGELOG.rst\"\u003epackaging's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003e26.0 - 2026-01-20\u003c/p\u003e\n\u003cpre\u003e\u003ccode\u003e\nFeatures:\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock (:pull:\u003ccode\u003e900\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata (:pull:\u003ccode\u003e948\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport for writing metadata to a file (:pull:\u003ccode\u003e846\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e on Version (:pull:\u003ccode\u003e1003\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e1004\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e897\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e (:pull:\u003ccode\u003e942\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e (:pull:\u003ccode\u003e951\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version (:pull:\u003ccode\u003e932\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. (:pull:\u003ccode\u003e954\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparisons (:pull:\u003ccode\u003e939\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e (:pull:\u003ccode\u003e860\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e (:pull:\u003ccode\u003e896\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e (:pull:\u003ccode\u003e868\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e (:pull:\u003ccode\u003e879\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format (:pull:\u003ccode\u003e925\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon (:pull:\u003ccode\u003e833\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions (:pull:\u003ccode\u003e931\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string (:pull:\u003ccode\u003e953\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eA root logger use found, use a \u003ccode\u003epackaging\u003c/code\u003e logger instead (:pull:\u003ccode\u003e965\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e (:pull:\u003ccode\u003e1022\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first (:pull:\u003ccode\u003e1024\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct (:pull:\u003ccode\u003e1033\u003c/code\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup (:pull:\u003ccode\u003e1019\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e (:pull:\u003ccode\u003e869\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e913\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003e's in specifier comparison (:pull:\u003ccode\u003e986\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eCache the \u003ccode\u003eSpecifier\u003c/code\u003e's \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e985\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster (:pull:\u003ccode\u003e987\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup (:pull:\u003ccode\u003e990\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ for \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e988\u003c/code\u003e, :pull:\u003ccode\u003e1055\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e (:pull:\u003ccode\u003e989\u003c/code\u003e, :pull:\u003ccode\u003e1048\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e (:pull:\u003ccode\u003e993\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ere.fullmatch\u003c/code\u003e in a couple more places (:pull:\u003ccode\u003e992\u003c/code\u003e, :pull:\u003ccode\u003e1029\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003emap\u003c/code\u003e instead of generator (:pull:\u003ccode\u003e996\u003c/code\u003e)\u003c/li\u003e\n\u003cli\u003eDeprecate \u003ccode\u003e._version\u003c/code\u003e (\u003ccode\u003e_Version\u003c/code\u003e, a \u003ccode\u003eNamedTuple\u003c/code\u003e) (:pull:\u003ccode\u003e995\u003c/code\u003e, :pull:\u003ccode\u003e106...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/286","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/286","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/286/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":null,"pr_created_at":"2026-03-17T02:36:10.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4085856754","node_id":"PR_kwDORckIoM7LF2od","number":285,"state":"closed","title":"chore(deps): bump the training-dependencies group across 1 directory with 57 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":3,"pull_request":true,"closed_at":"2026-03-17T04:01:06.000Z","author_association":null,"state_reason":null,"created_at":"2026-03-17T02:36:10.000Z","updated_at":"2026-03-17T04:38:38.000Z","time_to_close":5096,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"training-dependencies","update_count":57,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.1","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.19.0","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"azureml-mlflow","old_version":"1.61.0.post1","new_version":"1.62.0","repository_url":"https://github.com/Azure/MachineLearningNotebooks"},{"name":"rsl-rl-lib","old_version":"4.0.1","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pyasn1","old_version":"0.6.2","new_version":"0.6.3","repository_url":"https://github.com/pyasn1/pyasn1"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":null,"ecosystem":"pip"},"body":"Bumps the training-dependencies group with 57 updates in the /training/rl directory:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.1` | `1.38.3` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.19.0` | `12.28.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [azureml-mlflow](https://github.com/Azure/MachineLearningNotebooks) | `1.61.0.post1` | `1.62.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `4.0.1` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pyasn1](https://github.com/pyasn1/pyasn1) | `0.6.2` | `0.6.3` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.1 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.2\u003c/h2\u003e\n\u003ch2\u003e1.38.2 (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve the leading slash when the URL template starts with \u003ccode\u003e/?\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3e9fec2338ae644e380401dec9e407706cb27115\"\u003e\u003ccode\u003e3e9fec2\u003c/code\u003e\u003c/a\u003e [Core] Update changelog (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45230\"\u003e#45230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5f8d700bf670c475692fd1de087d696af72b66c\"\u003e\u003ccode\u003eb5f8d70\u003c/code\u003e\u003c/a\u003e [Core] Fix format_url to allow leading slash if specified (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.1...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.19.0 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.19.0...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packa...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/285","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/285","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/285/packages"}},{"old_version":"1.35.0","new_version":"1.35.1","update_type":"patch","path":"/training/rl","pr_created_at":"2026-03-16T21:05:58.000Z","version_change":"1.35.0 → 1.35.1","issue":{"uuid":"4084790470","node_id":"PR_kwDORckIoM7LCgsA","number":281,"state":"open","title":"chore(deps): bump the training-dependencies group in /training/rl with 56 updates","user":"dependabot[bot]","labels":["dependencies","python","training"],"assignees":[],"locked":false,"comments_count":1,"pull_request":true,"closed_at":null,"author_association":null,"state_reason":null,"created_at":"2026-03-16T21:05:58.000Z","updated_at":"2026-03-16T21:06:33.000Z","time_to_close":null,"merged_at":null,"merged_by":null,"closed_by":null,"dependency_metadata":{"prefix":"chore(deps): bump","group_name":"training-dependencies","update_count":56,"packages":[{"name":"numpy","old_version":"1.26.4","new_version":"2.4.3","repository_url":"https://github.com/numpy/numpy"},{"name":"azure-core","old_version":"1.38.1","new_version":"1.38.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-storage-blob","old_version":"12.19.0","new_version":"12.28.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-identity","old_version":"1.25.2","new_version":"1.25.3","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"azure-ai-ml","old_version":"1.31.0","new_version":"1.32.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"marshmallow","old_version":"3.26.2","new_version":"4.2.2","repository_url":"https://github.com/marshmallow-code/marshmallow"},{"name":"mlflow","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"packaging","old_version":"25.0","new_version":"26.0","repository_url":"https://github.com/pypa/packaging"},{"name":"azureml-mlflow","old_version":"1.61.0.post1","new_version":"1.62.0","repository_url":"https://github.com/Azure/MachineLearningNotebooks"},{"name":"rsl-rl-lib","old_version":"4.0.1","new_version":"5.0.1","repository_url":"https://github.com/leggedrobotics/rsl_rl"},{"name":"azure-storage-file-datalake","old_version":"12.14.0","new_version":"12.23.0","repository_url":"https://github.com/Azure/azure-sdk-for-python"},{"name":"cachetools","old_version":"6.2.6","new_version":"7.0.5","repository_url":"https://github.com/tkem/cachetools"},{"name":"charset-normalizer","old_version":"3.4.4","new_version":"3.4.6","repository_url":"https://github.com/jawah/charset_normalizer"},{"name":"croniter","old_version":"6.0.0","new_version":"6.2.2","repository_url":"https://github.com/pallets-eco/croniter"},{"name":"cyclopts","old_version":"4.6.0","new_version":"4.10.0","repository_url":"https://github.com/BrianPugh/cyclopts"},{"name":"databricks-sdk","old_version":"0.96.0","new_version":"0.100.0","repository_url":"https://github.com/databricks/databricks-sdk-py"},{"name":"fastmcp","old_version":"2.14.5","new_version":"3.1.1","repository_url":"https://github.com/PrefectHQ/fastmcp"},{"name":"filelock","old_version":"3.25.0","new_version":"3.25.2","repository_url":"https://github.com/tox-dev/py-filelock"},{"name":"fonttools","old_version":"4.61.1","new_version":"4.62.1","repository_url":"https://github.com/fonttools/fonttools"},{"name":"google-auth","old_version":"2.48.0","new_version":"2.49.1","repository_url":"https://github.com/googleapis/google-auth-library-python"},{"name":"graphql-core","old_version":"3.2.7","new_version":"3.2.8","repository_url":"https://github.com/graphql-python/graphql-core"},{"name":"gunicorn","old_version":"23.0.0","new_version":"25.1.0","repository_url":"https://github.com/benoitc/gunicorn"},{"name":"jaraco-context","old_version":"6.1.0","new_version":"6.1.1","repository_url":"https://github.com/jaraco/jaraco.context"},{"name":"kiwisolver","old_version":"1.4.9","new_version":"1.5.0","repository_url":"https://github.com/nucleic/kiwi"},{"name":"mlflow-skinny","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mlflow-tracing","old_version":"3.5.0","new_version":"3.10.1","repository_url":"https://github.com/mlflow/mlflow"},{"name":"mpmath","old_version":"1.3.0","new_version":"1.4.1","repository_url":"https://github.com/mpmath/mpmath"},{"name":"msal","old_version":"1.35.0","new_version":"1.35.1","repository_url":"https://github.com/AzureAD/microsoft-authentication-library-for-python"},{"name":"opentelemetry-api","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-instrumentation","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-asgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-dbapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-django","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-fastapi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-flask","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-psycopg2","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-requests","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-urllib3","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-instrumentation-wsgi","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"opentelemetry-sdk","old_version":"1.39.0","new_version":"1.40.0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-semantic-conventions","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python"},{"name":"opentelemetry-util-http","old_version":"0.60b0","new_version":"0.61b0","repository_url":"https://github.com/open-telemetry/opentelemetry-python-contrib"},{"name":"pandas","old_version":"2.3.3","new_version":"3.0.1","repository_url":"https://github.com/pandas-dev/pandas"},{"name":"platformdirs","old_version":"4.9.2","new_version":"4.9.4","repository_url":"https://github.com/tox-dev/platformdirs"},{"name":"protobuf","old_version":"6.33.5","new_version":"7.34.0","repository_url":"https://github.com/protocolbuffers/protobuf"},{"name":"py-key-value-aio","old_version":"0.3.0","new_version":"0.4.4"},{"name":"pyarrow","old_version":"21.0.0","new_version":"23.0.1","repository_url":"https://github.com/apache/arrow"},{"name":"pydantic-core","old_version":"2.41.5","new_version":"2.42.0","repository_url":"https://github.com/pydantic/pydantic-core"},{"name":"pydocket","old_version":"0.18.0","new_version":"0.18.2","repository_url":"https://github.com/chrisguidry/docket"},{"name":"pytz","old_version":"2025.2","new_version":"2026.1.post1","repository_url":"https://github.com/stub42/pytz"},{"name":"redis","old_version":"7.2.1","new_version":"7.3.0","repository_url":"https://github.com/redis/redis-py"},{"name":"setuptools","old_version":"82.0.0","new_version":"82.0.1","repository_url":"https://github.com/pypa/setuptools"},{"name":"smmap","old_version":"5.0.2","new_version":"5.0.3","repository_url":"https://github.com/gitpython-developers/smmap"},{"name":"uvicorn","old_version":"0.41.0","new_version":"0.42.0","repository_url":"https://github.com/Kludex/uvicorn"},{"name":"wrapt","old_version":"1.17.3","new_version":"2.1.2","repository_url":"https://github.com/GrahamDumpleton/wrapt"}],"path":"/training/rl","ecosystem":"pip"},"body":"Bumps the training-dependencies group in /training/rl with 56 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [numpy](https://github.com/numpy/numpy) | `1.26.4` | `2.4.3` |\n| [azure-core](https://github.com/Azure/azure-sdk-for-python) | `1.38.1` | `1.38.3` |\n| [azure-storage-blob](https://github.com/Azure/azure-sdk-for-python) | `12.19.0` | `12.28.0` |\n| [azure-identity](https://github.com/Azure/azure-sdk-for-python) | `1.25.2` | `1.25.3` |\n| [azure-ai-ml](https://github.com/Azure/azure-sdk-for-python) | `1.31.0` | `1.32.0` |\n| [marshmallow](https://github.com/marshmallow-code/marshmallow) | `3.26.2` | `4.2.2` |\n| [mlflow](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [packaging](https://github.com/pypa/packaging) | `25.0` | `26.0` |\n| [azureml-mlflow](https://github.com/Azure/MachineLearningNotebooks) | `1.61.0.post1` | `1.62.0` |\n| [rsl-rl-lib](https://github.com/leggedrobotics/rsl_rl) | `4.0.1` | `5.0.1` |\n| [azure-storage-file-datalake](https://github.com/Azure/azure-sdk-for-python) | `12.14.0` | `12.23.0` |\n| [cachetools](https://github.com/tkem/cachetools) | `6.2.6` | `7.0.5` |\n| [charset-normalizer](https://github.com/jawah/charset_normalizer) | `3.4.4` | `3.4.6` |\n| [croniter](https://github.com/pallets-eco/croniter) | `6.0.0` | `6.2.2` |\n| [cyclopts](https://github.com/BrianPugh/cyclopts) | `4.6.0` | `4.10.0` |\n| [databricks-sdk](https://github.com/databricks/databricks-sdk-py) | `0.96.0` | `0.100.0` |\n| [fastmcp](https://github.com/PrefectHQ/fastmcp) | `2.14.5` | `3.1.1` |\n| [filelock](https://github.com/tox-dev/py-filelock) | `3.25.0` | `3.25.2` |\n| [fonttools](https://github.com/fonttools/fonttools) | `4.61.1` | `4.62.1` |\n| [google-auth](https://github.com/googleapis/google-auth-library-python) | `2.48.0` | `2.49.1` |\n| [graphql-core](https://github.com/graphql-python/graphql-core) | `3.2.7` | `3.2.8` |\n| [gunicorn](https://github.com/benoitc/gunicorn) | `23.0.0` | `25.1.0` |\n| [jaraco-context](https://github.com/jaraco/jaraco.context) | `6.1.0` | `6.1.1` |\n| [kiwisolver](https://github.com/nucleic/kiwi) | `1.4.9` | `1.5.0` |\n| [mlflow-skinny](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mlflow-tracing](https://github.com/mlflow/mlflow) | `3.5.0` | `3.10.1` |\n| [mpmath](https://github.com/mpmath/mpmath) | `1.3.0` | `1.4.1` |\n| [msal](https://github.com/AzureAD/microsoft-authentication-library-for-python) | `1.35.0` | `1.35.1` |\n| [opentelemetry-api](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-instrumentation](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-asgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-dbapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-django](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-fastapi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-flask](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-psycopg2](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-requests](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-urllib3](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-instrumentation-wsgi](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [opentelemetry-sdk](https://github.com/open-telemetry/opentelemetry-python) | `1.39.0` | `1.40.0` |\n| [opentelemetry-semantic-conventions](https://github.com/open-telemetry/opentelemetry-python) | `0.60b0` | `0.61b0` |\n| [opentelemetry-util-http](https://github.com/open-telemetry/opentelemetry-python-contrib) | `0.60b0` | `0.61b0` |\n| [pandas](https://github.com/pandas-dev/pandas) | `2.3.3` | `3.0.1` |\n| [platformdirs](https://github.com/tox-dev/platformdirs) | `4.9.2` | `4.9.4` |\n| [protobuf](https://github.com/protocolbuffers/protobuf) | `6.33.5` | `7.34.0` |\n| py-key-value-aio | `0.3.0` | `0.4.4` |\n| [pyarrow](https://github.com/apache/arrow) | `21.0.0` | `23.0.1` |\n| [pydantic-core](https://github.com/pydantic/pydantic-core) | `2.41.5` | `2.42.0` |\n| [pydocket](https://github.com/chrisguidry/docket) | `0.18.0` | `0.18.2` |\n| [pytz](https://github.com/stub42/pytz) | `2025.2` | `2026.1.post1` |\n| [redis](https://github.com/redis/redis-py) | `7.2.1` | `7.3.0` |\n| [setuptools](https://github.com/pypa/setuptools) | `82.0.0` | `82.0.1` |\n| [smmap](https://github.com/gitpython-developers/smmap) | `5.0.2` | `5.0.3` |\n| [uvicorn](https://github.com/Kludex/uvicorn) | `0.41.0` | `0.42.0` |\n| [wrapt](https://github.com/GrahamDumpleton/wrapt) | `1.17.3` | `2.1.2` |\n\nUpdates `numpy` from 1.26.4 to 2.4.3\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.3 (Mar 9, 2026)\u003c/h2\u003e\n\u003ch1\u003eNumPy 2.4.3 Release Notes\u003c/h1\u003e\n\u003cp\u003eThe NumPy 2.4.3 is a patch release that fixes bugs discovered after the\n2.4.2 release. The most user visible fix may be a threading fix for\nOpenBLAS on ARM, closing issue \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30816\"\u003e#30816\u003c/a\u003e.\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 11 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\u003eAntareep Sarkar +\u003c/li\u003e\n\u003cli\u003eCharles Harris\u003c/li\u003e\n\u003cli\u003eJoren Hammudoglu\u003c/li\u003e\n\u003cli\u003eMatthieu Darbois\u003c/li\u003e\n\u003cli\u003eMatti Picus\u003c/li\u003e\n\u003cli\u003eNathan Goldbaum\u003c/li\u003e\n\u003cli\u003ePeter Hawkins\u003c/li\u003e\n\u003cli\u003ePieter Eendebak\u003c/li\u003e\n\u003cli\u003eSebastian Berg\u003c/li\u003e\n\u003cli\u003eWarren Weckesser\u003c/li\u003e\n\u003cli\u003estratakis +\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePull requests merged\u003c/h2\u003e\n\u003cp\u003eA total of 14 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/30759\"\u003e#30759\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/30827\"\u003e#30827\u003c/a\u003e: BUG: Fix some leaks found via LeakSanitizer (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30756\"\u003e#30756\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30841\"\u003e#30841\u003c/a\u003e: MAINT: Synchronize 2.4.x submodules with main\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30849\"\u003e#30849\u003c/a\u003e: TYP: \u003ccode\u003ematlib\u003c/code\u003e: missing extended precision imports\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30850\"\u003e#30850\u003c/a\u003e: BUG: Fix weak hash function in np.isin(). (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30840\"\u003e#30840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30921\"\u003e#30921\u003c/a\u003e: BUG: fix infinite recursion in np.ma.flatten_structured_array...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30922\"\u003e#30922\u003c/a\u003e: BUG: Fix buffer overrun in CPU baseline validation (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30877\"\u003e#30877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30923\"\u003e#30923\u003c/a\u003e: BUG: Fix busdaycalendar's handling of a bool array weekmask....\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30924\"\u003e#30924\u003c/a\u003e: BUG: Fix reference leaks and NULL pointer dereferences (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30908\"\u003e#30908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30925\"\u003e#30925\u003c/a\u003e: MAINT: fix two minor issues noticed when touching the C API setup\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30955\"\u003e#30955\u003c/a\u003e: ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30957\"\u003e#30957\u003c/a\u003e: BUG: fix type issues in uses if PyDataType macros\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30958\"\u003e#30958\u003c/a\u003e: MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://redirect.github.com/numpy/numpy/pull/30973\"\u003e#30973\u003c/a\u003e: MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\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\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\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\u003ch2\u003eCheck the numpy-release repo\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/numpy/numpy/commit/8bcb2e72e67c343e55165e6064fe6a9dc011e954\"\u003e\u003ccode\u003e8bcb2e7\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30974\"\u003e#30974\u003c/a\u003e from charris/prepare-2.4.3\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9a2b5eef3b142e852c0092d449b2ea54e8d87314\"\u003e\u003ccode\u003e9a2b5ee\u003c/code\u003e\u003c/a\u003e REL: Prepare for the NumPy 2.4.3 release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/a822ac28798a9a7ed1094879caaf885e282ccb6c\"\u003e\u003ccode\u003ea822ac2\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30973\"\u003e#30973\u003c/a\u003e from charris/backport-30961\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/039bf549aad7ac149587884582e561f555ed770a\"\u003e\u003ccode\u003e039bf54\u003c/code\u003e\u003c/a\u003e MAINT: update openblas (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30961\"\u003e#30961\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/254bafa78941aa1ceb9f4680c9f07e9ec6bb94b0\"\u003e\u003ccode\u003e254bafa\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30955\"\u003e#30955\u003c/a\u003e from charris/backport-30879\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/0cc7d38c659741ddece03e59dad154bf3006bf49\"\u003e\u003ccode\u003e0cc7d38\u003c/code\u003e\u003c/a\u003e ENH: Test .kind not .char in np.testing.assert_equal (\u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30879\"\u003e#30879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/9ee571dee7982c1e8369148c1585a07e9bd878b8\"\u003e\u003ccode\u003e9ee571d\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30957\"\u003e#30957\u003c/a\u003e from charris/backport-30918\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/f302a1699020958b2ee02a3eb4177160f8153556\"\u003e\u003ccode\u003ef302a16\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/numpy/numpy/issues/30958\"\u003e#30958\u003c/a\u003e from charris/backport-30938\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/d240a09784a41e9f7b00de2d9d24b2a1d46d171b\"\u003e\u003ccode\u003ed240a09\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/numpy/numpy/commit/4fc08e9ebfd25530345fbd8f03bcd60fb7b0fbda\"\u003e\u003ccode\u003e4fc08e9\u003c/code\u003e\u003c/a\u003e MAINT: Don't use vulture 2.15, it has false positives\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/numpy/numpy/compare/v1.26.4...v2.4.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-core` from 1.38.1 to 1.38.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-core's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-core_1.38.3\u003c/h2\u003e\n\u003ch2\u003e1.38.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve trailing slash in the base URL when the URL template is query-string-only (e.g., \u003ccode\u003e?key=value\u003c/code\u003e). \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45365\"\u003e#45365\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eSensitiveHeaderCleanupPolicy\u003c/code\u003e to persist the \u003ccode\u003einsecure_domain_change\u003c/code\u003e flag across retries after a cross-domain redirect. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eAdded jitter to token refresh timing in \u003ccode\u003eBearerTokenCredentialPolicy\u003c/code\u003e and \u003ccode\u003eAsyncBearerTokenCredentialPolicy\u003c/code\u003e to prevent simultaneous token refresh attempts across multiple processes. This helps mitigate the thundering herd problem during token refresh operations. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eazure-core_1.38.2\u003c/h2\u003e\n\u003ch2\u003e1.38.2 (2026-02-18)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003ePipelineClient.format_url\u003c/code\u003e to preserve the leading slash when the URL template starts with \u003ccode\u003e/?\u003c/code\u003e. \u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\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/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/079e76bb7bef96cf1027777afc69995b6024b857\"\u003e\u003ccode\u003e079e76b\u003c/code\u003e\u003c/a\u003e Port data-plane packages in sdk/core/ to pyproject.toml (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45556\"\u003e#45556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2117dfb31ed48fe429ef2604aeb89526e9496c66\"\u003e\u003ccode\u003e2117dfb\u003c/code\u003e\u003c/a\u003e [Core] Persist cross domain redirect flag (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45518\"\u003e#45518\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2d0a9aa509c220d575c33e81207a5b6dedb5f148\"\u003e\u003ccode\u003e2d0a9aa\u003c/code\u003e\u003c/a\u003e [Core] Update pytest fixture scope (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45563\"\u003e#45563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4c4c8698d61f2ad60296ef0cf7c64f7837cdc5a3\"\u003e\u003ccode\u003e4c4c869\u003c/code\u003e\u003c/a\u003e [Core] Add jitter to token refresh intervals (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43720\"\u003e#43720\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/41391f1e7b5ad52e3d480a7adcbf3fa5b99e2326\"\u003e\u003ccode\u003e41391f1\u003c/code\u003e\u003c/a\u003e [azure-core] Fix \u003ccode\u003eformat_url\u003c/code\u003e dropping trailing slash when URL template is qu...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9fdb4f1a9764b466a408eeed45ce59da97e150a5\"\u003e\u003ccode\u003e9fdb4f1\u003c/code\u003e\u003c/a\u003e [Corehttp] Changelog update (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45113\"\u003e#45113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f40b764989ce757cd35698cae9c91b3a52c0b7a9\"\u003e\u003ccode\u003ef40b764\u003c/code\u003e\u003c/a\u003e Increment package version after release of azure-core (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45246\"\u003e#45246\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/3e9fec2338ae644e380401dec9e407706cb27115\"\u003e\u003ccode\u003e3e9fec2\u003c/code\u003e\u003c/a\u003e [Core] Update changelog (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45230\"\u003e#45230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5f8d700bf670c475692fd1de087d696af72b66c\"\u003e\u003ccode\u003eb5f8d70\u003c/code\u003e\u003c/a\u003e [Core] Fix format_url to allow leading slash if specified (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45218\"\u003e#45218\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-core_1.38.1...azure-core_1.38.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-storage-blob` from 12.19.0 to 12.28.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b3301acbed95d1e11f8ab859eced5292627c763a\"\u003e\u003ccode\u003eb3301ac\u003c/code\u003e\u003c/a\u003e STG 100 GA Release Date for 2026-01-06\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/beb8dfaad1420c54288adb8e0ceb468cff144a70\"\u003e\u003ccode\u003ebeb8dfa\u003c/code\u003e\u003c/a\u003e [Storage][STG 100] Prepare branch for GA + cherry-pick block size change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44\"\u003e#44\u003c/a\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/874cfcf701ccc2a2ef9a3444fe0563ce2efdc058\"\u003e\u003ccode\u003e874cfcf\u003c/code\u003e\u003c/a\u003e [Storage] Update Swagger and Release Date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44243\"\u003e#44243\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/4aca0cc83494e1fe243a21d31af357acf60160be\"\u003e\u003ccode\u003e4aca0cc\u003c/code\u003e\u003c/a\u003e Fix perf tests on Python 3.14 + Storage change (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44230\"\u003e#44230\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/cd5ecc5c0e05c1deeb4b74f72d85f01418e5d27c\"\u003e\u003ccode\u003ecd5ecc5\u003c/code\u003e\u003c/a\u003e [Storage] Fix 100 Live Tests (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44108\"\u003e#44108\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/1cd78b1c3dbc5acb2a40d81cf4d3587783a187eb\"\u003e\u003ccode\u003e1cd78b1\u003c/code\u003e\u003c/a\u003e [Storage] Added support for Python 3.14 + update 100 release date (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44224\"\u003e#44224\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/471cda17da08c0320c12c4f2ee30becaaec94a7a\"\u003e\u003ccode\u003e471cda1\u003c/code\u003e\u003c/a\u003e [Storage] Add Blob download perf test that uses HTTP library directly (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44111\"\u003e#44111\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/9e53510dc0e1acfdbbf418174f656fac5025ea92\"\u003e\u003ccode\u003e9e53510\u003c/code\u003e\u003c/a\u003e [Storage] Decompression for Binary Response in Download APIs (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43587\"\u003e#43587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/68b646be00366dc3f9157065eccf55dd0c7c21b2\"\u003e\u003ccode\u003e68b646b\u003c/code\u003e\u003c/a\u003e Removed create file with data and file semantics features (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/43978\"\u003e#43978\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/09f0066bee9b717da6e15aa5fc2183e3490fe7f1\"\u003e\u003ccode\u003e09f0066\u003c/code\u003e\u003c/a\u003e [Storage] Added Support for \u003ccode\u003eUseDevelopmentStorage=true;\u003c/code\u003e for Connection Stri...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-storage-blob_12.19.0...azure-storage-blob_12.28.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-identity` from 1.25.2 to 1.25.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-identity's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-identity_1.25.3\u003c/h2\u003e\n\u003ch2\u003e1.25.3 (2026-03-12)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eFixed an issue where an expired token could skip refresh when a recent token request was made, due to the retry delay taking precedence over expiration. (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/pull/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eOther Changes\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eBumped minimum dependency on \u003ccode\u003emsal\u003c/code\u003e to \u003ccode\u003e\u0026gt;=1.35.1\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/Azure/azure-sdk-for-python/commit/a989ea467731265fdf097b622ba254703187746b\"\u003e\u003ccode\u003ea989ea4\u003c/code\u003e\u003c/a\u003e [Identity] Prep patch release\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/79728834e7f38018d372860cf9117bf51d9ed417\"\u003e\u003ccode\u003e7972883\u003c/code\u003e\u003c/a\u003e [Identity] Adjust refresh logic (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45496\"\u003e#45496\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/04764a9a8a0cb59aab6421b41152246853dfcfe8\"\u003e\u003ccode\u003e04764a9\u003c/code\u003e\u003c/a\u003e add psscript to convert apiview json files to md (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45589\"\u003e#45589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/50e01659d7204865dfa07c5ece1019ed9a229b4f\"\u003e\u003ccode\u003e50e0165\u003c/code\u003e\u003c/a\u003e Sync eng/common directory with azure-sdk-tools for PR 14461 (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45646\"\u003e#45646\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/5333117e0e181404ff4deaa757e9b6ef86dabf8b\"\u003e\u003ccode\u003e5333117\u003c/code\u003e\u003c/a\u003e Add Bo to /sdk/ai/azure-ai-projects owner list (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45664\"\u003e#45664\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/775d6942e4335422fc69da8e997a6069e356b104\"\u003e\u003ccode\u003e775d694\u003c/code\u003e\u003c/a\u003e Doc and automation updates for .github sync directory changes (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45630\"\u003e#45630\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c6e48b5cd71adf5728a5e2f33bc9f62fb221221f\"\u003e\u003ccode\u003ec6e48b5\u003c/code\u003e\u003c/a\u003e [Core] Prepare release (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45656\"\u003e#45656\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/ae769c4e9379c8d309bffa5ccb76dcfba64e1f71\"\u003e\u003ccode\u003eae769c4\u003c/code\u003e\u003c/a\u003e Fix custom Memory Stores LRO poller operation (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45662\"\u003e#45662\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/6074492844d670316eb171756483f1394a6c94c7\"\u003e\u003ccode\u003e6074492\u003c/code\u003e\u003c/a\u003e Add asset id none check in dt (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45618\"\u003e#45618\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/e1a986aeb7a8001bd3a4f336cf096c2b050aa480\"\u003e\u003ccode\u003ee1a986a\u003c/code\u003e\u003c/a\u003e Bump tar from 7.5.10 to 7.5.11 in /eng/common/tsp-client (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45640\"\u003e#45640\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-identity_1.25.2...azure-identity_1.25.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `azure-ai-ml` from 1.31.0 to 1.32.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/releases\"\u003eazure-ai-ml's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eazure-ai-ml_1.32.0\u003c/h2\u003e\n\u003ch2\u003e1.32.0 (2026-03-04)\u003c/h2\u003e\n\u003ch3\u003eBugs Fixed\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003eSkip _list_secrets for identity-based datastores to prevent noisy telemetry traces.\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/Azure/azure-sdk-for-python/commit/4f79bdf278eaa55e855884dbd9bd841d62c7583c\"\u003e\u003ccode\u003e4f79bdf\u003c/code\u003e\u003c/a\u003e Remove empty 'Other Changes' section from CHANGELOG\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/fe81c2e887e21aad87f63c476f71f4444f8deaab\"\u003e\u003ccode\u003efe81c2e\u003c/code\u003e\u003c/a\u003e Update CHANGELOG for version 1.32.0\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/b5e228067bf3e66f04074a893e30eda239e13f0f\"\u003e\u003ccode\u003eb5e2280\u003c/code\u003e\u003c/a\u003e Update CHANGELOG.md\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/2ddc7b9c3d0c1f05304ff1bb53863b730e6edb1d\"\u003e\u003ccode\u003e2ddc7b9\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-artifactsigning]-generated-from-SDK Generation - Python-58...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/c270319e20141ce00ac29959f3a5aad1836c4176\"\u003e\u003ccode\u003ec270319\u003c/code\u003e\u003c/a\u003e App Configuration - Snapshot references (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44116\"\u003e#44116\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/f6050668fd6308858a3dabc8e5d660c563b033b0\"\u003e\u003ccode\u003ef605066\u003c/code\u003e\u003c/a\u003e [CODEOWNERS Data Quality] Fix up CODEOWNERS (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44945\"\u003e#44945\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/47e90c151dfde889db32985b8ec0b0d7edcfa167\"\u003e\u003ccode\u003e47e90c1\u003c/code\u003e\u003c/a\u003e Use azpysdk ApiStub in CI (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/44439\"\u003e#44439\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/7700f5a8eae238b6e9777da321cd20b5fe6a7100\"\u003e\u003ccode\u003e7700f5a\u003c/code\u003e\u003c/a\u003e [VoiceLive] Add code owners (\u003ca href=\"https://redirect.github.com/Azure/azure-sdk-for-python/issues/45191\"\u003e#45191\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/a9b472fb0526d64c3eb6d55d7d14ff63c8a761fe\"\u003e\u003ccode\u003ea9b472f\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-managedops]-generated-from-SDK Generation - Python-5788712...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/Azure/azure-sdk-for-python/commit/bef7492d4b2d346178adea165eff23fafe838c0c\"\u003e\u003ccode\u003ebef7492\u003c/code\u003e\u003c/a\u003e [AutoPR azure-mgmt-postgresqlflexibleservers]-generated-from-SDK Generation -...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/Azure/azure-sdk-for-python/compare/azure-ai-ml_1.31.0...azure-ai-ml_1.32.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `marshmallow` from 3.26.2 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/marshmallow-code/marshmallow/blob/dev/CHANGELOG.rst\"\u003emarshmallow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e4.2.2 (2026-02-04)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix behavior of \u003ccode\u003efields.Contant(None)\u003c/code\u003e (:issue:\u003ccode\u003e2868\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for reporting and \u003ccode\u003eemmanuel-ferdman\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.1 (2026-01-23)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eFix validation of URLs beginning with uppercare \u003ccode\u003eFILE\u003c/code\u003e (:issue:\u003ccode\u003e2891\u003c/code\u003e).\nThanks :user:\u003ccode\u003ethanhlecongg\u003c/code\u003e for reporting and fixing.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.2.0 (2026-01-04)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003emany\u003c/code\u003e argument of \u003ccode\u003eNested\u003c/code\u003e properly overrides schema instance\nvalue (:pr:\u003ccode\u003e2854\u003c/code\u003e). Thanks :user:\u003ccode\u003ejafournier\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.2 (2025-12-19)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e:cve:\u003ccode\u003e2025-68480\u003c/code\u003e: Merge error store messages without rebuilding collections.\nThanks 카푸치노 for reporting and :user:\u003ccode\u003edeckar01\u003c/code\u003e for the fix.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.1 (2025-11-05)\u003c/h2\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eEnsure \u003ccode\u003eURL\u003c/code\u003e validator is case-insensitive when using custom schemes (:pr:\u003ccode\u003e2874\u003c/code\u003e).\nThanks :user:\u003ccode\u003eT90REAL\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e4.1.0 (2025-11-01)\u003c/h2\u003e\n\u003cp\u003eOther changes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd \u003ccode\u003e__len__\u003c/code\u003e implementation to \u003ccode\u003emissing\u003c/code\u003e so that it can be used with\n\u003ccode\u003evalidate.Length \u0026lt;marshmallow.validate.Length\u0026gt;\u003c/code\u003e (:pr:\u003ccode\u003e2861\u003c/code\u003e).\nThanks :user:\u003ccode\u003eagentgodzilla\u003c/code\u003e for the PR.\u003c/li\u003e\n\u003cli\u003eDrop support for Python 3.9 (:pr:\u003ccode\u003e2363\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/marshmallow-code/marshmallow/commit/2a3812d5049c83e98db60a0869919521f97cd77d\"\u003e\u003ccode\u003e2a3812d\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/19ca8dce2d5bde94509a4a89e495f35c695442d5\"\u003e\u003ccode\u003e19ca8dc\u003c/code\u003e\u003c/a\u003e Fix Constant field rejecting None values during load (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2894\"\u003e#2894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/213ee3a020e24fb26ead3a2285ba0402c90080ce\"\u003e\u003ccode\u003e213ee3a\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2896\"\u003e#2896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/ba8b512b24ebf4789099f1afafe9256b1bda950e\"\u003e\u003ccode\u003eba8b512\u003c/code\u003e\u003c/a\u003e Update AUTHORS.rst\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/40105adb3b3916dda5dcd16133d29ad44e7a33b9\"\u003e\u003ccode\u003e40105ad\u003c/code\u003e\u003c/a\u003e Bump version and update changelog\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/39e7c833e9c8711a49d6d710f7e3ee5cf2effbbe\"\u003e\u003ccode\u003e39e7c83\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2892\"\u003e#2892\u003c/a\u003e from thanhlecongg/fix-2891\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/78a94ea0e7ee9f35f8322318064232fe6147f190\"\u003e\u003ccode\u003e78a94ea\u003c/code\u003e\u003c/a\u003e Fix docstring typo\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/8dc078e2b86312988e5f7ed32849ae0788779e81\"\u003e\u003ccode\u003e8dc078e\u003c/code\u003e\u003c/a\u003e fix issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/c62b9113dc0ec136eb24214b6eb6f856af8f5df3\"\u003e\u003ccode\u003ec62b911\u003c/code\u003e\u003c/a\u003e add tests for issue \u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2891\"\u003e#2891\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/marshmallow-code/marshmallow/commit/d07bf5e3d218cd5ffa1fcd1dce411f7a5c88e256\"\u003e\u003ccode\u003ed07bf5e\u003c/code\u003e\u003c/a\u003e [pre-commit.ci] pre-commit autoupdate (\u003ca href=\"https://redirect.github.com/marshmallow-code/marshmallow/issues/2887\"\u003e#2887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/marshmallow-code/marshmallow/compare/3.26.2...4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `mlflow` from 3.5.0 to 3.10.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/mlflow/mlflow/releases\"\u003emlflow's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev3.10.1\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Gateway] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003ev3.10.0\u003c/h2\u003e\n\u003cp\u003eWe're excited to announce MLflow 3.10.0, which includes several notable updates:\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/mlflow/mlflow/blob/master/CHANGELOG.md\"\u003emlflow's changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.10.1 (2026-03-05)\u003c/h2\u003e\n\u003cp\u003eMLflow 3.10.1 is a patch release that contains some minor feature enhancements, bug fixes, and documentation updates.\u003c/p\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Add try-it page on Gateway usage example modal (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21077\"\u003e#21077\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Filter gateway experiments from the experiment list page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21130\"\u003e#21130\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBug fixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[UI] Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21191\"\u003e#21191\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Persist AI Gateway default passphrase security banner dismissal to localStorage (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21292\"\u003e#21292\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Evaluation] Demote unused parameters log message from WARNING to DEBUG in instructions judge (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21294\"\u003e#21294\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Prompts / UI] Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix judge builder instruction textarea (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21299\"\u003e#21299\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix group mode to aggregate \u0026quot;Additional runs\u0026quot; as \u0026quot;Unassigned\u0026quot; group in charts (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21155\"\u003e#21155\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix artifact download when workspaces are enabled (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21074\"\u003e#21074\u003c/a\u003e, \u003ca href=\"https://github.com/timsolovev\"\u003e\u003ccode\u003e@​timsolovev\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix NOT NULL constraint on assessments.trace_id during trace export (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21348\"\u003e#21348\u003c/a\u003e, \u003ca href=\"https://github.com/dbczumar\"\u003e\u003ccode\u003e@​dbczumar\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Fix 403 Forbidden for artifact list via query param when \u003ccode\u003edefault_permission=NO_PERMISSIONS\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21220\"\u003e#21220\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] [ML-63097] Fix broken LLM judge documentation links (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21347\"\u003e#21347\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix Run Judge failed with litellm.InternalServerError: Invalid response object. (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21262\"\u003e#21262\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing / UI] Update Action menu: indentation to avoid confusion (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21266\"\u003e#21266\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Model Registry] Fix MlflowClient.copy_model_version for the case that copy UC model across workspaces (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21212\"\u003e#21212\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix empty description box rendering for sanitized-empty experiment descriptions (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21223\"\u003e#21223\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Artifacts] Fix single artifact downloading through \u003ccode\u003eHttpArtifactRepository\u003c/code\u003e (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/12955\"\u003e#12955\u003c/a\u003e, \u003ca href=\"https://github.com/Koenkk\"\u003e\u003ccode\u003e@​Koenkk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix find_last_user_message_index skipping skill content injections (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21119\"\u003e#21119\u003c/a\u003e, \u003ca href=\"https://github.com/alkispoly-db\"\u003e\u003ccode\u003e@​alkispoly-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Fix retrieval context extraction when span outputs are stored as strings (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21213\"\u003e#21213\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Fix visibility toggle button in chart tooltip not working (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21071\"\u003e#21071\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[UI] Move gateway experiment filtering to server-side query to fix inconsistent page sizes (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21138\"\u003e#21138\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[] Downgrade spurious warning to debug log for gateway endpoints with fallback_config but no FALLBACK models (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21123\"\u003e#21123\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper to pass None for optional params with UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21051\"\u003e#21051\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracking] Add CASCADE to \u003ccode\u003elogged_model\u003c/code\u003e tables \u003ccode\u003eexperiment_id\u003c/code\u003e foreign keys (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20185\"\u003e#20185\u003c/a\u003e, \u003ca href=\"https://github.com/harupy\"\u003e\u003ccode\u003e@​harupy\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Tracing] Fix MCP fn_wrapper handling of Click UNSET defaults (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20953\"\u003e#20953\u003c/a\u003e) (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20962\"\u003e#20962\u003c/a\u003e, \u003ca href=\"https://github.com/yangbaechu\"\u003e\u003ccode\u003e@​yangbaechu\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eDocumentation updates:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e[Docs] Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azure Entra ID configuration guide (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20591\"\u003e#20591\u003c/a\u003e, \u003ca href=\"https://github.com/WeichenXu123\"\u003e\u003ccode\u003e@​WeichenXu123\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Tracing] Fix distributed tracing rendering and improve doc (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21070\"\u003e#21070\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] docs: Add single quotes to install commands with extras to prevent zsh errors (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21227\"\u003e#21227\u003c/a\u003e, \u003ca href=\"https://github.com/mshavliuk\"\u003e\u003ccode\u003e@​mshavliuk\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs / Model Registry] Fix outdated docstring claiming models:/ URIs are unsupported in register_model (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21197\"\u003e#21197\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[Docs] Replace MinIO with RustFS in docker-compose setup (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21099\"\u003e#21099\u003c/a\u003e, \u003ca href=\"https://github.com/jmaggesi\"\u003e\u003ccode\u003e@​jmaggesi\u003c/code\u003e\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eSmall bug fixes and documentation updates:\u003c/p\u003e\n\u003cp\u003e\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21148\"\u003e#21148\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21149\"\u003e#21149\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21096\"\u003e#21096\u003c/a\u003e, \u003ca href=\"https://github.com/TomeHirata\"\u003e\u003ccode\u003e@​TomeHirata\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21118\"\u003e#21118\u003c/a\u003e, \u003ca href=\"https://github.com/B-Step62\"\u003e\u003ccode\u003e@​B-Step62\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21345\"\u003e#21345\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21236\"\u003e#21236\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21106\"\u003e#21106\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21033\"\u003e#21033\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21115\"\u003e#21115\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21034\"\u003e#21034\u003c/a\u003e, \u003ca href=\"https://github.com/smoorjani\"\u003e\u003ccode\u003e@​smoorjani\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21326\"\u003e#21326\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21133\"\u003e#21133\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21036\"\u003e#21036\u003c/a\u003e, \u003ca href=\"https://github.com/copilot-swe-agent\"\u003e\u003ccode\u003e@​copilot-swe-agent\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21293\"\u003e#21293\u003c/a\u003e, \u003ca href=\"https://github.com/daniellok-db\"\u003e\u003ccode\u003e@​daniellok-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21175\"\u003e#21175\u003c/a\u003e, \u003ca href=\"https://github.com/caponetto\"\u003e\u003ccode\u003e@​caponetto\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21305\"\u003e#21305\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21264\"\u003e#21264\u003c/a\u003e, \u003ca href=\"https://github.com/serena-ruan\"\u003e\u003ccode\u003e@​serena-ruan\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21216\"\u003e#21216\u003c/a\u003e, \u003ca href=\"https://github.com/justinwei-db\"\u003e\u003ccode\u003e@​justinwei-db\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21038\"\u003e#21038\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21082\"\u003e#21082\u003c/a\u003e, \u003ca href=\"https://github.com/bbqiu\"\u003e\u003ccode\u003e@​bbqiu\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21143\"\u003e#21143\u003c/a\u003e, \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20733\"\u003e#20733\u003c/a\u003e, \u003ca href=\"https://github.com/mprahl\"\u003e\u003ccode\u003e@​mprahl\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20488\"\u003e#20488\u003c/a\u003e, \u003ca href=\"https://github.com/mdalvz0000\"\u003e\u003ccode\u003e@​mdalvz0000\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21142\"\u003e#21142\u003c/a\u003e, \u003ca href=\"https://github.com/EPgg92\"\u003e\u003ccode\u003e@​EPgg92\u003c/code\u003e\u003c/a\u003e; \u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21094\"\u003e#21094\u003c/a\u003e, \u003ca href=\"https://github.com/PattaraS\"\u003e\u003ccode\u003e@​PattaraS\u003c/code\u003e\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e3.10.0 (2026-02-20)\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/mlflow/mlflow/commit/cadc323c059d08ee15c3a312afd0eefeeccedc94\"\u003e\u003ccode\u003ecadc323\u003c/code\u003e\u003c/a\u003e Bump version to 3.10.1 (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21396\"\u003e#21396\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3d17d6c58e1e0078c062321322fc76b1b822ab6d\"\u003e\u003ccode\u003e3d17d6c\u003c/code\u003e\u003c/a\u003e Add back virtualenv to fix the docker build until the next release (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/20740\"\u003e#20740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/3cfc12fe1359afbade834a74f57e0bbe2ef4531c\"\u003e\u003ccode\u003e3cfc12f\u003c/code\u003e\u003c/a\u003e Update SSO oidc plugin doc: add google identity platform / AWS cognito / Azur...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/bcaad26df7e825fe15d4deffa0f05478e010bc10\"\u003e\u003ccode\u003ebcaad26\u003c/code\u003e\u003c/a\u003e Fix \u0026quot;View full dashboard\u0026quot; link in gateway usage tab when workspace is enabled...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/ff3249ff8a5f62e344f382d5fcdb419379780c78\"\u003e\u003ccode\u003eff3249f\u003c/code\u003e\u003c/a\u003e Update GenAI link and video in the getting started page (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21368\"\u003e#21368\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1591d038ae47271382fddd2b8653286af7c31138\"\u003e\u003ccode\u003e1591d03\u003c/code\u003e\u003c/a\u003e Persist AI Gateway default passphrase security banner dismissal to localStora...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/32979c9e560346a54d05ba7ff53434f215c5958f\"\u003e\u003ccode\u003e32979c9\u003c/code\u003e\u003c/a\u003e Demote unused parameters log message from WARNING to DEBUG in instructions ju...\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/18eeea03c3d0af5b915bb3880a71198b5123e0bd\"\u003e\u003ccode\u003e18eeea0\u003c/code\u003e\u003c/a\u003e Make simulator explicitly avoid stating goal in first message (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21384\"\u003e#21384\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/42d4356e18c0c2548ff3b290b11f36a992530d9d\"\u003e\u003ccode\u003e42d4356\u003c/code\u003e\u003c/a\u003e Clear \u0026quot;All\u0026quot; time selector when switching to overview tab (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21371\"\u003e#21371\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href=\"https://github.com/mlflow/mlflow/commit/1a14934cc0116ddd91fb693e2b52bed12683521a\"\u003e\u003ccode\u003e1a14934\u003c/code\u003e\u003c/a\u003e Fix Traces view in Prompts tab not being scrollable (\u003ca href=\"https://redirect.github.com/mlflow/mlflow/issues/21282\"\u003e#21282\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href=\"https://github.com/mlflow/mlflow/compare/v3.5.0...v3.10.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `packaging` from 25.0 to 26.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href=\"https://github.com/pypa/packaging/releases\"\u003epackaging's releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e26.0\u003c/h2\u003e\n\u003cp\u003eRead about the performance improvements here: \u003ca href=\"https://iscinumpy.dev/post/packaging-faster\"\u003ehttps://iscinumpy.dev/post/packaging-faster\u003c/a\u003e.\u003c/p\u003e\n\u003ch2\u003eWhat's Changed\u003c/h2\u003e\n\u003cp\u003eFeatures:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 751: support pylock by \u003ca href=\"https://github.com/sbidoul\"\u003e\u003ccode\u003e@​sbidoul\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/900\"\u003epypa/packaging#900\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePEP 794: import name metadata by \u003ca href=\"https://github.com/brettcannon\"\u003e\u003ccode\u003e@​brettcannon\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/948\"\u003epypa/packaging#948\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport writing metadata by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/846\"\u003epypa/packaging#846\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport \u003ccode\u003e__replace__\u003c/code\u003e for \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1003\"\u003epypa/packaging#1003\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport positional pattern matching for \u003ccode\u003eVersion\u003c/code\u003e and \u003ccode\u003eSpecifier\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1004\"\u003epypa/packaging#1004\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eBehavior adaptations:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003ePEP 440 handling of prereleases for \u003ccode\u003eSpecifier.contains\u003c/code\u003e, \u003ccode\u003eSpecifierSet.contains\u003c/code\u003e, and \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/897\"\u003epypa/packaging#897\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eHandle PEP 440 edge case in \u003ccode\u003eSpecifierSet.filter\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/942\"\u003epypa/packaging#942\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdjust arbitrary equality intersection preservation in \u003ccode\u003eSpecifierSet\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/951\"\u003epypa/packaging#951\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReturn \u003ccode\u003eFalse\u003c/code\u003e instead of raising for \u003ccode\u003e.contains\u003c/code\u003e with invalid version by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/932\"\u003epypa/packaging#932\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport arbitrary equality on arbitrary strings for \u003ccode\u003eSpecifier\u003c/code\u003e and \u003ccode\u003eSpecifierSet\u003c/code\u003e's \u003ccode\u003efilter\u003c/code\u003e and \u003ccode\u003econtains\u003c/code\u003e method. by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/954\"\u003epypa/packaging#954\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eOnly try to parse as \u003ccode\u003eVersion\u003c/code\u003e on certain marker keys, return \u003ccode\u003eFalse\u003c/code\u003e on unequal ordered comparsions by \u003ca href=\"https://github.com/JP-Ellis\"\u003e\u003ccode\u003e@​JP-Ellis\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/939\"\u003epypa/packaging#939\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFixes:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate \u003ccode\u003e_hash\u003c/code\u003e when unpickling \u003ccode\u003eTag()\u003c/code\u003e by \u003ca href=\"https://github.com/dholth\"\u003e\u003ccode\u003e@​dholth\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/860\"\u003epypa/packaging#860\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect comment and simplify implicit prerelease handling in \u003ccode\u003eSpecifier.prereleases\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/896\"\u003epypa/packaging#896\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse explicit \u003ccode\u003e_GLibCVersion\u003c/code\u003e \u003ccode\u003eNamedTuple\u003c/code\u003e in \u003ccode\u003e_manylinux\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/868\"\u003epypa/packaging#868\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDetect invalid license expressions containing \u003ccode\u003e()\u003c/code\u003e by \u003ca href=\"https://github.com/bwoodsend\"\u003e\u003ccode\u003e@​bwoodsend\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/879\"\u003epypa/packaging#879\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCorrect regex for metadata \u003ccode\u003e'name'\u003c/code\u003e format by \u003ca href=\"https://github.com/di\"\u003e\u003ccode\u003e@​di\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/925\"\u003epypa/packaging#925\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove the message around expecting a semicolon by \u003ca href=\"https://github.com/pradyunsg\"\u003e\u003ccode\u003e@​pradyunsg\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/833\"\u003epypa/packaging#833\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSupport nested parens in license expressions by \u003ca href=\"https://github.com/Liam-DeVoe\"\u003e\u003ccode\u003e@​Liam-DeVoe\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/931\"\u003epypa/packaging#931\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd space before at symbol in \u003ccode\u003eRequirements\u003c/code\u003e string by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/953\"\u003epypa/packaging#953\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eA root logger use found by ruff LOG, use \u003ccode\u003epackaging\u003c/code\u003e logger instead by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/965\"\u003epypa/packaging#965\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBetter support for subclassing \u003ccode\u003eMarker\u003c/code\u003e and \u003ccode\u003eRequirement\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1022\"\u003epypa/packaging#1022\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eNormalize all extras, not just if it comes first by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1024\"\u003epypa/packaging#1024\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDon't produce a broken repr if \u003ccode\u003eMarker\u003c/code\u003e fails to construct by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1033\"\u003epypa/packaging#1033\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid recompiling regexes in the tokenizer for a 3x speedup by \u003ca href=\"https://github.com/hauntsaninja\"\u003e\u003ccode\u003e@​hauntsaninja\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1019\"\u003epypa/packaging#1019\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eImprove performance in \u003ccode\u003e_manylinux.py\u003c/code\u003e by \u003ca href=\"https://github.com/cthoyt\"\u003e\u003ccode\u003e@​cthoyt\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/869\"\u003epypa/packaging#869\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor cleanups to \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/bearomorphism\"\u003e\u003ccode\u003e@​bearomorphism\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/913\"\u003epypa/packaging#913\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSkip redundant creation of \u003ccode\u003eVersion\u003c/code\u003es in specifier comparison by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/986\"\u003epypa/packaging#986\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCache \u003ccode\u003eSpecifier\u003c/code\u003e's Version by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/985\"\u003epypa/packaging#985\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake \u003ccode\u003eVersion\u003c/code\u003e a little faster by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/987\"\u003epypa/packaging#987\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMinor \u003ccode\u003eVersion\u003c/code\u003e regex cleanup by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/990\"\u003epypa/packaging#990\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster regex on Python 3.11.5+ by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/988\"\u003epypa/packaging#988\u003c/a\u003e and \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1055\"\u003epypa/packaging#1055\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLazily calculate \u003ccode\u003e_key\u003c/code\u003e in \u003ccode\u003eVersion\u003c/code\u003e by \u003ca href=\"https://github.com/notatallshaw\"\u003e\u003ccode\u003e@​notatallshaw\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/989\"\u003epypa/packaging#989\u003c/a\u003e and regression for \u003ccode\u003epackaging_legacy\u003c/code\u003e fixed by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/1048\"\u003epypa/packaging#1048\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFaster \u003ccode\u003ecanonicalize_version\u003c/code\u003e by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/993\"\u003epypa/packaging#993\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003efullmatch\u003c/code\u003e in a couple more places by \u003ca href=\"https://github.com/henryiii\"\u003e\u003ccode\u003e@​henryiii\u003c/code\u003e\u003c/a\u003e in \u003ca href=\"https://redirect.github.com/pypa/packaging/pull/992\"\u003epypa/packaging#992\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)...\n\n_Description has been truncated_","html_url":"https://github.com/microsoft/physical-ai-toolchain/pull/281","url":"https://dependabot.ecosyste.ms/api/v1/hosts/GitHub/repositories/microsoft%2Fphysical-ai-toolchain/issues/281","packages_url":"https://dependabot.ecosyste.ms/api/v1/issues/281/packages"}}]}